当局部变量和成员变量重名时,方法中会根据“就近原则”使用局部变量的值
如果想要区分的话可以使用this关键字
格式:
this.成员变量名
this可以理解为当前使用的对象或者正在创建的对象,通过那个对象调用的方法谁就是this
this:
1.可以修饰属性、方法、构造方法
2.this可以理解为当前使用的对象或者正在创建的对象,通过那个对象调用的方法谁就是this
3.可以在构造方法中通过“this(形参)”的方式调用本类中调用其他重载的构造方法
注意:在构造方法内部必须写在首行
Person类
public class Person {
private String name;//自己的名字
private int age;
public void setName(String name){
this.name=name;
}
public void setage(int age){
this.age=age;
}
public String getName(){
return name;
}
public int getage(){
return age;
}
//打招呼
public void sayHello(String name1){//对方的名字
System.out.println(name+"对"+name1+"说:你好啊!");
//当前对象的吃饭方法
this.eat();
}
public void eat(){
System.out.println("吃饭了");
}
public Person(){
super();
System.out.println("Person无参构造方法");
}
public Person(String name){
this.name =name;
System.out.println("Person带name参数的构造方法");
}
public Person(int age){
this.age=age;
System.out.println("Person带age参数的构造方法");
}
public Person(String name,int age){
this(name);
// this.name=name;
this.age=age;
System.out.println("Person带name,age参数的构造方法");
}
}
TestPerson类
public class TestPerson {
public static void main(String[] args) {
//创建对象
Person p=new Person();
p.setName("赵四");//设置自己的名字
p.sayHello("刘能");//设置对方的名字
Person p1=new Person("张三",12);
System.out.println("姓名:"+p1.getName()+",年龄:"+p1.getage());
}
}
来源:CSDN
作者:只伸头的乌龟
链接:https://blog.csdn.net/qq_42435859/article/details/103825434