this关键词---当前类的对象的引用
public class Public { String name; int age; public static void main(String[] args) { } public Public(String n,int a) //构造方法 { name=n; //参数名和属性名不相同那么就没有关系 age=a; } /*public Public(String name,int age) //构造方法 { name=name; //这个是属性的变量和参数的变量重名了,这个时候按照方法的就近原则,这行 代码相当于方法参数的name给自己赋值,而不是方法参数name给属性name赋值. age=age; }*/ /*public Public(String name,int age) //构造方法 { this.name=name; //这个时候this.name 就代表属性name this.age=age; }*/ }
在类还在编译的时候没有对象,此时this就可以代替还没有产生的对象去调用本类的属性和方法.创建对象的时候this就指代了这个对象
this可以替代很多的对象。
哪个实例对象在使用this就指代为哪个对象----灵活的指代
this是虚拟的指代,他不是一个对象.。
this语句 ---在构造方法中使用,去调用本类中其他形式的构造方法,要在首行,要有出口.
this语句只能在本类构造方法中调用其他形式的构造方法 并且保证this语句出现在构造方法第一行
public class Public { String name; int age; public static void main(String[] args) { } public Public() //构造方法 { } public Public(String name) //构造方法 { this();//这个就是this语句,此时调用的是无参构造函数 ,嵌套调用此时是有出口的,调用到无参构造函数结束 this.name=name; } public Public(String name,int age) //构造方法 { this(name);//this语句此时调用的是Public(String name) this.age=age; } }
构造代码块---在类内方法外{}
调用任意的构造方法都会默认执行构造代码块,构造代码块优先于任意的构造方法
构造代码块可以给属性赋予初始值和调用方法