黑马程序员技术交流社区
标题:
自定义异常小练习
[打印本页]
作者:
fycrik
时间:
2013-7-4 13:51
标题:
自定义异常小练习
/*需求:用户输入长和宽,半径,可求出对象长方形和圆形的面积,当用户输入非法值(0,负数)时程序停止
分析:
1.长方形和圆形是两个图形,定义两个类,用于建立图形对象,每个对象初始化都有自己的参数,
2.因为不同的图形计算面积的公式不同,但功能相同(计算面积),因此可以建议一个接口用于扩展功能
3.自定义异常:当图形的参数非正时,图形无法建立,则程序停止运行
*/
class NoValueException extends RuntimeException
{
NoValueException(String msg)
{
super(msg);
}
}
//建立接口,实现求面积的扩展功能
interface Shape
{
void getArea(); //抽象方法
}
//建立长方形类
class Rec implements Shape
{
private double len;
private double wid;
Rec(double len,double wid)
{
if (len<=0 || wid <=0)
throw new NoValueException("非法参数");
this.len = len;
this.wid = wid;
}
public void getArea()
{
System.out.println(len * wid);
}
}
//建立圆形类
class Cir implements Shape
{
private double rad;
public static final double PI = 3.14;
Cir(double rad)
{
if (rad<=0)
throw new NoValueException("非法参数");
this.rad = rad;
}
public void getArea()
{
System.out.println(rad*rad*PI);
}
}
class AreaTest
{
public static void main(String[] args)
{
Rec r = new Rec(7,7);
r.getArea();
Cir c = new Cir(9);
c.getArea();
}
}
复制代码
未命名.JPG
(55.44 KB, 下载次数: 0)
下载附件
2013-7-4 13:51 上传
作者:
许庭洲
时间:
2013-7-13 19:50
值得学习ing!
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2