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

《Objiect》

时间:2016-02-23 09:47:27      阅读:139      评论:0      收藏:0      [点我收藏+]

标签:

【16-1】Object概述&Object-equals方法&toString方法。
==========================================================================================
class Person extends Object
{
    private int age;
    Person(int age)
    {
        this.age = age;
    }

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

        if(!(obj instanceof Person))
            throw new ClassCastException("类型是不对的,请改正!");
        Person p = (Person)obj;
        return this.age == p.age;
    }
}

class ObjectTest 
{
    public static void main(String[] args) 
    {
        Person p = new Person(12);
        Person p1 = new Person(13);
        System.out.println(p.equals(p1));
    }
}

===========================================================================================

//Object概述&Object-equals方法&toString方法

/*
Object类中的常用方法。

Object类是所有类的根类,定义了所有对象都具备的功能。
API(应用程序接口)文档

//可以在JDK目录下的src\java\lang\object里面查看源代码

*/

class Person extends Object
{
    private int age;
    Person(int age)
    {
        this.age = age;
    }

    //判断是否是同龄人,这个方法也是在比较两个Person对象是否相等。
    //注意:Person类中是否有比较两个Person对象相等的方法?有的,因为继承Object,他本身就具备equals方法
    //既然有,还需要定义compare方法吗?不需要!
    //但是,equals方法判断的是地址,不是我们所需要的内容。
    //咋办?继续使用object的equals方法,但是建立子类的自己额内容,这就是传说中的重写。
    //重写。

    //记住:以后要判断对象是否相同,就需要覆盖equals方法。

    //判断是否是同龄人

    public boolean equals(Object obj)
    {
        //建立Person自己的判断相同的依据,判断年龄是否相相同。
        //return this.age == p.age; //obj所属类型Object,Object中没有定义age,所以编译失败。

        //如果调用该方法的对象和传递进来的对象是同一个,就不要转型和判断,直接返回true.
        if(this == obj)
            return true;
        
        //age是Person类型的属性,既然要用到子类型的内容,需要向下转型。
        if(!(obj instanceof Person))
        //    return false;
        throw new ClassCastException("类型是不对的!请改正");
        Person p = (Person)obj;
        return this.age == p.age;
    }

    public String toString()
    {
        return "person[age = "+age+"]";
    }
    /*
    public boolean compare(Person p)
    {
        return this.age == p.age;
    }*/

}

class Dog
{
}


class ObjectTest
{
    public static void main(String[] args) 
    {
        Person p1 = new Person(12);
        Person p2 = new Person(14);
        //p1.equals(new Dog());

        //System.out.println(p1.equals(p1));

        System.out.println(p1.toString());
        System.out.println(p2);

        //System.out.println(p1.compare(p2));

        //System.out.println(p1==p2);
        //System.out.println(p1.equals(p2));
    }
}

 

《Objiect》

标签:

原文地址:http://www.cnblogs.com/sun-/p/5208792.html

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