您的位置:首页 > 其它

关于equal和toString方法的实验报告

2014-04-23 17:16 393 查看

一 实验目的

了解equal和toString方法

二 实验软件环境

操作系统:windows xp

java version: "1.7.0_51"

开发工具:Eclipse Standard/SDK Version: Kepler Service Release2

三 实验内容

分别建立两个类:A和B(都是默认继承自Object类)

重写A中的equal方法;

重写B中的toString方法;

即:

A中的equal方法是重写之后的新的方法,A中的toString方法是继承自Object的方法;

B中的toString方法是重写之后的新方法,B中的equal方法是继承自Object的方法。

通过对比A和B的输出结果,可以看出Object类中的equal和toString方法的用法,以及重载之后的方法。

程序代码:

package chapter01;

class A
{
inti;
public String toString()
{
return "我是类A";
}
A(int i)
{
this.i = i;
}
publicboolean equals(Object obj)
{
if(obj != null && (objinstanceof A))
{
if(this.i == ((A) obj).i)
{
return true;
}
}
return false;
}
}
class B
{
int i;
public String toString()
{
return "我是类B";
}
B(int i)
{
this.i = i;
}
}
public class Demo
{
public static void main(String []args)
{
A a1 = new A(3);
A a2 = new A(3);
System.out.println(a1);
System.out.println(a2);
System.out.println(a1.equals(a2));

B b1 = new B(3);
B b2 = new B(3);
System.out.println(b1);
System.out.println(b2);
System.out.println(b1.equals(b2));
}
}


程序输出结果:

chapter01.A@2cdb03a1

chapter01.A@5ecb5608

true

我是类B

我是类B

false

四 实验结果

Object类中的equal方法是统一的含义,即:比较的两者就是同一个对象,因为B没有重写从Object类中继承的equal方法,所以输出的结果是false;而A重写了Object类中的该属性使其具有相等的含义,即只要两个对象都是A的对象并且对应的属性值相同,就是相等,所以输出结果为true。

Object类中的toString方法可以返回一个代表这个对象的字符串,由所属类名,一个“@”符号和这个对象哈希码的无符号十六进制表达式组成。从结果可以看出,A的输出结果就符合这种格式,而B重写了该方法,所以输出了不同的结果。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: