Java复习第四天

static详解

  • static为静态。

  • 静态变量对于类,所有对象(实例)所共享,可以直接使用类取调用

public class Main {
​
    public static void main(String[] args) {
        run();//因为是静态的方法,所以可以直接调用
//        dong();//不是静态的方法不能直接调用 会报错。
        Main main = new Main();
        main.dong();//需要创建对象后才可以调用方法。
    }
    public static void run(){
        System.out.println("这是静态的方法");
    }
    public void dong(){
        System.out.println("这是动态的方法");
    }
}

image-20210617143414997

  • 提示:通过final修饰符修饰的类不可以继承。没有子类

抽象类

  • abstract 抽象类 : 接口 (接口可以多继承)

  • 只有方法名,没有方法的实现

  • 继承了抽象类的子类,必须要实现抽象类中的所有方法。

  • 不能new这个抽象类,只能靠子类取实现它;

  • 抽象方法必须再抽象类中

接口

  • 只有规范,自己无法写方法。

  • 声明接口的关键字时interface

  • 接口中的所有定义都是抽象的。

public interface 接口 {
    void sum(int a,int b);
}
​
class Sum implements 接口 {
    @Override
    public void sum(int a, int b) {
        int sum = a+b;
        System.out.println(sum);
    }
    public static void main(String[] args) {
       Sum s =  new Sum();
       s.sum(5,6);
    }
}

image-20210617145249156

  • 可以看到上方代码中,接口无法写具体方法,接口无法被实例化,需要在实现接口的类中写具体的方法,之后在主方法中创建接口实例,调用方法。

  • 接口可以多继承,继承多个接口,实现多个接口的方法。

  • 接口不能被实例化,接口中没有构造方法。

  • implements可以实现多个接口

  • 在接口的实现类中必须重写接口的方法。

内部类

class Outer {
    public void out(){
        System.out.println("外部类");
    }
    class Inner{
        public void in(){
            System.out.println("这是内部类");
        }
    }
}
class diaoyong{
    public static void main(String[] args) {
        Outer outer = new Outer();//这里时创建外部类的实例以及调用方法
        outer.out();
        //创建内部类
        Outer.Inner inner = outer.new Inner();
        inner.in();
    }
}

image-20210617150621667

  • 上图所示,我们可以看到在Outer类中又定义了一个类,叫做Inner类,这叫做内部类。

  • 内部类不可以直接实例化,需要先创建包含着他的类,也就是Outer类,之后再根据outer类new出内部类。

  • 静态内部类无法直接访问非静态属性

  • 一个java类中只能由一个Public的类,可以由多个class类。

异常

Error和Exception

  • 异常指的是,程序运行中出现的不期而至的各种状态,如:文件找不到,网络连接失败,非法参数等。

  • 异常发生在程序运行期间,它影响了正常的程序执行流程。

  • 异常可简单分为三大类,

    • 检查性异常:比如用户错误或者问题引起的异常,这是程序员无法预见的,例如要打开一个不存在文件时,一个异常发生了,这些异常在编译时不能被简单的忽略。

    • 运行时异常:运行时异常是可能被程序员避免的异常,与检查性异常相反,运行时异常可以在编译时被忽略。

    • 错误:错误不是异常,而是脱离程序员控制的错误,错误在代码中通常被忽略,例如,当栈溢出时,一个错误就发生了,它们在编译时也检查不到。

image-20210619205404446

  • Error异常

image-20210619205528287

  • Exception

image-20210619205742730

捕获和抛出异常

  • 异常处理5个关键字:try、catch、finally、throw、throws

public class Student {
​
    public static void main(String[] args) {
​
        int a=1;
        int b=0;
       try {  //try监控区域
        System.out.println(a/b);
       }catch (ArithmeticException e){//捕获异常 catch(想要捕获的异常类型)
           System.out.println("程序出现异常,变量B不能为0");
       }finally {//处理善后工作
           System.out.println("finally");
       }
    }
}
  • 以上catch()里写的是需要捕获的异常类型,在以上的异常体系表里可以看出,异常类型是具有等级分别的,Throwable是最高级别,包含着所有异常。

  • 如果需要捕获多个异常,需要按照异常等级从小到大捕获。

  • 可以在idea中选中语句后ctrl+alt+t快捷键生成捕获异常语句

  • throw语句是手动抛出异常

image-20210619215634817



posted on 2021-06-20 22:59  阿滨滨  阅读(50)  评论(0)    收藏  举报