问题一:代码一中c.id ==this.id是对象c中的id与(this.id)对象2中的id做值的比较吗?
代码一:
package com.sxt.obj;
public class TestEquals {
public static void main(String[] args){
Person3 p1 = new Person3(123,"高琪");
Person3 p2 = new Person3(123,"高小器");
System.out.println(p1==p2);
System.out.println(p1.equals(p2));
String s1 = new String("尚学堂");
String s2 = new String("尚学堂");
System.out.println(s1==s2);
System.out.println(s1.equals(s2));
}
}
class Per
}
}
问题二:代码二中”if(getClass()!=obj.getClass())”是比较两个对象的类型是否不同,但不知道如何理解语法结构,请老师解析一下,谢谢!
代码二:
package com.sxt.obj;
public class TestEquals2 {
public static void main(String[] args){
Object obj;
String str;
User4 u1 = new User4(1000,"高琪","123456");
User4 u2 = new User4(1000,"高三","123456");
System.out.println(u1==u2);
System.out.println(u1.equals(u2));
}
}
class User4{
int id;
String name;
String pwd;
public User4(){
}
public User4(int id,String name, String pwd){
this.id = id;
this.name = name;
this.pwd = pwd;
}
public boolean equals(Object obj){
if(this == obj)
return true;
if(obj == null)
return false;
if(getClass()!=obj.getClass())
return false;
User4 other = (User4)obj;
if(id!=other.id)
return false;
return true;
}
}