封装的操作——private关键字
private的含义
  1. private是一个权限修饰符,代表最小权限。
  2. 可以修饰成员变量和成员方法。
  3. 被private修饰后的成员变量和成员方法,只在本类中才能访问。
private的使用格式
  ~private 数据类型 变量名 ;
1. 使用 private 修饰成员变量,代码如下:
public class Student {
private String name;
private int age;
}
2. 提供 getXxx 方法 / setXxx 方法,可以访问成员变量,代码如下:
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;
}
}
 
 
封装优化1——this关键字
我们发现 setXxx 方法中的形参名字并不符合见名知意的规定,那么如果修改与成员变量名一致,是否就见名知意
了呢?代码如下:
public class Student {
private String name;
private int age;
public void setName(String name) {
name = name;
}
public void setAge(int age) {
age = age;
}
}
经过修改和测试,我们发现新的问题,成员变量赋值失败了。也就是说,在修改了 setXxx() 的形参变量名后,方
法并没有给成员变量赋值!这是由于形参变量名与成员变量名重名,导致成员变量名被隐藏,方法中的变量名,无
法访问到成员变量,从而赋值失败。所以,我们只能使用this关键字,来解决这个重名问题
 
this的含义
  ~this代表所在类的当前对象的引用(地址值),即对象自己的引用
this使用格式
  ~this.成员变量名;
使用 this 修饰方法中的变量,解决成员变量被隐藏的问题,代码如下:
public class Student {
private String name;
private int age;
public void setName(String name) {
//name = name;
this.name = name;
}
public String getName() {
return name;
}
public void setAge(int age) {
//age = age;
this.age = age;
}
public int getAge() {
return age;
}
}
 

最新文章

  1. dagger2 备注
  2. MongoDB学习系列(1)--入门介绍
  3. 11.python之线程,协程,进程,
  4. 寄售Consignment和VMI有什么区别?
  5. 把这两天遇到的码(e)农(xin)题记下来
  6. php模拟HTTP协议发送post请求方法
  7. MySQL使用存储过程代替子查询
  8. Python-常用 Linux 命令的基本使用
  9. 设置mysql数据库为只读
  10. 【省选十连测之九】【DP】【组合计数去重】【欧拉函数】基本题
  11. 深入浅出JAVA线程池使用原理2
  12. vs2017+opencv4.0.1安装配置详解(win10)
  13. 关于THINKPHP5模型关联的初步理解
  14. C语言 · s01串
  15. js for循环中点击事件中无法获取每一个i值的问题
  16. sql 事务处理 与 try catch
  17. Java+Selenium 3.x 实现Web自动化 - Maven打包TestNG,利用jenkins执行测试
  18. K Closest Numbers In Sorted Array
  19. java 线程池(1)
  20. 华硕N43sl VNP 连接问题 800 807 621

热门文章

  1. 论文解读(DCRN)《Deep Graph Clustering via Dual Correlation Reduction》
  2. vue-mobile-template 前端开源框架
  3. .NET桌面程序集成Web网页开发的多种解决方案
  4. 工程师姓什么很重要!别再叫我“X工”!!!
  5. fedora访问win10共享
  6. @Inherited 原注解功能介绍
  7. ubuntu 20.04 source mirror(aliyun)
  8. 【算法】堆排序(Heap Sort)(七)
  9. 2.0 vue2+tinymce实现图片上传与回显
  10. AOSP查看当前要打进系统里的都有哪些包