您的位置:首页 > 移动开发 > Objective-C

以下介绍的三种方法属于Object

2016-04-24 20:57 615 查看
以下介绍的三种方法属于Object:

(1) finalize方法:当一个对象被垃圾回收的时候调用的方法。

(2) toString():是利用字符串来表示对象。

当我们直接打印定义的对象的时候,隐含的是打印toString()的返回值。

可以通过子类作为一个toString()来覆盖父类的toString()。

以取得我们想得到的表现形式,即当我们想利用一个自定义的方式描述对象的时候,我们应该覆盖toString()。

(3)equal

首先试比较下例:

String A=new String(“hello”);

String A=new String(“hello”);

A==B(此时程序返回为FALSE)

因为此时AB中存的是地址,因为创建了新的对象,所以存放的是不同的地址。

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。

 

以下为定义equal(加上这个定义,返回ture或false)

public boolean equals(Object o){

  student s=(student)o;

  if (s.name.equals(this.name)&&s.age==this.age)

else return false;

}如果equals()返回的值为

 

以下为实现标准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;

}

 

以上过程为实现equals的标准过程。

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java