电脑爱好者,提供IT资讯信息及各类编程知识文章介绍,欢迎大家来本站学习电脑知识。 最近更新 | 联系我们 RSS订阅本站最新文章
电脑爱好者
站内搜索: 
当前位置:首页>> java>>java学习总结-Object 类:

java学习总结-Object 类

来源:网络 | 2007-4-19 | (有8007人读过)

JAVA中有一个特殊的类: Object。它是JAVA体系中所有类的父类(直接父类或者间接父类)。
此类中的方法可以使所的类均继承。
以下介绍的三种属于Object的方法:
(1)finalize方法:当一个对象被垃圾回收的时候调用的方法。
(2)toString():是利用字符串来表示对象。
当我们直接打印定义的对象的时候,隐含的是打印toString()的返回值。
可以通过子类作为一个toString()来覆盖父类的toString()。
以取得我们想得到的表现形式,即当我们想利用一个自定义的方式描述对象的时候,我们应该覆盖toString()。

(3)equal
首先试比较下例:
String A=new String(“hello”);
String B=new String(“hello”);
A==B(此时程序返回为FALSE)
因为此时AB中存的是不同的对象引用。 
附加知识:
字符串类为JAVA中的特殊类,String中为final类,一个字符串的值不可重复。因此在JAVA VM(虚拟机)中有一个字符串池,专门用来存储字符串。如果遇到String a=”hello”时(注意没有NEW,不是创建新串),系统在字符串池中寻找是否有”hello”,此时字符串池中没有”hello”,那么系统将此字符串存到字符串池中,然后将”hello”在字符串池中的地址返回a。如果系统再遇到String b=”hello”,此时系统可以在字符串池中找到 “hello”。则会把地址返回b,此时a与b为相同。

String a=”hello”;
System.out.println(a==”hello”);
系统的返回值为true。

故如果要比较两个字符串是否相同(而不是他们的地址是否相同)。可以对a调用equal:
System.out.println(a.equal(b));
equal用来比较两个对象中字符串的顺序。 
a.equal(b)是a与b的值的比较。

注意下面程序:
student a=new student(“LUCY”,20);
student b=new student(“LUCY”,20);
System.out.println(a==b);
System.out.println(a.equal(b));
此时返回的结果均为false。
因为Student继承的是Object的equals()方法,此时toString()等于== 
为了实现对象的比较需要覆盖equals(加上这个定义,返回ture或false)
以下为实现标准equals的流程:
public boolean equals(Object o){
 if (this==o) return trun; //此时两者相同
 if (o==null) return false;
 if (! o instanceof strudent) return false; //不同类
 studeng s=(student)o; //强制转换
  if (s.name.equals(this.name)&&s.age==this.age) return true;
else return false;
}
java热门文章排行
网站赞助商
购买此位置

 

关于我们 | 网站地图 | 文档一览 | 友情链接| 联系我们

Copyright © 2003-2024 电脑爱好者 版权所有 备案号:鲁ICP备09059398号