基础篇 _练习 小练习5~14

/*
	小练习5 完成class C的代码部分
*/

interface A 
{
	void show();
}
interface B 
{
	void add(int a,int b);
}
class C implements A,B
{
	//写吧。
}

public class lianxi_5 {

	public static void main(String[] args)
	{
		C c=new C();
		c.add(4, 2);
		c.show();//通过该函数打印以上两个数的和。
	}
}


答案:

/*
	小练习5
*/
package com.test2;

interface A 
{
	void show();
}
interface B 
{
	void add(int a,int b);
}
class C implements A,B
{
	<span style="color:#ff0000;">//int c;
	int a,b;
	public void add(int a, int b)
	{
		//c=a+b;
		this.a=a;
		this.b=b;
	}

	public void show() 
	{
		System.out.println(a+b);
	}</span>
	
	
}

public class lianxi_5 {

	public static void main(String[] args)
	{
		C c=new C();
		c.add(4, 2);
		c.show();//通过该函数打印以上两个数的和。
	}
}

/*
<span style="white-space:pre">	</span>小练习6:写出运行结果:
*/
package com.test2;

class Super
{
	int i=0;
	Super(String s)
	{
		i=1;
	}
}
public class lianxi_8 extends Super{

	lianxi_8(String s)
	{
		super(s);
		i=2;
	}

	public static void main(String[] args)
	{
		lianxi_8 xi=new lianxi_8("yes");
		System.out.println(xi.i);答案:2<pre name="code" class="java">/*
	写出运行结果:
*/



/*小练习7:写出运行结果
*/
public class lianxi_9 {

	static void func()
	{
		try 
		{
			throw new Exception();
			//System.out.println("A");//此处编译失败,因为执行不到。
		} 
		catch (Exception e) 
		{
			System.out.println("B");
		}
		
	}
	
	public static void main(String[] args) {
		
		try 
		{
			func();
		} 
		catch (Exception e)
		{
			System.out.println("C");
		}
		System.out.println("D");
	}

}

}}

 

答案:



/*
 	<span style="font-family: Arial, Helvetica, sans-serif;">小练习8: </span><span style="font-family: Arial, Helvetica, sans-serif;">补足代码</span>
*/
package com.test3;

interface Test
{
	void func();
}

public class lianxi_10 
{

	public static void main(String[] args)
	{
		//补足代码,匿名内部类
		
	}
	
	void show (Test t)
	{
		t.func();
	}
}

答案:

/*
 <span style="white-space:pre">	</span><span style="font-family: Arial, Helvetica, sans-serif;">小练习8:</span><span style="font-family: Arial, Helvetica, sans-serif;">补足代码:</span>
*/
package com.test3;

interface Test
{
	void func();
}

public class lianxi_10 
{

	public static void main(String[] args)
	{
		//补足代码,匿名内部类
		<span style="color:#ff0000;">lianxi_10 lx=new lianxi_10();
		lx.show(new Test()
		{
			public void func()
			{
				System.out.println("func run");
			}
		});</span>
		
	}
	
	void show (Test t)
	{
		t.func();
	}
}



/*
	小练习9:写出程序运行结果。
*/
package com.test3;

public class llianxi_11 {

	public static String output="";
	
	static void foo(int i)
	{
		try 
		{
			if(i==1)
				throw new Exception();
			output+="1";
		} 
		catch (Exception e) 
		{
			output+="2";
			return;
		}
		finally
		{
			output+="3";
		}
		output+="4";
	}
	
	public static void main(String[] args) {
		
		foo(0);
		System.out.println(output);//134
		foo(1);
		System.out.println(output);//13423
	}

}



/*
	小练习10:建立一个接口图形,声明一个面积函数。圆形和矩形都实现这个接口,并得出两个图形的面积。
	注:体现面向对象的特征,对数值进行判断。用异常处理,不合法的数值要出现“这个数值是非法的”提示,
		不再进行运算。
*/
class NoException extends RuntimeException
{
	NoException(String msg)
	{
		super(msg);
	}
}

interface A
{
	void getArea();
}
class Rect implements A
{
	private int width,length;
	Rect(int width,int length) throws NoException
	{
		if(width<=0||length<=0)
			throw new NoException("这个数值是非法的");
		
		this.width=width;
		this.length=length;
	}
	public void getArea()
	{
		System.out.println(width*length);
	}
	
}
class Circle implements A
{
	private int radius;
	private static final double PI=3.14;
	Circle(int radius) throws NoException
	{
		if(radius<=0)
			throw new NoException("这个数值是非法的");
		this.radius=radius;
	}
	public void getArea()
	{
		System.out.println(radius*radius*PI);
	}
}
public class lianxi_12 {

	public static void main(String[] args) 
	{
		
		Rect r = new Rect(3,-4);
		r.getArea();
		
		
//		Circle c=new Circle(-10);
//		c.getArea();
		
		System.out.println("over");
	}

}

/*
	小练习11:补足compare函数内的代码,不许添加其他函数。
*/
package com.test4;

class Circle
{
	private static double pi=3.14;
	private  double radius;
	public Circle(double r)
	{
		this.radius=r;
	}
	
	public static double compare(Circle[] cir)
	{
		
		//程序代码//其实就是在求数组中的最大值。
		<span style="color:#ff0000;">int max=0;//数组角标
		for(int i=1;i<cir.length;i++)
		{
			if(cir[i].radius>cir[max].radius)
			{
				max=i;
			}
		}
		
		return cir[max].radius;</span>
	}
}

public class lianxi_13 {

	public static void main(String[] args)
	{
		Circle cir[]=new Circle[3];//创建了一个类类型数组
		cir[0]=new Circle(1.0);
		cir[1]=new Circle(2.0);
		cir[2]=new Circle(4.0);
		System.out.println("最大半径值为:"+Circle.compare(cir));
		
	}

}



 练习12:在一个类中编写一个方法,这个方法搜索一个字符数组中是否存在某个字符,
     	如果存在,则返回这个字符在字符数组第一次出现的位置(序号从0开始计算)
     	如果不存在,返回-1.要搜索的字符数组和字符都以参数形式传递给该方法,
     	如果传入的数组为null,应抛出IllegalArgumentException异常。
     	在类的main方法中一各种可能出现的情况测试验证该方法编写得是否正确。
     	例如:字符不存在,字符存在,传入数组为null等。
答案:

class ZiFu
{
	//char[] a;
	//char b;
//	ZiFu(char[] a,char b)
//	{
//		this.a=a;
//		this.b=b;
//	}
	public int getIndex(char[] arr,char key)
	{
		if(arr==null)
			throw new IllegalArgumentException("数组为空");
		for(int i=0;i<arr.length;i++)
		{
			if(arr[i]==key)
			{
					return i;
			}
		}
		return -1;
	}
}

public class lianxi_14 {

	public static void main(String[] args) {
		
		char[] arr=new char[]{'0','r','2','b','1','2'};
		
		ZiFu z=new ZiFu();
		z.getIndex(null, 'a');
	}

}




/*
	<span style="font-family: Arial, Helvetica, sans-serif;">练习13:</span><span style="font-family: Arial, Helvetica, sans-serif;">补足compare函数内的代码,不许添加其他函数。</span>
<span style="font-family:Arial, Helvetica, sans-serif;"><span style="white-space:pre">		</span>结合</span><span style="font-family: Arial, Helvetica, sans-serif;">小练习11:补足compare函数。一起看,对应的。</span><span style="font-family:Arial, Helvetica, sans-serif;">

</span>*/
package com.test5;

class Circle
{
	private double radius;
	
	Circle(double radius)
	{
		this.radius=radius;
	}
	public Circle Compare(Circle cir)
	{
		//程序代码
		
		return (this.radius>cir.radius)?this:cir;
	}
}

public class lianxi_13_1 {
	
	public static void main(String[] args)
	{
		Circle cir1=new Circle(1.0);
		Circle cir2=new Circle(2.0);
		Circle cir;
		cir=cir1.Compare(cir2);
		if(cir==cir1)
			System.out.println("圆1的半径比较大");
		else
			System.out.println("圆2的半径比较大");
		
	}
}



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值