面向对象this关键字和概述和应用
2024-10-07 08:50:28
面向对象this关键字和概述和应用
package thisdemo; /**
* 面向对象this关键字和概述和应用
*
*/ //定义老师类
class Teacher {
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;
} } class Test{
public static void main(String[] args){
Teacher t = new Teacher();
//给成员变量赋值
t.setName("张三");
t.setAge(23);
//获取成员变量的值
System.out.println(t.getName() + "---" + t.getAge());
}
}
输出结果:
张三---23
修改以上案例,我们知道,给变量取名字讲究见名知意,但是对于public void setName(String n)和public void setAge(int a)中的参数a和n就没有做到见名知意,所以修改代码如下:
public void setName(String name){
name = name;
} public void setAge(int age){
age = age;
}
输出:
null---0
分析案例2的结果:
因为变量的使用遵循就近原则,所以name = name; 左边对应的是形式参数的name,右边对应的也是形式参数的name,这里的意思是将自己赋值给了自己,无意义。而此时,成员变量name和age中存储的还是默认值null和0
我们想使用的是:Student类.name = name;Java就为我们提供了一个关键字this,this代表当前类的对象引用,也就是代表当前类的一个对象。
案例三:
public void setName(String name){
this.name = name;
}
public void setAge(int age){
this.age = age;
}
输出:
张三---23
需要注意的是:
1. 方法被哪个对象调用,this就代表哪个对象
2. 什么时候使用this呢?
解决局部变量隐藏成员变量的问题
最新文章
- SQL总结系列
- Flyer(二分 HDU4768)
- visualSVN Server 设置外网可连接
- 如何在VMWare Workstation实现虚拟机与真机的文件共享
- 14.8.3 Identifying the File Format in Use 确认使用的文件格式;
- JAVA-基础语法篇
- Educational Codeforces Round 6
- 【CQOI2014】危桥
- 前端base64、baseurl加解密和RSA加解密
- Jquery无刷新实时更新表格数据
- Hive入门学习
- UWA 转载
- Unicode String to a UTF-8 TypedArray Buffer in JavaScript
- IntelliJ IDEA 2017版 使用笔记(十二) 其他操作:IDEA 快捷键
- 【C语言】练习3-5
- [转]Web 调试工具之 Advanced REST client
- SQL Server ->;>; SQL Server 2016功能改进之 -- Update Statistics
- Problem D: 判断上否上三角矩阵
- JSP初学者3
- NO1——线段树