public User(String name, int age) {
super();
this.name = name;
this.age = age;
}
//重写Object类中的toString
public String toString() {
return "User [name=" + name + ", age=" + age + "]";
}
}
User user = new User("angellababy",27);
System.out.println(user.toString());//User [name=angellababy, age=27]
b.equals():
1.Object类中原始的equals(),比较的两个对象的地址值
public boolean equals(Object obj) {
return (this == obj);
// user==user2
}
User user = new User("angellababy",27);
User user2 = new User("angellababy",27);
System.out.println(user.equals(user2));//如果User类不重写Object类里面的equals
//比较user和user2指向的对象的地址
2.我们一般不适用Obejct类中原始的equals方法而是,重写equals
我们去比较该类的属性值,只有属性值全部相同才返回true,只要有一个不同,就返回false
例如:人有姓名,年龄,身高,性别 这个人具有所有属性都相同才认为是同一个人,否则就不是同一个人
public boolean equals(Object obj) {
// 将传入的对象,向下转型为User以便于与User对比
User otherUser = (User) obj;
// 获取传入对象的属性值
String oName = otherUser.getName();
int oAge = otherUser.getAge();
// 使用传入对象的属性值,依次与本对象的属性值做比较,如果有不相同的,直接返回false
if (!this.name.equals(oName)) {
return false;
}