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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© fycrik 中级黑马   /  2013-7-4 13:51  /  1166 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

  1. /*需求:用户输入长和宽,半径,可求出对象长方形和圆形的面积,当用户输入非法值(0,负数)时程序停止
  2. 分析:
  3. 1.长方形和圆形是两个图形,定义两个类,用于建立图形对象,每个对象初始化都有自己的参数,
  4. 2.因为不同的图形计算面积的公式不同,但功能相同(计算面积),因此可以建议一个接口用于扩展功能
  5. 3.自定义异常:当图形的参数非正时,图形无法建立,则程序停止运行


  6. */
  7. class NoValueException extends RuntimeException
  8. {
  9.         NoValueException(String msg)
  10.         {
  11.                 super(msg);
  12.         }
  13. }

  14. //建立接口,实现求面积的扩展功能
  15. interface Shape
  16. {
  17.         void getArea();                //抽象方法
  18. }


  19. //建立长方形类
  20. class Rec implements Shape
  21. {
  22.         private double len;
  23.         private double wid;
  24.         Rec(double len,double wid)
  25.         {
  26.                 if (len<=0 || wid <=0)
  27.                         throw new NoValueException("非法参数");
  28.                 this.len = len;
  29.                 this.wid = wid;                       
  30.         }

  31.         public void getArea()
  32.         {
  33.                 System.out.println(len * wid);
  34.         }
  35. }


  36. //建立圆形类
  37. class Cir implements Shape
  38. {
  39.         private double rad;
  40.         public static final double PI = 3.14;
  41.         Cir(double rad)
  42.         {
  43.                 if (rad<=0)
  44.                         throw new NoValueException("非法参数");
  45.                 this.rad = rad;               
  46.         }

  47.         public void getArea()
  48.         {
  49.                 System.out.println(rad*rad*PI);
  50.         }
  51. }



  52. class  AreaTest
  53. {
  54.         public static void main(String[] args)
  55.         {
  56.                 Rec r = new Rec(7,7);
  57.                 r.getArea();
  58.                 Cir c = new Cir(9);
  59.                 c.getArea();
  60.         }
  61. }
复制代码

未命名.JPG (55.44 KB, 下载次数: 0)

未命名.JPG

评分

参与人数 1技术分 +1 收起 理由
神之梦 + 1

查看全部评分

1 个回复

倒序浏览
值得学习ing!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马