java中的object类
来源:互联网 发布:学知不足的名人例子 编辑:程序博客网 时间:2024/04/26 11:11
在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;//falsed1.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类
- java中的object类
- Java中的Object类
- Java中的Object类
- java中的object类
- java中的Object类
- Java中的Object类
- java中的Object类
- Java中的Object类
- Java中的Object类
- Java中的Object类
- java中的object类
- JAVA中的Object类
- java中的Object类
- Java中的 Object类
- Java中的Object类
- Java Object类中的方法
- Java中的Object类介绍
- hdu1811 Rank of Tetris (并查集+拓扑排序)
- 友元接口
- (6)随机数、常量、枚举、结构、数组
- Poj 2528 Mayor's posters - 线段树
- (7)方法、out、ref
- java中的object类
- 一个普通IT人的十年回顾
- 类图 顺序图 活动图 状态图 用法和比较
- ExecuteScalar()方法的使用
- android 设置默认浏览器
- 非递归遍历二叉树
- POJ 1416 碎纸机
- 判断两链表是否相交,并求出交点
- OJ提交结果的整理