黑马程序员技术交流社区

标题: 构造函数与自定义异常类 [打印本页]

作者: 彭盼    时间: 2012-3-12 21:21
标题: 构造函数与自定义异常类
本帖最后由 彭盼 于 2012-3-12 21:29 编辑

interface shape
{
        void getArea();
}
class Rec implements shape
{
         double a,b;
        Rec(double a,double b)throws  NovalueException
        {
               
                if(a<=0||b<=0)
                        throw new NovalueException("出现非法值");
                a=this.a;
                b=this.b;
        }

        public void getArea()
        {
                System.out.println("您输入的是长方形,面积是:"+a*b);
        }
}


class NovalueException extends RuntimeException
{
        NovalueException(String msg)
        {
                super(msg);
        }

}
class Test1

{
        String Tc;
        void function(Rec Tc)
        {
                try
                {
                        Tc.getArea();
                }
                catch (NovalueException e)
                {
                        e.toString();
                }
        }
}
class  ExceptionTest1
{
        public static void main(String[] args)
        {
                Test1 t=new Test1();
                t.function(new Rec(1.89,8));
        }
}
此程序是用来运算圆的面积,有个异常类用来报错,我运行后,程序总是显示结果是零,好像对象t并没有把参数传给方法getArea,为什么呢,java中对象不是可以自动执行
构造函数Rec吗,既然执行了为什么参数没进getArea方法
作者: 冯林    时间: 2012-3-12 21:27
class Rec implements shape
{
         double a,b;
        Rec(double a,double b)throws  NovalueException
        {
               
                if(a<=0||b<=0)
                        throw new NovalueException("出现非法值");
                a=this.a;
                b=this.b;
        }

        public void getArea()
        {
                System.out.println("您输入的是长方形,面积是:"+a*b);
        }
}
这里的
a=this.a;
b=this.b;
应该是
this.a=a;
this.b=b;




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