同样的类在不同文件下 当你new一个Dog类 会在相应的classpath指定的顺序去找 。代表当前路径 ( 。在前面 在后面不一样的)
classpath下 有两个类 考虑另外个classpath也是类名 用eclipse 就没这问题了
为了不和其它的class冲突 可以建在一个新的目录下
Object
public boolean equals(Object obj)
public class Equal {
public static void main(String args[]){
Cat c1 = new Cat();
Cat c2 = new Cat();
Cat c3 = new Cat();
System。out。println( c1 == c2)
String s1 = new String("hello");
String s2 = new String("hello");
System.out.println(s1 == s2);
System.out.println(s1.equals(s2));(去String看看 有没有重写,确实是重写了 true)
}
}
class Cat {
int color;
int height,weight;
public boolean equals(Object obj)
return true;(比较随意 哈!!)
}
执行 false
倘若给它们相同的颜色、高度和重量,它们还相等吗??
利用构造函数 来弄
还是不等 不管你咋样就是不等
原因处在哪呢 !!内存不一样
== 不能解决 比较两对象
用equals试试
还是不行 它判断的是 是不是指向同一对象 换汤不换药啊!!!
严格点的实现
public boolean equals(Object obj) {
if(obj == null) return false;
else {
if (obj instance Cat){
Cat c= (Cat)obj;(强制转换 如果知道是一只猫了可以 强制转换)
if(c。color=this。color&&。。。。。)
return true;
}
JDK 提供了String Data 等 重写了equals 方法