Java基础.Day16

接口

Java基础.Day16

Java基础.Day16

IDEA图标细节

Java基础.Day16

接口中不能有方法体

Java基础.Day16

Java基础.Day16

甚至可以不写public

Java基础.Day16

接口中的方法假设不写,默认就是抽象的(灰色)

Java基础.Day16

可加参数

Java基础.Day16

在接口中定义增删改查方法

Java基础.Day16

写实现类,一般实现类会用 impl 结尾

Java基础.Day16

实现类的标准命名规则

Java基础.Day16

报红的原因是:因为实现了接口,还没重写里面的方法

override:

快捷键shift+鼠标左键,按住shift,点第一个和最后一个,就能多选

Java基础.Day16

Java基础.Day16

Java基础.Day16

实现类可以实现多个接口(多继承)

现在写一个TimeService接口,里面有个timer()方法

Java基础.Day16

可以在UserServiceImpl类中加

Java基础.Day16

Java基础.Day16

接口中可以定义常量,但基本没人这么干

Java基础.Day16

总结

Java基础.Day16

内部类

Java基础.Day16

Java基础.Day16

定义外部类与内部类

Java基础.Day16

在main中实例化(成员内部类)

Java基础.Day16

运行方法

Java基础.Day16

内部类可以直接访问外部类的一些私有属性(和私有方法)

Java基础.Day16

Java基础.Day16

静态内部类

Java基础.Day16

一旦加上static,这个id就拿不到了

因为static跟类走,id还没实例化拿不到,除非在id前面也加个static

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


把class写在类外面,相当于在大的Java文件里写了两个不同的类

Java基础.Day16

下面这个类不能用public,一个Java文件里面只能有一个public class,但可以有多个class

Java基础.Day16

局部内部类:方法里面的类

Java基础.Day16

匿名内部类

Java基础.Day16

假设这有个接口

Java基础.Day16

new这个接口

Java基础.Day16

Java基础.Day16

这个方法会返回一个userService对象

Java基础.Day16

异常

Java基础.Day16

  • Java基础.Day16

  • Java基础.Day16

  • Java基础.Day16

Java基础.Day16

异常体系结构

Java基础.Day16

Error

Java基础.Day16

Exception

Java基础.Day16

异常处理机制

Java基础.Day16

Java基础.Day16

以一个算数异常为例

Java基础.Day16

try和catch一般连着使用

程序无论出不出异常,都会执行finally里面的话。finally一般用于处理善后工作

Java基础.Day16

Java基础.Day16

Java基础.Day16

无论出现什么,finally最终都会执行,处理完了才去报错

Java基础.Day16

用Throwable捕获

catch括号里的是想要捕获的异常类型,Throwable是*别,几乎所有的异常都能用它捕获,其次才是Error和Exception

Java基础.Day16

catch和if-else一样可以层层递进

上下关系:要把大的异常写在下面,大的在上面的话,执行完上面的就不会进行下面的捕获了

Java基础.Day16

如果把大的放上面的话报错,提示已经被捕获了

Java基础.Day16

如果想给语句自动生成try-catch,选中语句,快捷键Ctrl+Alt+T

Java基础.Day16

生成包含该语句的句式

Java基础.Day16

System.out.println(a/b);这句代码我们知道可能会发生错误,可以给加个判断

Java基础.Day16

多用在方法中

Java基础.Day16

如果不要方法体,依旧出现了这个异常

Java基础.Day16

在方法上抛出异常

Java基础.Day16

 来源:b站狂神

上一篇:djang常用查询SQL语句


下一篇:学习Java Day16