接口
IDEA图标细节
接口中不能有方法体
甚至可以不写public
接口中的方法假设不写,默认就是抽象的(灰色)
可加参数
在接口中定义增删改查方法
写实现类,一般实现类会用 impl 结尾
实现类的标准命名规则
报红的原因是:因为实现了接口,还没重写里面的方法
override:
快捷键shift+鼠标左键,按住shift,点第一个和最后一个,就能多选
实现类可以实现多个接口(多继承)
现在写一个TimeService接口,里面有个timer()方法
可以在UserServiceImpl类中加
接口中可以定义常量,但基本没人这么干
总结
内部类
定义外部类与内部类
在main中实例化(成员内部类)
运行方法
内部类可以直接访问外部类的一些私有属性(和私有方法)
静态内部类
一旦加上static,这个id就拿不到了
因为static跟类走,id还没实例化拿不到,除非在id前面也加个static
静态内部类无法直接访问非静态属性
把class写在类外面,相当于在大的Java文件里写了两个不同的类
下面这个类不能用public,一个Java文件里面只能有一个public class,但可以有多个class
局部内部类:方法里面的类
匿名内部类
假设这有个接口
new这个接口
这个方法会返回一个userService对象
异常
异常体系结构
Error
Exception
异常处理机制
以一个算数异常为例
try和catch一般连着使用
程序无论出不出异常,都会执行finally里面的话。finally一般用于处理善后工作
无论出现什么,finally最终都会执行,处理完了才去报错
用Throwable捕获
catch括号里的是想要捕获的异常类型,Throwable是最高级别,几乎所有的异常都能用它捕获,其次才是Error和Exception
catch和if-else一样可以层层递进
上下关系:要把大的异常写在下面,大的在上面的话,执行完上面的就不会进行下面的捕获了
如果把大的放上面的话报错,提示已经被捕获了
如果想给语句自动生成try-catch,选中语句,快捷键Ctrl+Alt+T
生成包含该语句的句式
System.out.println(a/b);这句代码我们知道可能会发生错误,可以给加个判断
多用在方法中
如果不要方法体,依旧出现了这个异常
在方法上抛出异常
来源:b站狂神