手机版
你好,游客 登录 注册
背景:
阅读新闻

Java中的Object类

[日期:2014-08-04] 来源:Linux社区  作者:jerry_1126 [字体: ]

理论上Object类是所有类的父类,即直接或间接的继承Java.lang.Object类。由于所有的类都继承在Object类,因此省略了extends Object关键字。

该类中主要有以下方法: toString(),getClass(),equals(),clone(),finalize(), 其中toString(),getClass(),equals是其中最重要的方法。

注意:

Object类中的getClass(),notify(),notifyAll(),wait()等方法被定义为final类型,因此不能重写。

getClass()方法;

不可重写,要调用的话,一般和getName()联合使用,如getClass().getName();

toString()方法;

可重写;如果在实际使用中为特定对象提供一个特定的输出模式,当这个类型转换为字符串或字符串连接时,建自动调用重写的toString()方法。

public ObjectInstance{
public String toString(){
 return "在"+getClass().getName()+"重写toString()方法"
}
public static void main(String arg[]){
  System.out.println(new ObjectInstance());
}
}

equals()方法;

class V {
}
public class OverWriteEquals{
    public static void main(String args[]){
        String s1="123";
        String s2="123";
        System.out.println(s1.equals(s2));
        V v1= new V();
        V v2= new V();
        System.out.println(v1.equals(v2));
    }
}

输出结果:

run:
true
false
BUILD SUCCESSFUL (total time: 0 seconds)

从本例可以看出,在自定义的类中使用equals()方法进行比较时,将返回false,因为equals方法的默认实现是"=="运算符,即比较两个对象的引用地址,而不是比较对象的内容。所以要想真正比较两个对象中的内容,需要在自定义类中重写equals()方法。

--------------------------------------分割线 --------------------------------------

编写高质量代码 改善Java程序的151个建议 PDF高清完整版 http://www.linuxidc.com/Linux/2014-06/103388.htm

Java 8简明教程 http://www.linuxidc.com/Linux/2014-03/98754.htm

Java对象初始化顺序的简单验证 http://www.linuxidc.com/Linux/2014-02/96220.htm

Java对象值传递和对象传递的总结 http://www.linuxidc.com/Linux/2012-12/76692.htm

Java对象序列化ObjectOutputStream和ObjectInputStream示例 http://www.linuxidc.com/Linux/2012-08/68360.htm

--------------------------------------分割线 --------------------------------------

本文永久更新链接地址http://www.linuxidc.com/Linux/2014-08/105064.htm

linux
相关资讯       Java入门基础教程  Java Object类 
本文评论   查看全部评论 (0)
表情: 表情 姓名: 字数

       

评论声明
  • 尊重网上道德,遵守中华人民共和国的各项有关法律法规
  • 承担一切因您的行为而直接或间接导致的民事或刑事法律责任
  • 本站管理人员有权保留或删除其管辖留言中的任意内容
  • 本站有权在网站内转载或引用您的评论
  • 参与本评论即表明您已经阅读并接受上述条款