A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

class Duotai
{
        private int num;
        Duotai(int num)
       
        {
          this.num = num;       
               
        }
public boolean equals(Object obj)
   {
      if(obj instanceof Duotai)
      {

       Duotai d = (Duotai)obj;

          
          
           return this.num == d.num;
   }               
}
}
class DuotaiDemoTest
{
public static void main(String[] args)
     {
       Duotai d1 = new Duotai(1);
       Duotai d2 = new Duotai(1);
              
       System.out.println(d1.equals(d2));       
            
     }       

编译结果如下:
-----------------------------------------------------------------

G:\代码>javac DuotaiDemoTest.java
DuotaiDemoTest.java:21: 错误: 缺少返回语句
}
^
1 个错误
请问:问题出在哪里?不是已经有了return语句了吗?


4 个回复

倒序浏览
谢谢楼主  。。。。。。
回复 使用道具 举报
仔细看public boolean equals(Object obj) 是没有返回值的,返回值在if函数中
可以把代码改成
public boolean equals(Object obj)
        {
                        if(this==obj)
                                return true;
                        if(!(obj instanceof Duotai))
                                throw new ClassCastException("类型错误");
                Duotai d = (Duotai)obj;                     
                return this.num==d.num;
        }
回复 使用道具 举报 1 0
楼上正解,你返回的是当符合if条件的时候的结果,当不符合if条件时你没有返回值
回复 使用道具 举报
你肯定是用文本编辑器写的程序吧?如果放在eclipse中就可以发现了,都不用编译就会显示错误。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马