首先看下面四段代码:
package tij103;
public class Equivalence {
public static void main(String[] args){
Integer n1 = new Integer(47);
Integer n2 = new Integer(47);
System.out.println(n1 == n2);
System.out.println(n1 != n2);
}
}
结果是false
true
/**************************************************/
public class EqualsMethod {
public static void main(String[] args){
Integer n1 = new Integer(47);
Integer n2 = new Integer(47);
System.out.println(n1.equals(n2));
}
}
结果是true
/****************************************************/
package TIJ104;
class Value{
int i;
}
public class EqualsMethod2 {
public static void main(String[] args){
Value v1 = new Value();
Value v2 = new Value();
v1.i=100;
v2.i=100;
System.out.println(v1.equals(v2));
}
}
结果是false
/************************************************/
class Value{
int i;
}
public class EqualsMethod2 {
public static void main(String[] args){
Value v1 = new Value();
Value v2 = new Value();
v1.i=100;
v2.i=100;
System.out.println(v1.i==v2.i);
}
}
结果是true
/*************************************************/
这几段代码把我彻底弄糊涂了,对着本英文书研究半天,得出来原因是:==和!=比较的是对象的引用(可能翻译得有点烂呵。。),equal( )比较的是对象(除了primitive),所以,定义了新的class,则在比较的时候用==和!=;如果没有,则需用equal()函数来比较。
看似很难的问题,写出来就容易理解了。
关于上周说的那个 import static net.mindview.util.Print.*报错的问题,实际上是因为TIJ这本书需要下载一个文档,而在这个文档rar里有很多的.java文件需要拿来直接用,其中就有一个net.java。而不是IDE的问题,至于怎么导到eclipse里,虽然问了学长,老实说,我依旧没有弄成功。还请各位大虾们拔刀相助。