java大学期末考试实验知识点总结(2)

接上一节

public class Insect {
	String name;
	int size;
	String color;
	public Insect(String name, int size, String color) {
		this.name = name;
		this.size = size;
		this.color = color;
	}
	void run(Insect a)
	{
		System.out.println(a.name+"run");
	}
	public static void main(String[] args) {
		Insect i=new Insect("蝴蝶",2,"black");
		System.out.println(i.name);
		System.out.println(i.size);
		System.out.println(i.color);
		i.run(i);
	}
}

//定义接口,java中不支持多继承性,即一个类只能有一个父类
public interface InsectAttack {
	public final static String ADDRESS="China";
	void move();
	void attack();
	default void grow()
	{
		System.out.println("Animal grows fastly");
	}
}


//继承Insect,实现接口InsectAttack
public class Ant extends Insect implements InsectAttack {
	public Ant(String name, int size, String color) {
		super(name, size, color);
		// TODO Auto-generated constructor stub
	}
	@Override
	void run(Insect a) {
		// TODO Auto-generated method stub
		super.run(a);
		System.out.println("Ant walk step by step");          //override为覆盖,方法重写,不用父类里的方法了。
	}
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Ant a=new Ant("蚁人",1,"red");
		System.out.println(a.name);
		System.out.println(a.size);
		System.out.println(a.color);
		a.run(a);
		a.move();
	    a.attack();
	}
	@Override
	public void move() {
		System.out.println("Ant move slowly");          //move和attack方法父类中没有,在这里面重写
	}
	@Override
	public void attack() {
		System.out.println("Ant bite people");
	}
}

//
public class Bee extends Insect implements InsectAttack {
	public Bee(String name, int size, String color) {
		super(name, size, color);
		// TODO Auto-generated constructor stub
	}
	@Override
	void run(Insect a) {
		// TODO Auto-generated method stub
		super.run(a);
		System.out.println("Bee fly");
	}
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Bee b= new Bee("大黄蜂",1,"yellow");
		System.out.println(b.name);
		System.out.println(b.size);
		System.out.println(b.color);
		b.move();
		b.attack();
		b.run(b);
		b.grow();
	}
	@Override
	public void move() {
		System.out.println("Bee move slowly");
	}
	@Override
	public void attack() {
		System.out.println("Bee deaf people");
	}
}

1.掌握异常处理方法;
2.正确地使用捕获异常和声明抛弃异常的两种异常处理的方法;

1.TestDivisionException.java,要求如下
(1)从键盘输入两个整数a,b;计算a整除b的结果存入整型变量c,
(2)如果除数为0,对异常进行捕获;
(3)打印输出错误信息和错误堆栈信息;
(4)最后不管是否有错误都打印输出“计算完毕”;

2.定义一个类TestArrayBoundException.java,要求如下
(1)接受用户从键盘输入的三个字符串,存入字符串数组s[3]里;
(2)循环打印输出每个元素,对于下标越界进行异常捕获;
(3)最后不管是否有错误都打印输出“打印完毕”;

3.定义一个类TestParseException.java,要求如下
(1)利用Scanner类的next()方法,接受用户从键盘输入5个字符整数,放入一整型数组a[5];
(2) 对用户输入的数据进行parseInt转换,以确保存入数组a的是整型数据,如果输入数据不为整数,要捕获Integer.parseInt()产生的异常,显示错误信息和“请输入整数”提示;
(3)循环打印输出每个元素,对于下标越界进行异常捕获,显示“只能打印a[4]整数”;
(4)最后不管是否有错误都打印输出“执行完毕”;

import java.util.Scanner;
public class TestDivisionException {
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Scanner x=new Scanner(System.in);
		int a=x.nextInt();
		Scanner y=new Scanner(System.in);
		int b=y.nextInt();
		try
		{
			int c=a/b;
		}
		catch(Exception e)
		{
			System.out.println(e);
		}
		finally
		{
			System.out.println("计算完毕");
		}
	}
}


//2
import java.util.Scanner;

public class TestArrayBoundException {
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		String[] s=new String[3];
		Scanner x=new Scanner(System.in);
		s[0]=x.nextLine();
		Scanner y=new Scanner(System.in);
		s[1]=y.nextLine();
		Scanner z=new Scanner(System.in);
		s[2]=z.nextLine();
		try
		{
			for(int i=0;i<=3;i++)
				System.out.println(s[i]);
		}
		catch(Exception e)
		{
			System.out.println(e);
		}
		finally
		{
			System.out.println("打印完毕");
		}
	}
}


//3
import java.util.Scanner;
public class TestParseException {
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		int[] a=new int[5];
		Scanner x=new Scanner(System.in);
		String a0=x.next();
		Scanner y=new Scanner(System.in);
		String a1=y.next();
		Scanner z=new Scanner(System.in);
		String a2=z.next();
		Scanner m=new Scanner(System.in);
		String a3=m.next();
		Scanner n=new Scanner(System.in);
		String a4=n.next();
		try
		{
			a[0]=Integer.parseInt(a0);
			a[1]=Integer.parseInt(a1);
			a[2]=Integer.parseInt(a2);
			a[3]=Integer.parseInt(a3);
			a[4]=Integer.parseInt(a4);
		}
		catch(Exception e)
		{
			System.out.println(e);
			System.out.println("请输入整数");
		}
		try
		{
			for(int i=0;i<=5;i++)
				System.out.println(a[i]);
		}
		catch(Exception e)
		{
			System.out.println(e);
			System.out.println("只能打印a[4]整数");
		}
		finally
		{
			System.out.println("打印完毕");
		}	
	}
}

3的截图
在这里插入图片描述

  • 9
    点赞
  • 31
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值