Java学习_20220610

1. 接口补充

(1)普通类:只有具体的实现

   抽象类:具体实现和规范(抽象方法)都有,不能new,需要一些子类去操作

   接口:只有规范,自己无法写方法,专业的约束,约束和实现分离。

(2)Java里面不允许多重继承,所以如果要实现多个类的功能,则可以实现多个接口来实现。

(3)接口是抽象方法的集合,无法被实例化,一个类实现该接口,必须实现接口内所描述的所有方法,否则就必须声明为抽象类。

2. 内部类

内部类就是在一个类的内部再定义一个类。

成员内部类

静态内部类(static)

局部内部类(类在方法体中)

匿名内部类

接口的匿名内部类

3. 异常

(1)异常体系结构

(2)捕获异常

try、catch、finally(不是必要,但可用其关闭占用的资源)

要捕获多个异常,从小到大捕获,多个catch。。快捷键:ctrl+alt+t

int a = 1;
int b = 0;

try { //try 监控区域
    System.out.println(a/b);
} catch (Exception e) { //catch(想要捕获的异常类型) 捕获异常
    System.out.println("程序出现异常,变量b不能为0");
    e.printStackTrace();
} finally { //处理善后工作
    System.out.println("finally");
}

主动抛出异常 throw(方法体中)

public class Test {
    public static void main(String[] args) {
        new Test().te(1,0);
    }
    public void te(int a, int b){
        if(b==0){
            throw new ArithmeticException();//主动抛出异常,一般再方法中使用
        }
    }
}

 方法中抛出异常 throws

public class Test {
    public static void main(String[] args) {
        try {
            new Test().te(1,0); //匿名内部类
        } catch (ArithmeticException e) {
            System.out.println("除数不能为0");
            e.printStackTrace();
        }
    }
    //假设在这方法中,处理不了这个异常,在方法上抛出异常
    public void te(int a, int b) throws ArithmeticException{
        if(b==0){
            throw new ArithmeticException();//主动抛出异常
        }
    }
}

 4. 补充

(1)类名首字母必须大写,变量名和方法用驼峰命名规则。

(2)面向对象

  • 类:类是对象的抽象,模板 class
  • 对象:类的具体
  • 构造方法:(重载)默认的无参构造、如果手动定义了有参构造就必须要手动再加一个无参构造、单例模式下 ,构造器私有。
  • new对象(实例化对象):栈存放引用、堆存放具体的对象
  • 三大特性
    • 封装:属性私有,提供对应的get和set方法;
    • 继承:extends关键字,所有类都继承Object类,子类拥有父类的全部特性,方法重写、this、super,Java单继承,子类只能继承一个父类
    • 多态:父类的引用指向子类,Person person = new Student();  instenceof 关键字,可以进行类型之间的转换,向下强转,向下不强转
  • 接口(interface):约束,只能定义方法名、子类实现接口,必须重写其中的所有方法、只有一个方法的接口叫做函数式接口,可以使用lambda表达式简化,Java中一个类可以实现多个接口,接口中的方法都是抽象方法。

 

posted @ 2022-06-11 15:13  浑浑噩噩一只小迷七  阅读(28)  评论(0)    收藏  举报