zoukankan      html  css  js  c++  java
  • 《Objiect》

    【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目录下的srcjavalangobject里面查看源代码
    
    */
    
    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));
        }
    }
  • 相关阅读:
    Leetcode#104 Maximum Depth of Binary Tree
    Leetcode#102 Binary Tree Level Order Traversal
    js 实时显示字数
    js获取链接参数
    DIV+CSS左右列高度自适应问题
    css 背景透明,文字不透明
    css position的值
    从头搭建vue项目
    vuejs怎么在服务器部署?
    windows下nginx安装、配置与使用
  • 原文地址:https://www.cnblogs.com/sun-/p/5208792.html
Copyright © 2011-2022 走看看