小编Kru*_*she的帖子

为什么这个.equals()代码示例返回"false"?

class Dog{
    int height;
    int weight;
    String name;
}

public class DogTest {

    public static void main(String[] args) {
        Dog one = new Dog();
        one.height=4;
        one.name="fudo";
        one.weight =2;
        Dog two = new Dog();
        two.height=4;
        two.name="fudo";
        two.weight =2;
        if (one.equals(two)){
            System.out.println("True");
        }
        else{
            System.out.println("False");
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

为什么输出"假"?如果Java默认情况下"所有对象即使它们具有相同的值也不相等"那么我如何"说服"Java这两个对象实际上是相等的?好吧,即使两只狗有相同的名字,身高,体重也可以是dalmatiner而另一只是斗牛犬,即使它们是相同的"种族",在性质上,它们总是彼此不同.

PS:我理解通过说if(one == two){}我们比较它们是否都引用堆上的相同对象,字符串上的.equals比较它们是否具有相同顺序的相同字符.

java equals

1
推荐指数
1
解决办法
335
查看次数

标签 统计

equals ×1

java ×1