接上一节
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的截图