java(六)【面向对象】this关键字
this关键字
this:代表本类的对象。this代表它所在函数所属对象的引用
简单说:哪个对象在调用this所在的函数,this就代表哪个对象
1 //this看上去是用于区分局部变量和成员变量同名情况 2 class person{ 3 private String name; 4 private int age; 5 person(String name) 6 { 7 this.name = name; 8 } 9 public void speak() 10 { 11 System.out.println("name="+name+",age="+age); 12 } 13 } 14 public class qwe { 15 16 public static void main(String[] args) { 17 person p1=new person("lolo"); 18 p1.speak(); 19 } 20 }
this的应用:当定义类中功能时,该函数内部要用到调用该函数的对象时,这时用this来表示这个对象
但凡本类功能内部使用了本类对象,都用this表示
1 class person{ 2 private int age; 3 person (int age) 4 { 5 this.age = age; 6 } 7 //需求:给人定义一个 用于比较年龄是否相同的功能,也就是是否是同龄人 8 public boolean campare (person p) 9 { 10 return this.age==p.age; 11 } 12 } 13 public class qwe { 14 public static void main(String[] args) { 15 person p1 = new person(20); 16 person p2 = new person(20); 17 boolean b = p1.campare(p2); 18 System.out.println(b); 19 20 } 21 }
this语句用法:
- 用于构造函数之间互相调用
- 用于区分局部变量和成员变量同名情况
this函数只能定义在构造函数的第一行
1 class person{ 2 private int age; 3 private String name; 4 person() 5 { 6 //this ("hah"); 不允许存在 7 } 8 person (int age) 9 { 10 this(); 11 this.age = age; 12 } 13 person (int age,String name) 14 { 15 this(age); //初始化函数 16 this.name=name; 17 } 18 } 19 public class qwe { 20 public static void main(String[] args) { 21 person p1 = new person(20,"qqq"); 22 } 23 }