java中的object类
在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类的更多相关文章
- Java学习笔记二十四:Java中的Object类
Java中的Object类 一:什么是Object类: Object类是所有类的父类,相当于所有类的老祖宗,如果一个类没有使用extends关键字明确标识继承另外一个类,那么这个类默认继承Object ...
- Java基础(43):Java中的Object类与其方法(转)
Object类 java.lang.Object java.lang包在使用的时候无需显示导入,编译时由编译器自动导入. Object类是类层次结构的根,Java中所有的类从根本上都继承自这个类. O ...
- java中的Object类和其clone()
1.Object是所有类的父类,任何类都默认继承Object,即直接或间接的继承java.lang.Object类.由于所有的类都继承在Object类,因此省略了extends Object关键字. ...
- Java中的Object类的几个方法
Object类被称为上帝类,也被称为祖宗类.在定义Java类时,如果没有指定父类,那么默认都会去继承Object类.配合Java的向上类型转换,借助Object类就可以完成很多工作了. 在Object ...
- Java中的Object类介绍
Object类是所有类的父类,如果一个类没有使用extends关键字明确标识继承另外一个类,那么这个类默认继承Object类. Object类中的所有方法适用于所有子类 Object中比较常见的方法: ...
- Java中的Object类的toString()方法,equals()方法
Object类是所有类的父类,若没有明确使用extends关键字明确表示该类继承哪个类,那么它就默认继承Object类,也就可以使用Object中的方法: 1.toString 如果输出一个对象的时候 ...
- Java中特殊的类——Object类
Java中特殊的类--Object类 1.Object类的概述 Object类是java默认提供的类.Java中除了Object类,所有的类都是有继承关系的.默认会继承Object类,即所有的对象都可 ...
- Java常见对象Object类中的个别方法
Java常见对象Object类 public int hashCode() : 返回该对象的哈希码值. 注意:哈希值是根据哈希算法计算出来的一个值,这个值和地址值有关,但是不是实际地址值.你可以理解成 ...
- java中基于TaskEngine类封装实现定时任务
主要包括如下几个类: 文章标题:java中基于TaskEngine类封装实现定时任务 文章地址: http://blog.csdn.net/5iasp/article/details/10950529 ...
随机推荐
- debian下samba配置
debian下samba配置 http://blog.chinaunix.net/uid-2282111-id-2113216.html 服务器端配置过程:1. apt-get install sa ...
- 「Foundation」字符串
一.Foundation框架中一些常用的类 字符串型: NSString:不可变字符串 NSMutableString:可变字符串 集合型: 1)NSArray:OC不可变数组 NSMutableA ...
- Java基础之编程语法(一)
1.基本格式 所有Java代码都应该在一个class中. Java是严格区分大小写的. Java是一种自由格式的语言.Java代码分为结构定义语句和功能执行语句,功能执行语句最后必须以分号结束. 2. ...
- HTML5 总结-音频-2
HTML5 音频 音频格式 当前,audio 元素支持三种音频格式: IE 9 Firefox 3.5 Opera 10.5 Chrome 3.0 Safari 3.0 Ogg Vorbis ...
- Python学习之路——模块
一.模块: 模块,用一砣代码实现了某个功能的代码集合. 类似于函数式编程和面向过程编程,函数式编程则完成一个功能,其他代码用来调用即可,提供了代码的重用性和代码间的耦合.而对于一个复杂的功能来,可能需 ...
- mysql里的sql函数
仅作为自己忘记时的查询 时间 now() 返回当前年-月-日 时:分:秒格式的时间 UNIX_TIMESTAMP() 当前的uninx时间戳 date_format(date,格式) date是年月日 ...
- git 删除右键菜单
cmd进入"C:\Program Files (x86)\Git\git-cheetah"目录,运行regsvr32 /u git_shell_ext(64).dll
- 如何配置和使用Tomcat访问日志
配置位置在log下的server.xml,(tomcat容器) <Engine defaultHost="localhost" name="Catalina&quo ...
- [每日一题] 11gOCP 1z0-052 :2013-09-14 repeated parsing activity.................................A70
转载请注明出处:http://blog.csdn.net/guoyjoe/article/details/11699299 正确答案:D SQL语句的执行过程: 1.客户端输入sql语句update ...
- H264解码的一个測试程序
网上看到的一个H264视频格式的解码測试程序,能够用来參考其逻辑流程. 代码例如以下: Test_Display_H264(){ in_fd = open(H264_INPUT_FILE, ...