在Java中,任何一个类都扩展来自Object类。当没有为某一个类定义父类时,Java会自动定义Object类为其父类。

object类的一些常用方法:

(1)public String toString()

Object类定义了toString()方法,打印输出对象所属的类名和散列码。当需要字符串的地方,系统自动调用该对象的toString()方法。object定义了自己的toString()方法,但是建议自己重写:

//object定义的toString()方法
public String toString() {
return getClass().getName() + "@" + Integer.toHexString(hashCode());
} //范例1:
Point p = new Point ( 10, 20 ) ;
String message = "The current position is " + p ; //调用p.toString //范例2:
classType a = new classType();
System.Out.println(a);//其实是自动调用了a对象的toString()方法

(2)public native int hashCode()

返回对象的Hash码。Hash码是标志对象的唯一值,Hash码相同的对象是同一对象。散列码(hash code)是由对象导出的一个整型值。散列码是没有规律的,如果x和y是两个不同的对象,那x.hashCode()与y.hashCode()一般是不相同的。

(3)三个函数用于控制线程

public final native void notify();

public final native void notifyAll();

public final native void wait();

native型方法指由C++语言编写的方法,Java解释器对其进行转义后才执行。

(4)“==”与equals()

"==" 一般用于基本数据类型比较。若用作两个引用对象比较,仅当引用变量引用同一个对象时,才返回true,否则false。object类的实现与“==”其实就是一个意思,建议重写。

//Object类方法定义:

public boolean equals(Object obj)
{
return (this == obj);
} //范例1:
Dog d1 = new Dog(1,2);
Dog d2 = new Dog(1,2);
d1 == d2;//false,虽然两者的值相等,但是d1和d2分别指向的不同对象
d1.equals(d2);//false,object中的equals实现本质就是“==”,所以结果与上面一样 //范例2:
//如果我们一定要比较里面的内容是否相等,则我们必须重写equals
//假设我们在Dog重写了equals方法,则有如下答案:
Dog d1 = new Dog(1,2);
Dog d2 = new Dog(1,2);
d1 == d2;//false
d1.equals(d2);//true,比较的是内容 //范例3:
//String类中重写了equals方法
void EqualCompare()
{
String s1 = new String("Hello");
String s2 = new String("Hello"); //未使用new,s4引用既存的对象(编译器创建对象之前先进行检测"Hello"是否已经存 在,若存在,则返回原对象的引用)
String s3 = "Hello";
String s4 = "Hello"; System.out.println(s1.equals(s2)); // true x1行
System.out.println(s1 ==s2); // false 两变量引用不同对象
System.out.println(s3.equals(s4)); //true 两变量引用相同对象
System.out.println(s3 ==s4); // true 两变量引用相同对象
}

(5)finalize()

     Object类中的finalize()一个对象被垃圾收集的时候,最后会由JVM调用这个对象的finalize方法。

object类的用方法:

这里面有个父类引用指向子类对象,函数参数为object保证所有类的对象都能过传进来,然后通过instanceof提取出引用的类型与需要的类型相比较。然后通过强制转换为相应的类型,进行下面的操作。

int func(Object o)
{
if(!(o instanceof Cat))return -1;
Cat c = (Cat)o;//强制转换为cat,再进行下面的操作
}

java中的object类的更多相关文章

  1. Java学习笔记二十四:Java中的Object类

    Java中的Object类 一:什么是Object类: Object类是所有类的父类,相当于所有类的老祖宗,如果一个类没有使用extends关键字明确标识继承另外一个类,那么这个类默认继承Object ...

  2. Java基础(43):Java中的Object类与其方法(转)

    Object类 java.lang.Object java.lang包在使用的时候无需显示导入,编译时由编译器自动导入. Object类是类层次结构的根,Java中所有的类从根本上都继承自这个类. O ...

  3. java中的Object类和其clone()

    1.Object是所有类的父类,任何类都默认继承Object,即直接或间接的继承java.lang.Object类.由于所有的类都继承在Object类,因此省略了extends Object关键字. ...

  4. Java中的Object类的几个方法

    Object类被称为上帝类,也被称为祖宗类.在定义Java类时,如果没有指定父类,那么默认都会去继承Object类.配合Java的向上类型转换,借助Object类就可以完成很多工作了. 在Object ...

  5. Java中的Object类介绍

    Object类是所有类的父类,如果一个类没有使用extends关键字明确标识继承另外一个类,那么这个类默认继承Object类. Object类中的所有方法适用于所有子类 Object中比较常见的方法: ...

  6. Java中的Object类的toString()方法,equals()方法

    Object类是所有类的父类,若没有明确使用extends关键字明确表示该类继承哪个类,那么它就默认继承Object类,也就可以使用Object中的方法: 1.toString 如果输出一个对象的时候 ...

  7. Java中特殊的类——Object类

    Java中特殊的类--Object类 1.Object类的概述 Object类是java默认提供的类.Java中除了Object类,所有的类都是有继承关系的.默认会继承Object类,即所有的对象都可 ...

  8. Java常见对象Object类中的个别方法

    Java常见对象Object类 public int hashCode() : 返回该对象的哈希码值. 注意:哈希值是根据哈希算法计算出来的一个值,这个值和地址值有关,但是不是实际地址值.你可以理解成 ...

  9. java中基于TaskEngine类封装实现定时任务

    主要包括如下几个类: 文章标题:java中基于TaskEngine类封装实现定时任务 文章地址: http://blog.csdn.net/5iasp/article/details/10950529 ...

随机推荐

  1. debian下samba配置

    debian下samba配置  http://blog.chinaunix.net/uid-2282111-id-2113216.html 服务器端配置过程:1. apt-get install sa ...

  2. linux下操作gpio寄存器的方法

    一. 在驱动中: 1. 用的时候映射端口:ioremap; #define GPIO_OFT(x) ((x) - 0x56000000) #define GPFCON (*(volatile unsi ...

  3. [iOS]超详细Apache服务器的配置(10.10系统)

    配置目的:有一个自己专属的测试服务器 我们需要做以下事情: 1.新建一个目录,存放网页 2.修改Apache配置文件httpd.conf - 修改两个路径 - 增加一个属性 - 支持PHP脚本 3.拷 ...

  4. JUnit4的使用2

    package com.imooc.test.aware; import org.junit.Test; import org.junit.runner.RunWith; import org.jun ...

  5. bootstrap基础知识点YI

    <!DOCTYPE html> <html lang="en"> ... </html> bootstrap页面都应该包含html5声明. 框架 ...

  6. REF CURSOR和CURSOR

    REF CURSOR DECLARE TYPE TY_EMP_CUR IS REF CURSOR; V_Emp_Cur TY_EMP_CUR; V_Id EMP.ID%TYPE; BEGIN OPEN ...

  7. jQuery tablesort插件推荐

    搜索结果的第一条网址(似乎是Official Site)似乎有问题(也可能是我弄错了  总之chrome中有个叉叉) 所以还是用这个吧http://mottie.github.io/tablesort ...

  8. Linux内存分析

    Linux命令----分析内存的瓶颈    为了提高磁盘存取效率, Linux做了一些精心的设计, 除了对dentry进行缓存(用于VFS,加速文件路径名到inode的转换), 还采取了两种主要Cac ...

  9. Qt浅译:JSON Support in Qt(JSON只有六种数据类型)

    JSON Support in Qt   Qt5之后开始提供对处理JSON数据的支持,JSON是一种Interter数据交换的数据格式.   JSON 用于存储结构化的数据,JSON有6种基本数据类型 ...

  10. BZOJ 2730: [HNOI2012]矿场搭建( tarjan )

    先tarjan求出割点.. 割点把图分成了几个双连通分量..只需dfs找出即可. 然后一个bcc有>2个割点, 那么这个bcc就不用建了, 因为一定可以走到其他救援出口. 只有一个割点的bcc就 ...