栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

异常,抽象。

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

异常,抽象。

package cn.tedu.review.cn.tedu.oop;

import java.util.InputMismatchException;
import java.util.Scanner;


public class ExceptionDemo {
    //    public static void main(String[] args) throws Exception {
    public static void main(String[] args) {
//        method1();
//        method2();//调用异常解决方案1   捕获处理,自己解决
        f();
//        method3();     //向上抛出交给调用者来解决  
    }

    private static void f() {
      try{
          method3();
      }catch(Exception e){
          System.out.println("您的数据不对,请重新输入:");
      }
    }

    
//    private static void method3() throws ArithmeticException, InputMismatchException{
    private static void method3() throws Exception {
        System.out.println("请输入您要计算的第一个整数");
        int a = new Scanner(System.in).nextInt();//输入不匹配异常 InputMismatchException
        System.out.println("请输入您要计算的第二个整数");
        int b = new Scanner(System.in).nextInt();
        System.out.println(a / b);// ArithmeticException算术异常
    }


    private static void method2() {
        
        try {
            System.out.println("请输入您要计算的第一个整数");
            int a = new Scanner(System.in).nextInt();//输入不匹配异常 InputMismatchException
            System.out.println("请输入您要计算的第二个整数");
            int b = new Scanner(System.in).nextInt();
            System.out.println(a / b);// ArithmeticException算术异常
        } catch (ArithmeticException e) {
            System.out.println("除数不能为0!");
        } catch (InputMismatchException e) {
            System.out.println("请输入规定的整数类型!");
        } catch (Exception e) {
            System.out.println("您的数据不对,请重新输入:");
        }
        

    }

    private static void method1() {

        System.out.println("请输入您要计算的第一个整数");
        int a = new Scanner(System.in).nextInt();//输入不匹配异常 InputMismatchException
        System.out.println("请输入您要计算的第二个整数");
        int b = new Scanner(System.in).nextInt();
        System.out.println(a / b);// ArithmeticException算术异常

    }
}

请输入您要计算的第一个整数
12
请输入您要计算的第二个整数
13.3
您的数据不对,请重新输入:

 特点

    abstract 可以修饰方法或者类
    被abstarct修饰的类叫做抽象类,被abstract修饰的方法叫做抽象方法
    抽象类中可以没有抽象方法
    如果类中有抽象方法,那么该类必须定义为一个抽象类
    子类继承了抽象类以后,要么还是一个抽象类,要么就把父类的所有抽象方法都重写
    多用于多态中
    抽象类不可以被实例化

package cn.tedu.review.cn.tedu.oop;

public class AbstractDemo {
    public static void main(String[] args) {
        
        Animal a=new Pig();
        a.eat();
        a.play();
        
    }
}

 abstract class Animal{
    public void eat(){
        System.out.println("吃啥都行");
    }
    
    public abstract void play();
    public abstract void fly();
}


class Pig extends Animal{
    @Override
    public void play() {
        System.out.println("实现父类未实现的play()");
    }

    @Override
    public void fly() {
        System.out.println("实现父类未实现的方法2 fly()");
    }

}

吃啥都行
实现父类未实现的play()

抽象类是否有构造方法?抽象类有构造方法

既然抽象类不能实例化,为什么有构造方法呢?

不是为了自己使用,而是为了子类创建对象时使用,即:super();

package cn.tedu.review.cn.tedu.oop;

public class AbstractDemo2 {
    //    Animal2 a=new Animal2();  抽象对象不可以被实例化
    public static void main(String[] args) {
        Pig2 p = new Pig2();
    }


}

abstract class Animal2 {
    public Animal2() {
        System.out.println("我是父类的构造方法");
    }

}

class Pig2 extends Animal2 {
    public Pig2() {
        System.out.println("我是子类的无参构造");
    }
}
我是父类的构造方法
我是子类的无参构造
抽象类中可以定义成员变量么?可以!
* 抽象类中可以定义成员常量吗? 可以
* 抽象类中可以定义普通方法吗? 可以
* 抽象类中能否全是普通方法?  可以
* 如果抽象类中都是普通方法,为啥还要把这个类声明成抽象类,可以把普通类声明成抽象类
* 抽象类中能否全是抽象方法?--可以
* 如果一个类中含有抽象方法,这个类必须被声明成抽象方法。
如果一个子类继承了抽象父类,有两种处理方案:
* 方案一:继续抽象,也就是作为抽象子类,不实现/实现部分抽象父类中的抽象方法
方案二:不再抽象,也就是作为普通子类,实现继承自父类的所有抽象方法
* 
package cn.tedu.review.cn.tedu.oop;

public class AbstartDemo3 {
    public static void main(String[] args) {

    }
}
abstract class Animas{
    
    int sum=100;
    final String ANIMAS_NAME="小黄人";
    public abstract  void play();
    public abstract  void play2();


}
class Pig3 extends Animas{
    @Override
    public void play() {

    }

    @Override
    public void play2() {

    }
}
面向抽象编程:
package cn.tedu.review.cn.tedu.oop;

public class DesignTeacher {
    public static void main(String[] args) {
        CGBTeather ct = new CGBTeather();
        SCDTeather st = new SCDTeather();

    }
}


abstract class Teacher {
    String name;//姓名
    int id;//工号

    public abstract void ready();

    public abstract void teach();
}

class CGBTeather extends Teacher {
    public void ready() {
        System.out.println("备课电商项目");
    }

    public void teach() {
        System.out.println("授课电商项目");
    }
}


class SCDTeather extends Teacher {
    public void ready() {
        System.out.println("备课hadoop spark");
    }

    public void teach() {
        System.out.println("授课hadoop spark");
    }
}

class ACTTeacher extends Teacher {

    @Override
    public void ready() {
        
    }

    @Override
    public void teach() {

    }
}

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/328895.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号