toString方法
package com.ys.api16;
/*
* 改写toString方法
*/
public class ObjectDemo {
public static void main(String[] args) {
Student s = new Student();
s.name = "大王";
s.age = 21;
System.out.println(s.toString());
System.out.println(s);
}
}
class Student{
String name;
int age;
public String toString() {
return name+"@"+age;
}
}
运行结果
equals方法
package com.ys.api16;
/*
* 使用方法:boolean equals(Object o)
* 使用==来比较两个对象是否相等,则比较地址值是否相等
*/
public class ObjectDemo02 {
public static void main(String[] args) {
Person p = new Person("杨帅",21);
Person p2 = new Person("黄帅",23);
boolean flag = p.equals(p2);
System.out.println(flag);
}
}
class Person{
String name;
int age;
public Person(String name, int age) {
super();
this.name = name;
this.age = age;
}
@Override
public boolean equals(Object obj) {
//提高效率
if (this == obj)
return true;
if (obj == null)
return false;
//提高代码健壮性
if (getClass() != obj.getClass())
return false;
//向下转型
Person other = (Person) obj;
if (age != other.age)
return false;
if (name == null) {
if (other.name != null)
return false;
} else if (!name.equals(other.name))
return false;
return true;
}
// public boolean equals(Object o) {
// //提高效率,当前对象和传递进来的对象地址值相等,则不用比较成员
// if(this == o) {
// return true;
// }
// //提高代码的健壮性(即不随便报错)
// if(this.getClass() != o.getClass()) {
// return false;
// }
// //向下转型
// Person other = (Person) o;
// if//。。。。。后面就先省略了
// }
}
运行结果:false