黑马程序员--this的用法(记住一句话就行)

来源:互联网 发布:win7 todo软件 编辑:程序博客网 时间:2024/05/06 00:11


----------------------ASP.Net+Android+IOS开发.Net培训、期待与您交流! ----------------------

this:看上去,是用于区分局部变量和成员变量同名情况。
this为什么可以解决这个问题?
this到底代表的是什么呢?


this:就代表本类的对象,到底代表哪一个呢?
this代表它所在函数所属对象的引用。


哪个对象在调用this所在的函数,this就代表哪个对象。
学习this,记住了这句话。就明白了百分之九十。




this的应用:当定义类中功能时,该函数内部要用到调用该函数的对象时,这时用this来表示这个对象。
但凡本类功能内部使用了了本类对象,都用this表示。

/*一个简单的this用法。也是最常用的。*/class Person{private String name;private int age;Person(int age){this.age = age;//最常用的。}Person(String name){this.name = name;}Person(String name,int age){this.name = name;this.age = age;}public void speak(){System.out.println("name="+this.name+"...age="+this.age);this.show();}public void show(){System.out.println(this.name);}/*需求:给人定义一个用于比较年龄是否相同的功能。也就是是否是同龄人。*/public boolean compare(Person p){return this.age==p.age;}}class PersonDemo3 {public static void main(String[] args) {Person p1 = new Person(20);Person p2 = new Person(25);boolean b = p1.compare(p2);System.out.println(b);Person p = new Person("lisi");Person p1 = new Person("zhangsan");p.speak();p1.speak();}}


this语句 :用于构造函数之间进行互相调用。
不是经常用。明白就好。


this语句只能定义在构造函数的第一行。因为初始化要先执行。


class Person{private String name;private int age;{System.out.println("code run");}Person(){this("hah");//调用了第二个构造函数。System.out.println("person run");}Person(String name){this.name =name;}Person(String name,int age){this(name);//调用了第二个构造函数。this.age = age;}}

----------------------ASP.Net+Android+IOS开发.Net培训、期待与您交流! ----------------------

0 0