------- android培训、java培训、期待与您交流! ----------
1.有一个圆形和长方形,都可以获取面积,对于面积如果出现非法值,视为获取面积出现问题,通过异常 来表示
public class ExceptionTest {
/**
* 有一个圆形和长方形。都可以获取面积。对于面积如果出现非法的数值,视为是获取面积出现问题。
* 问题通过异常来表示。
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Rec r=new Rec(-3,4);
r.getArea();
}
}
//自定义异常类继承RunTimeException
class NoValueException extends RuntimeException{
NoValueException(String message)
{
super(message);//调用父类的构造函数方法
}
}
//定义一个接口,获取面积
interface Shape{
void getArea();
}
//定义长方形类实现Shape方法
class Rec implements Shape{
private int len,wid;
Rec(int len,int wid)//构造函数长方形一初始化就有长和宽
{
if(len<=0 || wid<=0)
throw new NoValueException("出现非法值");//长或宽小于等于0抛NoValueException异常,函数不用抛,因为继承的是RuntimeException异常
this.len=len;
this.wid=wid;
}
public void getArea()//覆盖接口的方法
{
System.out.println(len*wid);
}
}
//定义圆形类实现Shape方法
class Circle implements Shape{
private int radius;
public static final double PI=3.14;//静态常量
Circle(int radius)//构造函数一初始化就有半径
{
if(radius<=0)
throw new NoValueException("非法半径");
this.radius=radius;
}
public void getArea()
{
System.out.println(radius*radius*PI);
}
}
2.电脑运行实例,电脑运行基于主板
public class DuoTaiTest {
/**
* 电脑运行基于主板
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
MainBoard mb=new MainBoard();
mb.run();
mb.usePCI(new NetCard());
mb.usePCI(new SoundCard());
}
}
//定义一个接口PCI,方便程序扩展
interface PCI{
public void open();
public void close();
}
//定义MainBoard类
class MainBoard{
public void run()
{
System.out.println("MainBoard run");
}
public void usePCI(PCI p)//PCI p=new NetCard(),接口型引用指向自己的子类对象
{
if(p!=null)
{
p.open();
p.close();
}
}
}
//定义网卡实现PCI接口
class NetCard implements PCI{
public void open(){
System.out.println("netcard open");//子类复写接口方法
}
public void close(){
System.out.println("netcard close");//子类复写接口方法
}
}
//定义声卡实现PCI接口
class SoundCard implements PCI{
public void open(){
System.out.println("soundcard open");
}
public void close(){
System.out.println("soundcard close");
}
}