常用类 object类

/*
    *object类
    1、是所有类的直接父类或间接父类
    2.设计一个类时,如果没有指定父类,那么它的父类一定是object类
    3.所有的类都具有object类的属性和方法
    4. tostring方法--自身没有打印功能
            定义:public string tostring()
            作用:返回对象的字符串表示形式对象-->特定格式的字符串
            返回的内容:全类名@hash值
            注意:
            1) Object类是所有类的父类,其他的类都具有tostring方法
            2)使用system.out.println打印引用,会自动调用tostring方法
            system.out.println(s.tostring ());
            System.out.println(s);
            3)多数时候,继承自object类的tostring方法无法满足要求,需要在子类中重写tostring方法
            4)重写tostring方法通常是为了能够打印对象属性的值,使用IDE生成
    5.equals方法equals-等于
            1)回顾==的作用:
                判断基本数据类型值是否相同
                int a = 10;
                int b=10;
                System.out.println(a= b);
                判断两个对象是否是同一个对象/判断两个对象的地址是否相同/判断两个引用存储的地址是否相同
                student sl = new student () ;
                student s2 = new student ();
                System.out.println(sl == s2);
                s1 = s2;
                system.out.println(sl -= s2);
                2)Object类中的equals方法
                public boolean equals (0bject obj)
                *  Object类中的equals的作用和--的作用相同,用来判断两个对象是否是同一个对象
                * Object类是所有类的父类,其他的类都具有equals方法,如果子类中没有重写equals方法,
                  那么子类对象调用equals实际调用的是object类的equals方法
                大在多数情况下,我们希望eguals方法能够判断对象的”值”(属性)是否相同,
                object类的equals方法无法满足要求,此时要在子类中重写equals方法
                大判断stirng的内容是否相同使用equals,为什么?
                string类重写了object类中的equals方法
                ==和equals的区别?
                1)--的作用
                2)object类的equals的作用
                3)需要判断内容/值是否相同时,要重写equals方法
     */
   public static class Test1 {
        public static void main(String[] args) {
            Object o = new Object();
            System.out.println(o.toString());//
            System.out.println(o);//全类
            System.out.println("-----------------------");
            Student s = new Student();
            s.setNum("Java001");
            s.setName("zs");
            s.equals(20);
            System.out.println(s.toString());
            System.out.println(s);
            System.out.println("------------------");
            int a = 10;
            int b = 10;
            System.out.println(a==b);
            System.out.println("------------------");
            Student s1 = new Student();
            Student s2 = new Student();
            System.out.println(s1 == s2);
            s1 = s2;
            System.out.println(s1 == s2);
            System.out.println("----------o--------");
            Object o1 = new Object();
            Object o2 = new Object();
            System.out.println(o1.equals(o2));
            o1 = o2;
            System.out.println(o1.equals(o2));
            System.out.println("---------s3 s4--------");
            Student s3 = new Student();
            Student s4 = new Student();
            System.out.println(s3.equals(s4));//false   true
            s3 = s4;
            System.out.println(s3.equals(s4));//true
            System.out.println("----------s5 s6------");
            Student s5 = new Student("Java01","zs",20);
            Student s6 = new Student("Java01","zs",20);
            System.out.println(s5.equals(s6));//false    true
            System.out.println("-----------str1 str2-------");
            String str1 = "abc";
            String str2 = "Abc";
            System.out.println(str1.equals(str2));//false   FALSE



        }


    }
}

 

public class Student {
    private String num;
    private String name;
    private int age;

    public Student() {
    }

    public Student(String num, String name, int age) {
        this.num = num;
        this.name = name;
        this.age = age;
    }


    @Override
    public boolean equals(Object o) {
        if (this == o) return true;
        if (o == null || getClass() != o.getClass()) return false;
        Student student = (Student) o;
        return age == student.age && Objects.equals(num, student.num) && Objects.equals(name, student.name);
    }

    @Override
    public int hashCode() {
        return Objects.hash(num, name, age);
    }

    @Override
    public String toString() {
        return "Student{" +
                "num='" + num + '\'' +
                ", name='" + name + '\'' +
                ", age=" + age +
                '}';
    }

    public String getNum() {
        return num;
    }

    public void setNum(String num) {
        this.num = num;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }
}

你可能感兴趣的:(Java,java,哈希算法,开发语言)