this关键字
== 我的疑问:==
当形参名name和类中的名name一样时,
name=name是什么意思
输出的又是哪个name
1.不用this锁出现的问题
指向它,就相当于是它的名字
public class Tis01 {
public static void main(String[] args) {
Dog1 dog=new Dog1("xiaoming",2);
dog.info();
}
}
class Dog1{
public String name;
public int age;
/*
构造器的形参要能直接携程属性名,使代码更好
出现问题:构造器中的name和age指的是形参还是局部变量?
是局部变量,name就只能是null,age就只能是0
-->this的出现
*/
public Dog1(String dname, int dage){
name=dname;
age=dage;
}
//成员变量,输出属性信息
public void info(){
System.out.println(name+" "+age);
}
}
2.每个对象都有一个this
哪个对象调用,this就是哪个对象
解决之后的构造器代码:
public Dog1(String name, int age){ //this.name是当前对象的属性name this.name=name; //this.age是当前对象的属性age this.age=age; }

hashCode()是将地址转化为整数
public class Tis01 {
public static void main(String[] args) {
Dog1 dog=new Dog1("xiaoming",2);
dog.info();
System.out.println("dog.hashCode()="+dog.hashCode());
Dog1 dog1=new Dog1("xiaoli",1);
dog1.info();
System.out.println("dog1.hashCode()="+dog1.hashCode());
}
}
class Dog1{
public String name;
public int age;
/*
构造器的形参要能直接携程属性名,使代码更好
出现问题:构造器中的name和age指的是形参还是局部变量?
是局部变量,name就只能是null,age就只能是0
-->this的出现
*/
public Dog1(String name, int age){
this.name=name;
this.age=age;
}
//成员变量,输出属性信息
public void info(){
System.out.println(name+" "+age);
System.out.println("this.hashCode()="+this.hashCode());
}
}
浙公网安备 33010602011771号