黑马程序员技术交流社区

标题: 为什么没有返回值类型的方法不能放到输出语句里面? [打印本页]

作者: 郑庆伟    时间: 2012-6-29 01:07
标题: 为什么没有返回值类型的方法不能放到输出语句里面?
本帖最后由 郑庆伟 于 2012-6-29 10:47 编辑

class Demo
{
int div(int a,int b)
{
  return a/b;
}
}
class ExceptionDemo
{
public static void main(String[] args)
{
  Demo d = new Demo();
  try
  {
   int x = d.div(4,0);
   System.out.println("x="+x);
  }
  catch (Exception e)//Exception e = new ArithmeticException();
  {
   System.out.println("除零拉");
   System.out.println(e.getMessage());//  /by zero
   System.out.println(e.toString());
   System.out.println(e.printStackTrace());//此处的e.printStackTrace() 是没有返回值类型的方法
      e.printStackTrace();
  }

  System.out.println("over");
}
}
为什么没有返回值类型的方法不能放到输出语句 System.out.println();里面?

作者: 胡文杰    时间: 2012-6-29 01:32
如果没有返回类型,你把void方法放到输出语句中想输出什么呢?!
作者: 李伟    时间: 2012-6-29 01:34
为什么没有返回值类型的方法不能放到输出语句 System.out.println();里面?
放到输出语句里面没有任何意义,因为没有返回值,输出语句没有内容可以打印
作者: 赵庆礼    时间: 2012-6-29 01:43
class Demo
{
     int div(int a,int b)
     {
          return a/b;
     }
}
class ExceptionDemo
{
     public static void main(String[] args)
     {
          Demo d = new Demo();
          try
          {
               int x = d.div(4,0);
               System.out.println("x="+x);
          }
          catch (Exception e)//Exception e = new ArithmeticException();
          {
               System.out.println("除零拉");
               System.out.println("getMessage()返回结果---"+e.getMessage());  //  返回结果为---- / by zero
               System.out.println("e.toString()返回结果---"+e.toString());  // 返回的结果为----java.lang.ArithmeticException: / by zero。参考下图
                //System.out.println(e.printStackTrace()); //此处的e.printStackTrace() 是没有返回值类型的方法
                                                                                 //因为该方法没有返回值,放在打印语句中编译将会出错。
                                                                                 //所以打印语句就不能正常执行,
               e.printStackTrace();  //因为该方法本身就是一个标准输出流,所以不用再写打印语句了,具体可参考下图。
          }
          System.out.println("over");
     }
}
注释掉e.printStackTrace();  时的截图

未注释时的截图


作者: 常佳杰    时间: 2012-6-29 10:00
你想要输出它,又没有返回值那你输出什么?
java编译器就会提示错误,在System.out.print();语句里边就得有输出结果..
不然就会报错..
作者: 郑庆伟    时间: 2012-6-29 10:14
是因为println()这个方法 不能使void是吧




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2