java..(s1.equals(s2))...(v1.equals(v2))//false,为什么是false??下面三个问题不懂啊 10
classV{}publicclassTest{publicstaticvoidmain(String[]args){//TODOAuto-generatedmethod...
class V{
}
public class Test {
public static void main(String[] args) {
// TODO Auto-generated method stub
String s1="123";
String s2="123";
System.out.println(s1.equals(s2));//true
System.out.println(s1==s2);//true,这个不是比较地址吗?怎么会是true
V v1=new V();
V v2=new V();
System.out.println(v1.equals(v2));//false,,为什么是false??
System.out.println(v1==v2);//false,为什么是false??
}
} 展开
}
public class Test {
public static void main(String[] args) {
// TODO Auto-generated method stub
String s1="123";
String s2="123";
System.out.println(s1.equals(s2));//true
System.out.println(s1==s2);//true,这个不是比较地址吗?怎么会是true
V v1=new V();
V v2=new V();
System.out.println(v1.equals(v2));//false,,为什么是false??
System.out.println(v1==v2);//false,为什么是false??
}
} 展开
展开全部
s1和s2是字符串变量,是可以直接用==比较的。
v1和v2是两个对象,首先用==比较两个对象引用(地址);对于equals方法,若没有重写Object的equals方法, 就会调用Object的equals方法,而Object的equals方法用的是==操作来比较两个对象。
v1和v2是两个对象,首先用==比较两个对象引用(地址);对于equals方法,若没有重写Object的equals方法, 就会调用Object的equals方法,而Object的equals方法用的是==操作来比较两个对象。
追问
能列举个重写Object的equals方法比较的例子吗?~~
追答
public boolean equals(Object obj) {
if(this == obj)
return false;
if(obj == null)
return false;
if(getClass() != obj.getClass() )
return false;
MyClass other = (MyClass)obj;
if(str1 == null) {
if(obj.str1 != null) {
return false;
}
}else if (!str1.equals(other.str1) )
return false;
}
if(var1 != other.var1)
return false;
return true;
}
2015-09-18
展开全部
对象 不可以使用==比较,要使用 .equals() 比较
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询