Java基础(Tostring()和equals())

小咪咪 2021-09-28 19:34 347阅读 0赞

1.重写ToString()方法

Object的toString()方法帮助我们返回一个字符串,这个字符串的格式是固定的:类名@hashcode。

  • 作用:返回该对象的字符串表示,默认情况下的数据对我们来说没有意义,一般建议重写该方法。
  • 案例:
  • package day0528;
    //所有类都默认继承object类
    public class demo2 {

    1. public static void main(String[] args) {
    2. Student student=new Student();
    3. student.age=18;
    4. student.name="yyy";
    5. student.sex="女";
    6. System.out.println(student.toString());
    7. }

    }
    class Student{

    1. String name;
    2. String sex;
    3. int age;
    4. //重写ToString方法,在方法里面,打印所有属性的值
    5. @Override
    6. public String toString() {
    7. return "Student{" +
    8. "name='" + name + '\'' +
    9. ", sex='" + sex + '\'' +
    10. ", age=" + age +
    11. '}';
    12. }

    }

2.重写equals()方法

  • 作用:用于比较两个对象是否相同

注意:重写equals时第一件事就是判断给定的对象是否和当前对象为同一类型。不是同一类型直接返回false,不具有可比性。 equals比较前需要进行安全验证,确保给定的对象不是null,obj若是null,说明该引用变量没有指向任何对象,那么就不 能引用obj所指向对象(因为对象不存在)的属性或方法,若这么做会引发NullPointerException,空指针异常!

  • 案例:

    package day0528;
    //重写equals方法
    public class demo3 {

    1. public static void main(String[] args) {
    2. Student1 s1=new Student1("yyy",18);
    3. Student1 s2=new Student1("yyy",18);
    4. Student1 s3=new Student1("wtc",18);
    5. System.out.println("s1.equals(s2)"+s1.equals(s2));
    6. System.out.println("s1.equals(s3)"+s1.equals(s3));
    7. }

    }
    class Student1{

    1. String name;
    2. int age;
    3. public Student1(String name,int age){
    4. this.name=name;
    5. this.age=age;
    6. }
    7. @Override
    8. public boolean equals(Object obj){
    9. if(this==obj){
    10. return true;
    11. }
    12. if(!(obj instanceof Student1)){
    13. return false;
    14. }
    15. Student1 objStudent=(Student1)obj;
    16. if(this.name.equals(objStudent.name) && this.age==objStudent.age){
    17. return true;
    18. }
    19. return false;
    20. }

    }

发表评论

表情:
评论列表 (有 0 条评论,347人围观)

还没有评论,来说两句吧...

相关阅读