* this关键字的使用:
* 1、理解为:当前对象或当前正在创建的对象
* 2、使用范围:this可以使用在方法或构造器的内部
* 3、可以调用的结构:属性、方法、构造器
* 4、在方法中使用this:
* 我们可以在方法内,调用当前类的属性或方法,属性或方法前可以使用"this."的方式,表明调用的是当前对象的属性或方法。
* 通常情况下,我们都习惯省略此this关键字。
* 但是,如果方法的形参和类的属性名相同了,则必须使用”this.变量“的方式,表明我们调用的变量是当前对象的属性或方法,而非形参
*5、在构造器中使用this:
* 我们可以在构造器内,调用当前类的属性或方法,属性或方法前可以使用”this.“的方式,表明调用的是当前正在创建的对象的属性或方法。
* 通常情况下,我们都习惯省略this关键字
* 但是,如果构造器的形参和类的属性名字相同,则必须使用”this.变量“的方式,表明调用的是当前正在创建的对象的属性或方法,而非形参
*6、this来调用构造器
* 6.1我们可以在构造器中使用”this(形参列表)“方式,调用当前类中的指定的构造器
* 6.2构造器中不可以使用”this(形参列表)“方式调用本身的构造器
* 6.3如果类中声明了n个构造器,则最多可以有n-1个构造器中使用了”this(形参列表)“方式调用其他构造器
* 6.4规定:要求将”this(形参列表)“声明在构造器的首行
* 6.5一个构造器中最多可声明一个”this(形参列表)“
* */
public class ThisTest {
public static void main(String[] args) {
Person p1 = new Person();
p1.eat();
p1.show();
Person p2 = new Person("Tom");
p2.show();
p1.setName("hhhh");
p1.show();
Person p3 = new Person(12);
p3.show();
}
}
class Person{
private String name;
private int age;
//构造器
public Person(){
//100行初始化的信息
System.out.println("100行初始化信息");
}
public Person(String name){
this();
this.name = name;
}
public Person(int age){
this("曹哈哈");
this.age = age;
}
//在外部调用时需要的进行getset设置
// public void setName(String name){
// name = name;//所谓的就近原则 输出的数据将会为空
// }
public void setName(String name){
this.name = name;//属性=形参
}
public String getName(){
return name;
}
public void setAge(int age){
this.age = age;
}
public int getAge(){
return age;
}
//方法
public void eat(){
System.out.println("吃饭");
this.study();
}
public void study(){
System.out.println("学习");
}
public void show(){
System.out.println("name : " + name + ",age:" + age);
}
}