JavaSE学习笔记_6:Java-Object类
来源:互联网 发布:怎样修改淘宝掌柜名字 编辑:程序博客网 时间:2024/05/20 09:43
Java-Object类
Object类是所有对象的直接或者间接父类,传说中的上帝。该类中定义的肯定是所有对象都具备的功能。Object:根类。它不需要子类显示地去继承它,却也一样能用它里边的东西。
1、Object类-equals()
equals方法比较的是两者的值是否相等。接收的参数是一个对象。如:
Demo d1=new Demo();
Demo d2=new Demo();
d1.equals(d2);等价于:(d1==d2)?
equals()的原型:public void equals(Object obj)。
因此涉及到了多态。
想在子类想比较其他的东西,子类没有必要定义新的功能,直接沿袭父类的功能,定义自己特有的内容。主要要向下转型的情况。
2、Object类-toString()
原型:public String toString()。
子类对象调用该方法返回一串字符串。
如:
class Demo
{
private int num;
Demo(int num)
{
This.num=num;
}
}
Class ObjectDemo
{
public static void mian(String[] args)
{
Demo d1=new Demo(4);
System.out.println(d1.toString());
}
}
编译运行结果为:Demo@c17164。
(1)Demo:是类文件的名字。
我们知道很多类文件也可以算是一类事物,它们也有共性,比如:类文件名、有构造方法等也可以向上抽取。因此Class类就是它们所向上抽取的类。class来描述这些类文件,当中定义的有getName(),getMethod()。这个Demo可以通过下列代码得出:
Class c=d1.getClass();
c.getName()
因此可以知道toString()中有这些代码存在。
(2)17164:是对象d1的地址。(十六进制形式)每一个对象都有一个地址(哈希值),可以通过调用hashCode()(它也被定义在了Object类当中,原型:int hashCode())来计算出来。因此可以知道toString()调用了hashCode()。这个值可以通过下列代码得出:Interger.toHexString(d1.hashCode())
综上所述,toString()的方法体中一定有:
Class c=d1.getClass();
return c.getName()+”@”+Interger.toHexString(d1.hashCode())
当然,toSting()也可以被子类复写。
2015-11-21至2015-11-21著
- JavaSE学习笔记_6:Java-Object类
- JavaSE学习笔记_11:Java-字符串类
- JavaSE学习笔记_13:Java-System类
- JavaSE学习笔记_15:Java-Date类
- JavaSE学习笔记_16:Java-Calendar类
- JavaSE学习笔记_14:Java-Runtime类
- java学习笔记-object类
- Java学习笔记Object类
- JavaSE基础知识学习—Object类
- Java学习笔记【Object】
- JAVASE学习笔记:第六章 常用类Lang包之Object类、String类
- JAVASE学习笔记:第九章 JAVA异常类
- JavaSE学习笔记_17:Java-Math&Random类
- Java 学习笔记(0x09) object类
- Java基础学习笔记--Object类
- java学习笔记(1)-Object类
- Java学习笔记(37)--Object类
- JavaSE学习笔记-java基础1
- mysql数据库char与varchar区别
- Cacti安装教程
- spring ibatis struts
- 项目中关于clone的一些感悟
- CSS3学习
- JavaSE学习笔记_6:Java-Object类
- **个人编程中提出的一些问题及解决办法**
- [Google EarlGrey] 0x02 API 简介
- PL/SQL 导出dmp文件 含有clob 报错处理
- Android: 详解触摸事件如何传递 - 玲音
- java常见面试题及答案
- #学习笔记#(48)angularjs ng-include
- ORM 框架
- 【线段树】BZOJ4373算术天才与等差数列