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中一个类可以实现多个接口,接口中的方法都是抽象方法。
浙公网安备 33010602011771号