/*
有一个圆形和长方形
都可以获取面积,对于面积,如果出现非法数值,视为获取面积出现问题
问题通过异常来表示。
先要对这个程序进行基本的设置
*/
/*首先想一下,怎么写这个程序
基本属性是肯定要的
求面积呢?
1.可以定义成函数
2.可以定义成接口
3.或者数据库什么的
*/
1 interface Shape /*可以直接打印,可以返回*/ 2 { 3 void getArea(); /*要传递参数吗?不需要,因为这是抽象类,需要把一些共同的属性抽取出来,这里并没有,需要重写,这里重新获取就可以*/ 4 } 5 class NoValueException extends RuntimeException 6 { 7 NoValueException(String message) /*构造函数*/ 8 { 9 super(message); /*调用父类的构造函数*/ /*这里是父类的错误信息,直接能够赋值的*/ 10 } 11 } 12 class Cricle implements Shape 13 { 14 private int radius; 15 public static final double PI=3.14; 16 Cricle(int radius) 17 { 18 if(radius<0) 19 throw new RunTimeException("非法"); /*使用这个异常名称不好,不好处理问题,应该自定义名称*/ 20 this.radius=radius; 21 } 22 public void getArea() 23 { 24 System.out.println(radius*radius*PI); /*不需要改动的值起一个名字 PI*/ 25 } 26 } 27 28 29 class Rec implements Shape /*长方形*/ 30 { 31 private int len,wid; /*定义长和宽*/ 32 Rec(int len,int wid) /*这哥们一初始化就有这个东西*/ 33 { 34 if(len<=0||wid<=0) 35 { 36 throw new NoValueException("出现非法值"); 37 } 38 39 this.len=len; /*进行赋值*/ 40 this.wid=wid; 41 42 } 43 public void getArea() /*进行重写*/ 44 { 45 System.out.println(len*wid); /*直接打印输出面积*/ 46 } 47 } 48 49 50 class ExceptionText1 51 { 52 public static void main(String args[]) 53 { 54 //try /*检测代码块*/ 55 //{ 56 Rec r=new Rec(3,4); /*你发现输入负数,面积为负数,这是不允许的,以前用if避免,但现在,请你用*/ 57 r.getArea(); /*如果上面的代码出现了错误,这块就不运行了*/ 58 //} 59 //catch(NoValueException e) /*接收异常,这种处理是没有用的*/ 60 //{ 61 //System.out.println(e.toString()); /*输出异常信息*/ 62 //} 63 System.out.println("over"); /*最后输出*/ /*然而运行这是没有用的,还不如直接用运行时异常,不需要检查捕捉处理,直接停掉*/ 64 } 65 }