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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 罗广伟 中级黑马   /  2013-1-20 08:21  /  1969 人查看  /  9 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 张向辉 于 2013-1-22 11:11 编辑

class Mao
{
        void mao()
        {
                System.out.println("mao");
        }
}

class Gou
{
        void gou()
        {
                System.out.println("gou");
        }
}
class demo
{
        public static void main(String[] args)
        {
                Mao m= new Mao();
                m.mao();
                Gou g= new Gou();
                g.gou();
                return(m instanceof Mao);
                }
}
抱着个错是什么原因



点评

建议你把面向对象之前的知识打牢一点  发表于 2013-1-20 10:58

9 个回复

倒序浏览
你如你想return,方法上必须加return的类型,而这个方法上的return类型是void,所以不能返回。而且一般主函数里不会写return,你这是要谁调用主函数啊?

评分

参与人数 1黑马币 +10 收起 理由
罗广伟 + 10 赞一个!

查看全部评分

回复 使用道具 举报
  1. class Mao
  2. {
  3.         void mao()
  4.         {
  5.                 System.out.println("mao");
  6.         }
  7. }

  8. class Gou
  9. {
  10.         void gou()
  11.         {
  12.                 System.out.println("gou");
  13.         }
  14. }
  15. class demo
  16. {
  17.         public static void main(String[] args)
  18.         {
  19.                 Mao m= new Mao();
  20.                 m.mao();
  21.                 Gou g= new Gou();
  22.                 g.gou();
  23.                 System.out.println(m instanceof Mao);//这里改成打印
  24.                 }
  25. }
复制代码
楼主是想打印结果看m是不是Mao类型吧?

评分

参与人数 1黑马币 +9 收起 理由
Rancho_Gump + 9 赞一个!

查看全部评分

回复 使用道具 举报
唐晓 发表于 2013-1-20 08:36
你如你想return,方法上必须加return的类型,而这个方法上的return类型是void,所以不能返回。而且一般主函 ...

//先谢谢了
class Mao
{
        void mao()
        {
                System.out.println("mao");
        }
}

class Gou
{
        boolean gou()
        {
               
                Mao m= new Mao();       
                if(m instanceof Mao)
                return true;
                else
                return false;
        }
}
class demo
{
        public static void main(String[] args)
        {
                Gou g= new Gou();
                g.gou();
               
       
        }
}
//那为啥我改成这样后运行结果为空呢,没返回真或者假

评分

参与人数 1黑马币 +9 收起 理由
Rancho_Gump + 9 赞一个!

查看全部评分

回复 使用道具 举报
柴乔军 发表于 2013-1-20 08:52
楼主是想打印结果看m是不是Mao类型吧?

这个行,我是想看看instanceof这个东西怎么用,如果改成System.out.println(g instanceof Mao);就会报错而不是返回false这是咋回事
回复 使用道具 举报
罗广伟 发表于 2013-1-20 09:19
这个行,我是想看看instanceof这个东西怎么用,如果改成System.out.println(g instanceof Mao);就会报错 ...
  1. mao
  2. gou
  3. true
复制代码
这是打印结果,没有错,返回的是true,你定义的m就是Mao的对象
回复 使用道具 举报
罗广伟 发表于 2013-1-20 09:06
//先谢谢了
class Mao
{

你给出的这个代码没有输出结果,并不是说返回的是空,加上输出语句就可以看到返回的结果
  1. class Mao
  2. {
  3.         void mao()
  4.         {
  5.                 System.out.println("mao");
  6.         }
  7. }

  8. class Gou
  9. {
  10.         boolean gou()
  11.         {
  12.                
  13.                 Mao m= new Mao();        
  14.                 if(m instanceof Mao)
  15.                 return true;
  16.                 else
  17.                 return false;
  18.         }
  19. }
  20. class demo
  21. {
  22.         public static void main(String[] args)
  23.         {
  24.                 Gou g= new Gou();
  25.                 g.gou();
  26.                 System.out.println(g.gou());
  27.         
  28.         }
  29. }
复制代码
回复 使用道具 举报
罗广伟 发表于 2013-1-20 09:19
这个行,我是想看看instanceof这个东西怎么用,如果改成System.out.println(g instanceof Mao);就会报错 ...

这里你已经声明了Gou g = new Gou();所以再去和Mao比较直接是编译不过的

评分

参与人数 2技术分 +1 黑马币 +10 收起 理由
Rancho_Gump + 1 赞一个!
罗广伟 + 10 赞一个!

查看全部评分

回复 使用道具 举报
因为,你是在主函数内return的, 主函数的返回值类型 是void, 所以会提示无法返回.  
帮你改了下代码:
  1. class Mao
  2. {
  3.          void mao()
  4.          {
  5.                  System.out.println("mao");
  6.          }
  7. }

  8. class Gou
  9. {
  10.          void gou()
  11.          {
  12.                  System.out.println("gou");
  13.          }
  14. }

  15. public  class Demo3
  16. {
  17.          public static void main(String[] args)
  18.          {
  19.                  Mao m= new Mao();
  20.                  m.mao();
  21.                  Gou g= new Gou();
  22.                  g.gou();
  23.                  System.out.println(m instanceof Mao);               
  24.                     //在主函数内无法return 具体类型值. 因为main方法 返回值是void
  25.                       //return(m instanceof Mao);
  26.                  }
  27. }
复制代码

评分

参与人数 1黑马币 +9 收起 理由
Rancho_Gump + 9 赞一个!

查看全部评分

回复 使用道具 举报
柴乔军 发表于 2013-1-20 09:32
这里你已经声明了Gou g = new Gou();所以再去和Mao比较直接是编译不过的

明白了,多谢
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马