private关键字-this关键字
private关键字
private的含义
- private是一个权限修饰符,代表最小权限.
- 可以修饰成员变量和成员方法.
- 被private修饰后的成员变量和成员方法,只在本类中才鞥你访问.
private的使用格式
private 数据类型 变量名 ;
1. 使用 private 修饰成员变量,代码如下:
1 public class Student { 2 private String name; 3 private int age; 4 }
2. 提供 getXxx 方法 / setXxx 方法,可以访问成员变量,代码如下:
1 public class Student { 2 private String name; 3 private int age; 4 public void setName(String n) { 5 name = n; 6 } 7 public String getName() { 8 return name; 9 } 10 public void setAge(int a) { 11 age = a; 12 } 13 public int getAge() { 14 return age; 15 } 16 }
this关键字
我们发现 setXxx 方法中的形参名字并不符合见名知意的规定,那么如果修改与成员变量名一致,是否就见名知意 了呢?代码如下:
1 public class Student { 2 private String name; 3 private int age; 4 public void setName(String name) { 5 name = name; 6 } 7 public void setAge(int age) { 8 age = age; 9 } 10 }
经过修改和测试,我们发现新的问题,成员变量赋值失败了。也就是说,在修改了 setXxx() 的形参变量名后,方 法并没有给成员变量赋值!这是由于形参变量名与成员变量名重名,导致成员变量名被隐藏,方法中的变量名,无 法访问到成员变量,从而赋值失败。所以,我们只能使用this关键字,来解决这个重名问题。
this的含义
this代表所在类的当前对象的引用(地址值),即对象自己的引用。
记住 :方法被哪个对象调用,方法中的this就代表那个对象。即谁在调用,this就代表谁。
this使用格式
this.成员变量名;
使用 this 修饰方法中的变量,解决成员变量被隐藏的问题,代码如下:
1 public class Student { 2 private String name; 3 private int age; 4 public void setName(String name) { 5 //name = name; 6 this.name = name; 7 } 8 public String getName() { 9 return name; 10 } 11 public void setAge(int age) { 12 //age = age; 13 this.age = age; 14 } 15 public int getAge() { 16 return age; 17 } 18 }
小贴士:方法中只有一个变量名时,默认也是使用 this 修饰,可以省略不写。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix