gpt4 book ai didi

java - 对象1.toString() == 对象2.toString()

转载 作者:行者123 更新时间:2023-12-01 12:12:46 28 4
gpt4 key购买 nike

下面是我的主要方法,其中比较两个对象引用。覆盖toString()方法在汽车类中,我的问题是为什么下面的“if”条件在它们应该评估为真时评估为假。有人可以解释一下吗?谢谢。

public static void main(String[] args){

Car c1 = new Car(2829,"white");
Car c2 = new Car(2829,"white");

if(c1 == c2)
System.out.println(true);
else
System.out.println(false);

String sc1 = c1.toString();
String sc2 = c2.toString();

if(sc1 == sc2)
System.out.println("it's equal");
else
System.out.println("it's not!");
}


public class Car {
private int regNo;
private String color;

protected void start(){
System.out.println("Car Started!");
}

public Car(int regNo, String color){
this.regNo = regNo;
this.color = color;
}

@Override
public String toString() {
return "Car-"+regNo;
}
}

比如说,我有两个字符串 s1="abc" and s2 = "abc" 。现在,s1 == s2评估结果为 true 那么为什么上面的代码中会出现 c1.toString() == c2.toString()我的问题是评估为 false 吗?

最佳答案

嗯,因为 == 比较引用和

  1. 引用 c1 与 c2 不同
  2. c1.toString().equals(c2.toString()) 是比较字符串的正确方法。

关于java - 对象1.toString() == 对象2.toString(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27186097/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com