/*
这篇博文整理自老师给我们的教案,主要讲的是 java中,object类中,的toString方法 和equals方法
*/
[ Java学习 ]类的其他文章汇总(都是超链接,可直接点击):
[ Java学习]破除思维定势之C++和Java的差异001
[ Java学习]破除思维定势之C++和Java的差异002
[ Java学习]破除思维定势之C++和Java的差异003
[ Java学习]“goto语句“ 和 “continue +标号” 的不同待遇
-------------------------------言归正传,进入本文的内容-------------------------------
所有类都从Object类继承。如果我们定义的类没有覆盖toString方法,则对象在调用toString方法时用的是Object类toString方法,返回的是“类名@hashcode".
同理,如果equals没有被覆盖,作用则是判断两个对象是否相同。
String类会覆盖上面两个方法,toString返回自身。equals则用于判断两个字符串的字符是否全部一样。所以我们在判断两个字符串是否一样时用的是equals。而用==号则会判断两个对象是否一样,得到错误的结果。
例子如下:
package yangguo.snakegame;
import java.awt.FlowLayout;
public class Test
{
public static void main( String[] args ) throws Exception
{
Test test = new Test();
Test test2 = new Test();
String word = new String("it is a pratics");
String word2 = new String("it is a pratics");
System.out.println(test.toString());
System.out.println(test.equals(test2));
System.out.println(word.toString());
System.out.println(word.equals(word2));
}
}
//output
yangguo.snakegame.Test@ca0b6
false
it is a pratics
true