JAVA学习第九天;异常;异常处理方法;抽象类和抽象方法;

异常

1异常的继承结构
异常层次结构中的根是Throwalbe
Error:目前编码解决不了的问题
Exception:可以通过编码解决

格式

public void solve() {
try{ 可能会抛出异常的代码 }
catch(异常的类型 异常的名称){ 捕捉到异常后,进行处理的解决方案 }
catch (){ catch可以嵌套 }

}

使用多态的思想 ,无论是什么子异常,统一看做是父类型Exception ,会做出更有效的方案,甚至可以就写这一个

2 可以通过向上抛出throws–交给别人解决
格式
public void paly()throws ArithmeticException,InputMismatchException,Exception { } 多个异常时通过 "逗号"隔开
1如果一个方法抛出了异常,那么谁来调用这个方法,谁就要来处理这个异常, 处理也有两种方式: 1 捕获解决 2继续向上抛出
2 不能把异常抛给 main方法 因为调用main方法的是JVM,不会有人解决,还会继续报错 ,所以我们一般在main方法调用之前将异常解决.
//练习异常处理
public class exercis {
public static void main(String[] args) {
// demo1();//创建一个普通方法
// deomo2();//定义用户输入整数时,用户输入非整数时的处理办法
//demo3();//解决不了,向上抛出,必须在main方法前将问题解决,因为 main后是虚拟机,并不会帮忙解决问题
foe();//创建一个方法,用来解决demo3向上抛出的问题

}

练习结果

private static void foe() {

    try{
        System.out.println("请输入你要测试的第一个数字");
        int a=new Scanner(System.in).nextInt();
    }catch(Exception e){
        System.out.println("您输入的第一个数字有问题");
    }

}

private static void demo3()throws Exception     {
    System.out.println("请输入你要测试的第一个数字");
    int a=new Scanner(System.in).nextInt();

}

private static void deomo2() {
    try{
        System.out.println("请输入你要测试的第一个数字");
        int a=new Scanner(System.in).nextInt();
    }catch(Exception e){
        System.out.println("您输入的第一个数字有问题");
    }

   }

private static void demo1() {
    System.out.println("请输入你要测试的第一个数字");
    int a=new Scanner(System.in).nextInt();

}

}

抽象类 // 当我相对用户隐藏部分细节,不像我写的东西被人改变,并创建对象时,选择定义抽象类.

抽象方法;如果您希望一个抽象类中包含一个特定的方法,且该方法的实际实现有子类去实现,那么你可以在父类中将此方法定义成抽象方法,并且一个抽象方法存在类中,那么这个类必须并声明成抽象类

练习

public class exercise2 {
public static void main(String[] args) {
// father f=new father() {}//抽象类不能创建对象
//创建多态对象测试
father f=new son();
f.son();//还钱
f.eat();//父亲爱吃肉
f.paly();//儿子打游戏
}
}

//1定义一个普通类 4定义成成抽象类 abstract class father ,这个类不能被实例化,不能被创建对象
abstract class father{
//2创建一个抽象方法 ,3一个类存在抽象方法,那么这个类必须被声明成抽象类
public abstract void son(); //抽象方法没有方法体 也就是{} 抽象类定义了方法却不实现,子类会有更多的展现空间
public void eat(){
System.out.println(“父亲爱吃肉”);
}
public void paly(){
System.out.println(“老爹爱玩游戏”);
}

}

//定义一个子类
class son extends father{//因为父类中存在抽象方法,所以子类只有两种处理方法1 躺平,也变成抽象类
@Override
public void son() { //处理方法2 必须实现父类中所有的抽象方法
System.out.println(“我来还债 焯!”);
}

public void  paly(){
    System.out.println("儿子爱玩游戏");
}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值