黑马程序员—java基础_异常多态练习

------- 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");
	}
}


1.方法中的内部类能不能访问方法中的局部变量,为什么? 2.分析运行结果,说明原理。(没有分析结果不得分) import java.util.ArrayList; class Data { int val; } public class Test { public static void main(String args[]) { Data data = new Data(); ArrayList list = new ArrayList(); for (int i = 100; i < 103; i++) { data.val = i; list.add(data); } for (Data d : list) { System.out.println(d.val); } } } 3.编写一个类,在main方法中定义一个Map对象(采用泛型), * 加入若干个对象,然后遍历并打印出各元素的key和value。 4.编写一个类,在main方法中定义一个Map对象(采用泛型), * 加入若干个对象,然后遍历并打印出各元素的key和value。 5.定义一个文件输入流,调用read(byte[] b)方法将exercise.txt * 文件中的所有内容打印出来(byte数组的大小限制为5)。 6.存在一个JavaBean,它包含以下几种可能的属性: 1:boolean/Boolean 2:int/Integer 3:String 4:double/Double 属性名未知,现在要给这些属性设置默认值,以下是要求的默认值: String类型的默认值为字符串 www.itheima.com int/Integer类型的默认值为100 boolean/Boolean类型的默认值为true double/Double的默认值为0.01D. 只需要设置带有getXxx/isXxx/setXxx方法的属性,非JavaBean属性不设置,请用代码实现 7.有一个类为ClassA,有一个类为ClassB,在ClassB中有一个方法b,此方法抛出异常, * 在ClassA类中有一个方法a,请在这个方法中调用b,然后抛出异常。 * 在客户端有一个类为TestC,有一个方法为c ,请在这个方法中捕捉异常的信息。 * 完成这个例子,请说出java中针对异常的处理机制。 8.编写一个程序,获取10个1至20的随机数,要求随机数不能重复。 9.编写一个程序,它先将键盘上输入的一个字符串转换成十进制整数, * 然后打印出这个十进制整数对应的二进制形式。 * 这个程序要考虑输入的字符串不能转换成一个十进制整数的情况, * 并对转换失败的原因要区分出是数字太大,还是其中包含有非数字字符的情况。 * 提示:十进制数转二进制数的方式是用这个数除以2, * 余数就是二进制数的最低位,接着再用得到的商作为被除数去除以2, * 这次得到的余数就是次低位,如此循环,直到被除数为0为止。 * 其实,只要明白了打印出一个十进制数的每一位的方式 * (不断除以10,得到的余数就分别是个位,十位,百位), * 就很容易理解十进制数转二进制数的这种方式。 10.有100个人围成一个圈,从1开始报数,报到14的这个人就要退出。然后其他人重新开始,从1报数,到14退出。 * 问:最后剩下的是100人中的第几个人?
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值