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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 彭盼 中级黑马   /  2012-3-12 21:21  /  1686 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 彭盼 于 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方法

1 个回复

正序浏览
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;

评分

参与人数 1技术分 +1 收起 理由
房宝彬 + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马