private最常见的应用:

1、把成员变量用private修饰
2、提供对应的getXxx()/setXxx()方法
3、一个标准的案例的使用

直接访问存在安全问题

package blackHorse;
/** 学生类* * 通过对象直接访问成员变量,会存在安全问题* 这个时候,我们就想能不能不让外界的对象直接访问成员变量呢?* 能。* 如何实现呢?*     private关键字!*/
public class Student {String name;int age;public void show() {System.out.println("姓名是:" + name + ";年龄是:" + age);}
}
package blackHorse;
/** 学生测试类*/
public class studentTest {public static void main(String[] args) {Student garen = new Student();garen.show();garen.name = "盖伦";//garen.age = 28;garen.age = -28;garen.show();}
}

public void setAge(int a1) {age = a1;}garen.setAge(-28);

package blackHorse;
/** 学生类* * private:*         是一个修饰符*         可以修饰成员变量,也可以修饰成员方法*      被private修饰的成员只能在本类中被访问* * 针对private修饰的成员变量,我们会相应的提供getXxx()和setXxx()用于获取和设置成员变量的值,方法用public修饰*    not visible**在setAge()方法里判断年龄的范围,看是否有误,再决定是否输出。*/
public class Student {String name;//int age;private int age;public void show() {System.out.println("姓名是:" + name + ";年龄是:" + age);}//setAge()方法public void setAge(int a1) {if(a1<0 || a1 >200) {System.out.println("你给的年龄有误");}else {age = a1;}}public int getAge() {return age;}
}
package blackHorse;
/** 学生测试类*/
public class studentTest {public static void main(String[] args) {Student garen = new Student();garen.show();garen.name = "盖伦";//garen.age = 28;//garen.age = -28;//not visiblegaren.setAge(-28);//garen.setAge(28);//garen.getAge();//获取初始值garen.show();}
}

成员变量私有的标准代码(封装)

  • 学生类

    1.成员变量私有化
    2.分别写出他们的set,get方法()
    3.set方法里做了判断

  • 学生测试类

    1.创建对象
    2.get方法得到默认值,set方法赋值
    3.赋值后再用get方法得到现在的值

package blackHorse;
/** 学生类。*/
public class Student {private String name;private int age;public void setName(String n) {name = n;}public String getName() {return name;}public void setAge(int a) {age = a;}public int getAge() {return age;}
}
package blackHorse;
/** 学生测试类*/
public class studentTest {public static void main(String[] args) {//创建对象Student s = new Student();//因为没有赋值,所以得到默认值。System.out.println(s.getName()+"---"+s.getAge());s.setName("urnotbear");s.setAge(20);//第二次进行了赋值,所以get方法得到有值。System.out.println(s.getName()+"---"+s.getAge());}
}

封装原则:
1.将不需要对外提供的内容都隐藏起来
2.把属性隐藏,提供公共方法对其访问
—成员变量private,提供对应的getXxx()和setXxx()方法

黑马—private关键字-封装相关推荐

  1. 1.2 private 关键字 面向对象封装

    public class Demo2 {  public static void main(String[] args) {      Person1 p  = new Person1();   p. ...

  2. 面向对象(封装对象private关键字)

    1.面向对象(封装的概述) A:封装概述 是指隐藏对象的属性和实现细节,仅对外提供公共访问方式. B:封装好处 隐藏实现细节,提供公共的访问方式 提高了代码的复用性 提高安全性. C:封装原则 将不需 ...

  3. 5 封装性和private关键字

    封装 这一节来看下面向对象三大特征之一的封装. 什么是封装? 封装是指隐藏对象的属性和实现细节,仅对外提供公共访问方式. 封装的优点: 隐藏代码的实现细节,提高安全性. 举个例子,我们日常生活中的插座 ...

  4. 面向对象、封装、private关键字、set和get方法、this关键字、构造方法、API

    文章目录 1. 类和对象 1.1 面向对象和面向过程编程思想 面向过程编程思想 面向对象编程思想 举例对比2种编程思想 1.2 类的概述 类的概述 类的组成 举例 小结 1.3 对象的概述 对象的概念 ...

  5. Java学习 第十五章 成员变量和局部变量的区别 / 三大特征之一 (封装性)/构造方法 /private关键字

    第十五章 局部变量和成员变量: 1.定义位置不一样 局部变量:在方法内部定义 成员变量:在方法的外部,直接写在类当中 2.作用范围不一样 局部变量:只能在方法当中使用 成员变量:整个类都可以使用 3. ...

  6. 成员变量和局部变量的区别、方法的形参为类的情况及匿名对象、封装(private关键字)、this关键字、构造方法、static关键字

    成员变量和局部变量 在介绍类的时候,已经说到了类的成员变量 成员变量是在类中而在方法之外 class ss{ int age; } 局部变量是在方法定义中或者方法声明中 class ss{ publi ...

  7. Java面向对象思想、类的定义、对象的使用、对象内存图、成员变量和局部变量的区别、封装、private关键字、this关键字、构造方法、JavaBean-day06

    目录 第1节 面向对象思想 1.1 面向对象思想概述 概述 举例 特点 1.2 类和对象 什么是对象 类与对象的关系 1.3 类的定义 事物与类的对比 类的定义格式 1.4 对象的使用 对象的使用格式 ...

  8. 7 面向对象(成员变量和局部变量的区别,类作为形式参数的问题,匿名对象,封装,private关键字,this关键字,构造方法,类的初始化过程,static关键字)

    1:成员变量和局部变量的区别(理解) (1)在类中的位置不同 成员变量:类中方法外 局部变量:方法定义中或者方法声明上 (2)在内存中的位置不同 成员变量:在堆中 局部变量:在栈中 (3)生命周期不同 ...

  9. 封装-private关键字

    目录 一.private关键字 二.为什么使用private 三.用private改进代码 一.private关键字 二.为什么使用private Student类: public class Stu ...

最新文章

  1. Rocksdb 的 MergeOperator 简单使用记录
  2. 【基础不牢地动山摇】一遍记住 Java 面试中常用的八种排序算法与代码实现!...
  3. 试编写一个汇编语言程序,要求从键盘接收一个四位的十六进制数,并在终端上显示与它等值的二进制数
  4. 调用函数,计算分段函数的值
  5. 理解Java字符串常量池与intern()方法
  6. Spring Stateless State Security第3部分:JWT +社会认证
  7. SQL Server游标
  8. vue 项目中 自定义过滤器 全局使用 filter
  9. android删除未知字符,如何删除Android Studio中所有配置的未使用字符串资源?
  10. 数据库基础介绍(1)几种常见的数据库
  11. cs231n学习笔记 CNN 目标检测 定位 分割
  12. java毕业设计投标文件在线制作系统mybatis+源码+调试部署+系统+数据库+lw
  13. php 图片印章_PHP实现中文圆形印章的特效
  14. 高斯过程回归GPR和多任务高斯过程MTGP原理
  15. 不重启刷新win7环境变量(注册表)
  16. 什么是线程安全性,如何保证线程安全*
  17. D16:Exchange Rates(汇率,翻译)
  18. win10打开蓝牙_用了N年也未必知!Win10竟藏有这么多实用功能
  19. 工作不顺心怎么办?——Leo网上答疑(57)
  20. (一)立创EDA的安装

热门文章

  1. 欧姆龙PLC项目程序NJ系列模切机程序 12轴EtherCAT总线伺服运动控制,包含回零、点动、定位
  2. keil调试工具(调试技术)
  3. 智慧物业管理系统的设计与实现
  4. CocosCreator之节点如何做圆周运动
  5. Android中破解某支付软件防Xposed的hook功能检测机制过程分析
  6. 极客大学产品经理训练营:业务流程与产品文档 第11课总结
  7. mipcms文章详情调用
  8. 7.搜索求解策略: 搜索的概念, 状态空间搜索, 盲目/启发式图搜索策略, 启发信息和估价函数, A搜索算法, A*搜索算法及特性分析
  9. 全球与中国IHE XDS.B(跨企业文档共享)市场现状及未来发展趋势
  10. SDL-软件安全设计初探