- package com.Painter.Try;
- /*
- * 需求 有一个圆形和长方形
- * 都可以获取面积。对于面积如果出现非法的数值,视为是获取面积出现问题。
- * 问题通过异常来表示。
- * 现有对这个程序进行进本设计
- */
- public class TryDemo3 {
- public static void main(String[] args)
- {
- Rec rec = new Rec(5,6);
- rec.getArea();
- Circle circle = new Circle(10);
- circle.getArea();
- }
- }
- //自定义一个异常类 并继承RuntimeException
- class NoValueException extends RuntimeException
- {
- //重载RuntimeException方法
- NoValueException(String msg)
- {
- super(msg);
- }
- }
- //圆形跟长方形都有个共同点 面积 那么就把面积设为接口
- interface Shape
- {
- public abstract void getArea();
- }
- class Rec implements Shape
- {
- private int len,wid;
- Rec(int len, int wid)
- {
- if(len<=0 || wid<=0)
- {
- throw new NoValueException("非法值");//判断两个传入的参数是否为0或者为负数,否则抛出异常
- }
- this.len = len;
- this.wid = wid;
- }
-
- public void getArea()
- {
- System.out.println(len*wid);
- }
- }
- class Circle implements Shape
- {
- public static final double PI = 3.14;
- private int radius;
- Circle(int radius)
- {
- if(radius<=0)
- {
- throw new NoValueException("非法值");//判断传入的参数是否为0或者为负数,否则抛出异常
- }
- this.radius = radius;
- }
-
- public void getArea()
- {
- System.out.println(radius*radius*PI);
- }
- }
复制代码
还有还可以优化的代码 请多多指点 谢谢 |
|