存在问题:
public class Main {
public static void main(String[] args) {
Dog dog = new Dog("小黑",12);
dog.dy();
}
}
class Dog{
String name;
int age;
//构造器的形参直接写成属性名
//根据变量的作用域原则
//构造器的name是局部变量,而不是属性
//构造器的age是局部变量,而不是属性
//解决方法=》this关键字
public Dog(String name, int age){//构造器
name = name;
age = age;
}
public void dy(){
System.out.println(name + " " + age);
}
}
简介:
java虚拟机会给每个对象分配this,代表当前对象。
this解决重名问题。
解决问题:
public class Main {
public static void main(String[] args) {
Dog dog = new Dog("小黑",12);
dog.dy();
}
}
class Dog{
String name;
int age;
//构造器的形参直接写成属性名
//根据变量的作用域原则
//构造器的name是局部变量,而不是属性
//构造器的age是局部变量,而不是属性
//解决方法=》this
public Dog(String name, int age){//构造器
//this.name就是当前对象的属性name
this.name = name;
//this.age就是当前对象的属性age
this.age = age;
}
public void dy(){
System.out.println(name + " " + age);
}
}
小结:
哪个对象调用,this就指向哪个对象。