码迷,mamicode.com
首页 > 其他好文 > 详细

Object类

时间:2017-09-18 10:49:08      阅读:141      评论:0      收藏:0      [点我收藏+]

标签:ring   bool   ret   err   style   string   ati   final   public   

1 Object类的概述

  • 类Object是类层次结构的根类。每个类都使用 Object 作为超类。所有对象(包括数组)都实现这个类的方法。 
  • Object类是不断抽取而来的。

 

2 equals()方法

public boolean equals(Object obj)
public boolean equals(Object obj) {
        return (this == obj);
    }

 

  • 示例:调用Object类的equals()方法
package java011;

/**
 * 2017/9/18
 * 说明:
 */
public class Person {
    private String name;
    private int age;

    public Person(){

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

}
package java011;

/**
 * 2017/9/18
 * 说明:
 */
public class Test {
    public static void main(String[] args) {
        Person p = new Person("张三",15);
        Person p2 = new Person("张三",15);
        System.out.println(p == p2);//false
        System.out.println(p.equals(p2));//false
    }
}

 

  • 示例:重写equals()方法
package java011;

/**
 * 2017/9/18
 * 说明:
 */
public class Person {
    private String name;
    private int age;

    public Person(){

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


    @Override
    public boolean equals(Object obj) {
        if(obj == null){
            return false;
        }
        if(obj instanceof Person){
            Person p = (Person) obj;
            if(!this.name.equals(p.name) && this.age!=p.age ){
                return false;
            }
        }
        return true;
    }
}
package java011;

/**
 * 2017/9/18
 * 说明:
 */
public class Test {
    public static void main(String[] args) {
        Person p = new Person("张三",15);
        Person p2 = new Person("张三",15);
        System.out.println(p == p2);//false
        System.out.println(p.equals(p2));//true
    }
}

 

3 hashcode()方法

public int hashCode()
public native int hashCode();

 

package java011;

/**
 * 2017/9/18
 * 说明:
 */
public class Person {
    private String name;
    private int age;

    public Person(){

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


    @Override
    public boolean equals(Object obj) {
        if(obj == null){
            return false;
        }
        if(obj instanceof Person){
            Person p = (Person) obj;
            if(!this.name.equals(p.name) && this.age!=p.age ){
                return false;
            }
        }
        return true;
    }
}
package java011;

/**
 * 2017/9/18
 * 说明:
 */
public class Test {
    public static void main(String[] args) {
        Person p = new Person("张三",15);
        Person p2 = new Person("张三",15);
        System.out.println(p);//java011.Person@1b6d3586
        System.out.println(p.hashCode());//460141958
        System.out.println(Integer.toHexString(p.hashCode()));//1b6d3586
    }
}

 

4 getClass()方法

public final Class<?> getClass()
public final native Class<?> getClass();

 

  • 示例:
package java011;

/**
 * 2017/9/18
 * 说明:
 */
public class Person {
    private String name;
    private int age;

    public Person(){

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


    @Override
    public boolean equals(Object obj) {
        if(obj == null){
            return false;
        }
        if(obj instanceof Person){
            Person p = (Person) obj;
            if(!this.name.equals(p.name) && this.age!=p.age ){
                return false;
            }
        }
        return true;
    }
}
package java011;

/**
 * 2017/9/18
 * 说明:
 */
public class Test {
    public static void main(String[] args) {
        Person p = new Person("张三",15);
        Class<?> clazz = p.getClass();
        System.out.println(clazz);//class java011.Person
        System.out.println(clazz.getName());//java011.Person
    }
}

 

5 toString()方法

public String toString()
public String toString() {
        return getClass().getName() + "@" + Integer.toHexString(hashCode());
    }

 

  • 示例:
package java011;

/**
 * 2017/9/18
 * 说明:
 */
public class Person {
    private String name;
    private int age;

    public Person(){

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


    @Override
    public boolean equals(Object obj) {
        if(obj == null){
            return false;
        }
        if(obj instanceof Person){
            Person p = (Person) obj;
            if(!this.name.equals(p.name) && this.age!=p.age ){
                return false;
            }
        }
        return true;
    }
}
package java011;

/**
 * 2017/9/18
 * 说明:
 */
public class Test {
    public static void main(String[] args) {
        Person p = new Person("张三",15);
        System.out.println(p);//java011.Person@1b6d3586
        System.out.println(p.toString());//java011.Person@1b6d3586
    }
}

 

Object类

标签:ring   bool   ret   err   style   string   ati   final   public   

原文地址:http://www.cnblogs.com/xuweiweiwoaini/p/7536869.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!