黑马程序员技术交流社区

标题: 返回类型与设定变量类型不符合,编译通过,为什么? [打印本页]

作者: Se7en_Liu    时间: 2014-10-9 08:53
标题: 返回类型与设定变量类型不符合,编译通过,为什么?
因为操作失误,将返回类型写成了double,变量设定的是int,但是编译通过了,详见代码,什么原理??
  1. class Rectangle implements AreaMethod
  2. {
  3.         private int len,wid;     //设定的变量类型为int
  4.         Rectangle(int len,int wid)
  5.         {       
  6.                 if (len<=0 || wid<=0)
  7.                 {
  8.                         throw new WrongException("出现非法值");
  9.                 }
  10.                 this.len = len;
  11.                 this.wid = wid;
  12.         }

  13.         public double getArea()  //误将返回类型写成了double,可是编译通过了。。。。。
  14.         {
  15.                 return len*wid;
  16.         }

  17. }

  18. class  Demo
  19. {
  20.         public static void main(String[] args)
  21.         {
  22.                 Rectangle r = new Rectangle(4,5);

  23.                 System.out.println(r.getArea());
  24.         }
  25. }
  26. [b][/b]
复制代码

作者: 张波    时间: 2014-10-9 09:00
len*wid得到的值为int型, int型值可以赋值给double型,原因是int型占四个字节,double型占八个字节, int型自动升级了
作者: 不系之舟王    时间: 2014-10-9 09:12
自动类型转换
作者: Se7en_Liu    时间: 2014-10-9 10:56
张波 发表于 2014-10-9 09:00
len*wid得到的值为int型, int型值可以赋值给double型,原因是int型占四个字节,double型占八个字节, int ...

:),理解了。。。。




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