黑马程序员技术交流社区

标题: 这里的代码哪里错了啊 [打印本页]

作者: 惠晖    时间: 2012-11-12 12:57
标题: 这里的代码哪里错了啊
本帖最后由 惠晖 于 2012-11-12 13:42 编辑

class NoValueException extends RuntimeException
{
        NovalueException(String message)
        {
                super(message);
        }
}

interface Shape
{
        void getArea();
}
class Rec implements Shape
{
        private int len,wid;
        Rec(int len,int wid)
        {
                if (len<=0 ||wid<=0)
                {
                        throw new NoValueException("非法直");
                }
                this.len=len;
                this.wid=wid;
        }
        public void getArea()
        {
                System.out.println(len*wid);
        }
               
}
class  ExceptionTest
{
        public static void main(String[] args)
        {
                Rec r =new Rec(3,-6);
                r.getArea();
                System.out.println("over");
        }
}
这里哪里错了啊
作者: 林晓泉    时间: 2012-11-12 13:05
  1. interface Shape
  2. {
  3.         void getArea();
  4. }
  5. class Rec implements Shape
  6. {
  7.         private int len,wid;
  8.         Rec(int len,int wid)
  9.         {
  10.                 this.len=len;
  11.                 this.wid=wid;
  12.         }
  13.         public void getArea()
  14.         {
  15.                 System.out.println(len*wid);
  16.         }
  17.                
  18. }
  19. class  ExceptionTest3
  20. {
  21.         public static void main(String[] args)
  22.         {
  23.                 Rec r =new Rec(3,6);
  24.                 r.getArea();
  25.                 //System.out.println(len * wid); 变量len wid不存在
  26.         }
  27. }
复制代码

作者: 邹海洋    时间: 2012-11-12 13:09
  private int len,wid;   leng 和 wid 被你私有了 外界无法访问,要么更改访问权限,要么提供外界访问的方法
作者: 葛旭东    时间: 2012-11-12 13:10
r.getArea();里面已经有了System.out.println(len * wid),就不要再写一遍了;

而且 ExceptionTest3类中也没有len和wid变量,肯定会报错了。。。
作者: 惠晖    时间: 2012-11-12 13:24
class NoValueException extends RuntimeException
{
        NovalueException(String message)
        {
                super(message);
        }
}

interface Shape
{
        void getArea();
}
class Rec implements Shape
{
        private int len,wid;
        Rec(int len,int wid)
        {
                if (len<=0 ||wid<=0)
                {
                        throw new NoValueException("非法直");
                }
                this.len=len;
                this.wid=wid;
        }
        public void getArea()
        {
                System.out.println(len*wid);
        }
               
}
class  ExceptionTest
{
        public static void main(String[] args)
        {
                Rec r =new Rec(3,-6);
                r.getArea();
                System.out.println("over");
        }
}
这里哪里错了啊?
作者: 聽聽我dē❤    时间: 2012-11-12 13:29
private int len,wid;    变量被私有了而在下面方法中调用了,所以会出问题的。

1.jpg (10.43 KB, 下载次数: 21)

1.jpg

作者: 惠晖    时间: 2012-11-12 13:30
林晓泉 发表于 2012-11-12 13:05

class NoValueException extends RuntimeException
{
        NovalueException(String message)
        {
                super(message);
        }
}

interface Shape
{
        void getArea();
}
class Rec implements Shape
{
        private int len,wid;
        Rec(int len,int wid)
        {
                if (len<=0 ||wid<=0)
                {
                        throw new NoValueException("非法直");
                }
                this.len=len;
                this.wid=wid;
        }
        public void getArea()
        {
                System.out.println(len*wid);
        }
               
}
class  ExceptionTest
{
        public static void main(String[] args)
        {
                Rec r =new Rec(3,-6);
                r.getArea();
                System.out.println("over");
        }
}
这里哪里错了啊
作者: 被遗弃者    时间: 2012-11-12 14:40
private int len,wid;  私有的变量应该被私有的方法调用,你定义的方法  public void getArea()
        {
                System.out.println(len*wid);
        }
               
是属于公有的,你需要改变一下定义方式




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