标签:取名字 关键字 定义 ring 调用 student str 变量赋值 成员变量
面向对象this关键字和概述和应用
1 package thisdemo; 2 3 /** 4 * 面向对象this关键字和概述和应用 5 * 6 */ 7 8 //定义老师类 9 class Teacher { 10 private String name; 11 private int age; 12 13 //设置姓名值 14 public void setName(String n){ 15 name = n; 16 } 17 18 //获取姓名值 19 public String getName(){ 20 return name; 21 } 22 23 public void setAge(int a){ 24 age = a; 25 } 26 27 public int getAge(){ 28 return age; 29 } 30 31 } 32 33 class Test{ 34 public static void main(String[] args){ 35 Teacher t = new Teacher(); 36 //给成员变量赋值 37 t.setName("张三"); 38 t.setAge(23); 39 //获取成员变量的值 40 System.out.println(t.getName() + "---" + t.getAge()); 41 } 42 }
输出结果:
张三---23
修改以上案例,我们知道,给变量取名字讲究见名知意,但是对于public void setName(String n)和public void setAge(int a)中的参数a和n就没有做到见名知意,所以修改代码如下:
1 public void setName(String name){ 2 name = name; 3 } 4 5 public void setAge(int age){ 6 age = age; 7 }
输出:
1 null---0
分析案例2的结果:
因为变量的使用遵循就近原则,所以name = name; 左边对应的是形式参数的name,右边对应的也是形式参数的name,这里的意思是将自己赋值给了自己,无意义。而此时,成员变量name和age中存储的还是默认值null和0
我们想使用的是:Student类.name = name;Java就为我们提供了一个关键字this,this代表当前类的对象引用,也就是代表当前类的一个对象。
案例三:
1 public void setName(String name){ 2 this.name = name; 3 } 4 public void setAge(int age){ 5 this.age = age; 6 }
输出:
1 张三---23
需要注意的是:
1. 方法被哪个对象调用,this就代表哪个对象
2. 什么时候使用this呢?
解决局部变量隐藏成员变量的问题
标签:取名字 关键字 定义 ring 调用 student str 变量赋值 成员变量
原文地址:http://www.cnblogs.com/happy520/p/6696930.html