java基础知识,请大家分析一下原因!
importjava.io.*;publicclassHello{publicstaticvoidmain(Stringargs[]){Catc1=newCat("小白"...
import java.io.*;
public class Hello
{
public static void main(String args[])
{
Cat c1 = new Cat("小白", "白色", 3);
Cat c2 = new Cat("小花", "花色", 100);
String a = "";
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
try{
a = br.readLine();
}catch(IOException b){
;
};
if(a == c1.name)
{
c1.getAge();
}else if(a == c2.name)
{
c2.getAge();
}else
{
System.out.println("没有此猫");
}
}
}
class Cat {
int age;
String name, color;
Cat(String _name, String _color, int _age){
this.age = _age;
this.name = _name;
this.color = _color;
}
public void getAge() {
System.out.println(this.age);
}
}
当我在控制台输入“小白”时,程序在控制台打印“没有此猫”。。。按我的逻辑应该是打印“小白”的年龄啊。。。谢谢各位了求解 展开
public class Hello
{
public static void main(String args[])
{
Cat c1 = new Cat("小白", "白色", 3);
Cat c2 = new Cat("小花", "花色", 100);
String a = "";
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
try{
a = br.readLine();
}catch(IOException b){
;
};
if(a == c1.name)
{
c1.getAge();
}else if(a == c2.name)
{
c2.getAge();
}else
{
System.out.println("没有此猫");
}
}
}
class Cat {
int age;
String name, color;
Cat(String _name, String _color, int _age){
this.age = _age;
this.name = _name;
this.color = _color;
}
public void getAge() {
System.out.println(this.age);
}
}
当我在控制台输入“小白”时,程序在控制台打印“没有此猫”。。。按我的逻辑应该是打印“小白”的年龄啊。。。谢谢各位了求解 展开
2个回答
展开全部
字符串比较用equals,如果2个字符串相等,表示他们的hashcode也是相等的,如果不是,则违背java.lang.Object的规范第二条:两个根据 equal()相等的对象他们返回的hashcode值也必然相等
追问
谢谢啊 我把代码改成下面了
if(c1.equals(a))
{
c1.getAge();
}else if(c2.equals(a))
{
c2.getAge();
}else
{
System.out.println("没有此猫");
}
输入“小白”后 还是打印“没有此猫” 。。。。。。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询