(二十一)、常用类:Object类

来源:互联网 发布:erp软件实施顾问 编辑:程序博客网 时间:2024/05/29 02:43

Object类

任何类都是直接或间接继承自Object类(上帝类)
java中,任何类都有一个父类。如果一个类没有明确的去继承某个类,则这个类一定是继承Object

  • 常用方法:

    • getClass():
      反射,返回值类型 Class java中一切皆对象
      xxx.class也是对象,是Class的对象
      Class是所有class对象相应的类

    • hashCode():
      返回的是这个对象的哈希值,默认代表这个对象的内存地址
      实际使用时,我们经常覆写这个方法,根据需求返回相应的值
      System.identityHashCode();//返回原始的hashCode,即内存地址

    • toString():
      返回一个字符串,Object默认返回的是对象的类名@hash值.
      当直接输出一个对象时,相当于调用了这个对象的toString()方法

    • equals(Object obj)
      判断两个对象的内容是否相等。Object默认判断两个对象是否是同一对象
      == 引用数据类型判断的是地址值,判断两个对象是否是同一对象
      equals 判断两个对象内容是否相同

      public boolean equals(Object obj) {
      if (obj == null || !(obj instanceof A)) {
      return false;
      }
      return true;
      }

    Demo:

    Student类:

    public class Student {private int age;private String name;private String sex;public Student() {    super();}public Student(int age, String name, String sex) {    super();    this.age = age;    this.name = name;    this.sex = sex;}@Overridepublic String toString() {    return "Student [age=" + age + ", name=" + name + ", sex=" + sex + "]";}@Overridepublic boolean equals(Object obj) {    if (obj == null || !(obj instanceof Student)) {        return false;    }    Student stu = (Student) obj;    if (this.age == stu.age && this.name.equals(stu.name)) {        return true;    } else {        return false;    }}public int getAge() {    return age;}public void setAge(int age) {    this.age = age;}public String getName() {    return name;}public void setName(String name) {    this.name = name;}

    A类:
    随便起的类名

    public class A {public static void main(String[] args) {    A a = new A();    System.out.println(a.getClass());    System.out.println(a.hashCode());    System.out.println(a.toString());    Student student = new Student(4, "张三", "男");    Student student1 = new Student(5, "李四", "男");    System.out.println(student.equals(student1));}}
0 0