面向对象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呢?

  解决局部变量隐藏成员变量的问题

												

最新文章

  1. SQL总结系列
  2. Flyer(二分 HDU4768)
  3. visualSVN Server 设置外网可连接
  4. 如何在VMWare Workstation实现虚拟机与真机的文件共享
  5. 14.8.3 Identifying the File Format in Use 确认使用的文件格式;
  6. JAVA-基础语法篇
  7. Educational Codeforces Round 6
  8. 【CQOI2014】危桥
  9. 前端base64、baseurl加解密和RSA加解密
  10. Jquery无刷新实时更新表格数据
  11. Hive入门学习
  12. UWA 转载
  13. Unicode String to a UTF-8 TypedArray Buffer in JavaScript
  14. IntelliJ IDEA 2017版 使用笔记(十二) 其他操作:IDEA 快捷键
  15. 【C语言】练习3-5
  16. [转]Web 调试工具之 Advanced REST client
  17. SQL Server ->> SQL Server 2016功能改进之 -- Update Statistics
  18. Problem D: 判断上否上三角矩阵
  19. JSP初学者3
  20. NO1——线段树

热门文章

  1. $apply()和$digest()——angular
  2. Scala的to和until
  3. 2019暑假第二周(hadoop在个人电脑上的搭建)
  4. 第十届山东省acm省赛补题(2)
  5. Java多线程学习——死锁的一个容易理解的例子
  6. python+selenium控制浏览器窗口(刷新、前进、后退、退出浏览器)
  7. Linux Apache使用CGI
  8. js获取url中的参数(解决中文乱码)
  9. jQuery之排他思想
  10. git flow 基础了解