Java基础(Tostring()和equals())
1.重写ToString()方法
Object的toString()方法帮助我们返回一个字符串,这个字符串的格式是固定的:类名@hashcode。
- 作用:返回该对象的字符串表示,默认情况下的数据对我们来说没有意义,一般建议重写该方法。
- 案例:
package day0528;
//所有类都默认继承object类
public class demo2 {public static void main(String[] args) {
Student student=new Student();
student.age=18;
student.name="yyy";
student.sex="女";
System.out.println(student.toString());
}
}
class Student{String name;
String sex;
int age;
//重写ToString方法,在方法里面,打印所有属性的值
@Override
public String toString() {
return "Student{" +
"name='" + name + '\'' +
", sex='" + sex + '\'' +
", age=" + age +
'}';
}
}
2.重写equals()方法
- 作用:用于比较两个对象是否相同
注意:重写equals时第一件事就是判断给定的对象是否和当前对象为同一类型。不是同一类型直接返回false,不具有可比性。 equals比较前需要进行安全验证,确保给定的对象不是null,obj若是null,说明该引用变量没有指向任何对象,那么就不 能引用obj所指向对象(因为对象不存在)的属性或方法,若这么做会引发NullPointerException,空指针异常!
案例:
package day0528;
//重写equals方法
public class demo3 {public static void main(String[] args) {
Student1 s1=new Student1("yyy",18);
Student1 s2=new Student1("yyy",18);
Student1 s3=new Student1("wtc",18);
System.out.println("s1.equals(s2)"+s1.equals(s2));
System.out.println("s1.equals(s3)"+s1.equals(s3));
}
}
class Student1{String name;
int age;
public Student1(String name,int age){
this.name=name;
this.age=age;
}
@Override
public boolean equals(Object obj){
if(this==obj){
return true;
}
if(!(obj instanceof Student1)){
return false;
}
Student1 objStudent=(Student1)obj;
if(this.name.equals(objStudent.name) && this.age==objStudent.age){
return true;
}
return false;
}
}
还没有评论,来说两句吧...