Object类

简介:
       Object类是所有类的父类,如果一个类没有明确的继承自另外一个类,则肯定继承Object类。
class Demo{}
等价于以下的代码:
        class Demo extends Object{}
       那么既然Object类是所有类的父类,那么就意味着,所有类的对象都可以使用Object接收。
       那么在开发中,如果要想编写一个完整的类,应该最少覆写Object类中的以下几个方法:
              · toStringpublic Sting toString(),对象打印的时候默认调用
              · equalspublic boolean equals(Object obj),对象比较
              · hashCodepublic int hashCode()
1 toString()方法是在对象打印的时候默认调用的
class Person{
};
public class Demo13{
         public static void main(String artgs[]){
                   Person p = new Person() ;
                   System.out.println(p) ;
         }
};
以上程序打印的结果为:
Person@757aef
       如果在以上打印的时候把打印语句编写为:“System.out.println(p.toString()) ;”,则效果与之前是一样的,那就证明,在打印对象的时候实际上调用toString()方法,是默认调用的。此方法为Object
       如果现在在Person类中覆写了toString()方法:
class Person{
         public String toString(){
                   return "HELLO WORLD!!!" ;
         }
};
public class Demo13{
         public static void main(String artgs[]){
                   Person p = new Person() ;
                   System.out.println(p) ;
         }
};
       则打印结果为:
HELLO WORLD!!!
       实际上可以在toString()中编写更多的输出内容,如:以下代码:
class Person{
         private String name ;
         private int age ;
         public Person(String name,int age){
                   this.name = name ;
                   this.age = age ;
         }
         public String toString(){
                   return " 姓名: "+this.name+" ,年龄: "+this.age ;
         }
};
public class Demo13{
         public static void main(String artgs[]){
                   Person p = new Person(" 张三 ",30) ;
                   System.out.println(p) ;
         }
};
2  equals:对象比较
       是对象比较的方法,StringObject的子类,所以Strin本身已经根据自己的情况覆写好了equals方法了。
       之前讲解过?如何区分两个对象是否一样?实际上这样的方法,应该写在equals之中。
class Person{
         private String name ;
         private int age ;
         public Person(String name,int age){
                   this.name = name ;
                   this.age = age ;
         }
         public boolean equals(Object obj){
                   if(this==obj){
                            return true ;
                   }
                   if(!(obj instanceof Person)){
                            return false ;
                   }
                   Person p = (Person)obj ;
                   if(this.name.equals(p.name)&&this.age==p.age){
                            return true ;
                   }else{
                            return false ;
                   }
         }
         public String toString(){
                   return " 姓名: "+this.name+" ,年龄: "+this.age ;
         }
};
public class Demo14{
         public static void main(String artgs[]){
                   Person p1 = new Person(" 张三 ",30) ;
                   Person p2 = new Person(" 张三 ",30) ;
                   System.out.println(p1.equals(p2)) ;
         }
};









本文转自 李兴华 51CTO博客,原文链接:http://blog.51cto.com/lixinghua/96926,如需转载请自行联系原作者
目录
相关文章
|
7月前
|
Java
【面试题精讲】Object类的常见方法有哪些?
【面试题精讲】Object类的常见方法有哪些?
|
8月前
|
Java API 开发工具
Java之API详解之Object类的详细解析(下)
Java之API详解之Object类的详细解析(下)
40 0
|
2天前
|
C#
c# 所有类的最终基类:Object
c# 所有类的最终基类:Object
4 0
|
17天前
|
XML JSON Java
作为所有类的顶层父类,没想到Object的魔力如此之大!
在上一篇博文中我们提到了Java面向对象的四大特性,其中谈及“抽象”特性时做了一个引子,引出今天的主人公Object,作为所有类的顶级父类,Object被视为是James.Gosling的哲学思考,它高度概括了事务的自然与社会行为。
53 13
|
17天前
|
存储 Java 开发者
Java Object类
Java Object类
14 0
|
2月前
|
存储 设计模式 Python
Python中的类(Class)和对象(Object)
Python中的类(Class)和对象(Object)
32 0
|
7月前
|
Java
Java常用类--------Object类
Java常用类--------Object类
|
8月前
|
Java
Object类
Object类
34 1
|
4月前
|
Python
Python学习 -- 根类object
Python学习 -- 根类object
17 0
|
9月前
|
Java 程序员 API
Object类【JDK源码分析】
Object类【JDK源码分析】
25 0