抽象类
定义:在关键字class前面加上关键字abstract.
抽象方法:abstract+返回值类型+方法名(参数列表);
注意:1、在定义抽象方法中,使用一个分号替代了方法体
2、 抽象方法不能使用private或static进行修饰
3、抽象类必须被继承
4、抽象类不能被直接实例化,只能作为其他类的父类
5、抽象方法在子类中必须被重写
6、抽象方法只有声明,不能有实现
7、抽象类可以不包含抽象方法,但包含抽象方法的类必须被声明为抽象类
接口
定义:使用关键字interface定义一个接口,且仅含有抽象方法和常量。
注意:
- 接口中的变量必须用public static final 修饰,方法必须用public abstract 修饰
- abstract、public 可以省略
接口的实现:
语法格式:修饰符 class 类 implements 接口列表{
类体//在类体内必须重写所有接口中的所有方法
}
常用封装类:Integer、Float、String、StringBuffer、System、Runtime、Math、BigInteger、BigDecimal、Date、Calendar
Java异常类及其处理
除0溢出:
public class Main {
public static void main(String[] args) {
int a=100;
int b=0;
try{
System.out.println(a/b);
}catch (ArithmeticException e){
System.out.println("除数为0,无法进行整数除法求值");
}
}
}
Java运行中的两种错误:Error和Exception
处理异常:
try{
语句块
}catch(异常类1 异常类1对象){
捕获异常类1有关的处理程序段
}catch(异常类2 异常类2对象){
捕获异常类2有关的处理程序段
}
finally//可选块
{
语句块
}
声明抛出异常格式:
权限修饰符 返回值类型 方法名(参数表)throws 异常列表{方法体}
Java泛型
本质是将类型参数化,即所操作的对象的类型被指定为一个参数。
经过几周的学习,快速把Java的基础过了一遍,接下来为写图书管理系统做准备。
//练习如何使用序列化和反序列化读文件和写文件
public class Main {
public static void main(String[] args) throws IOException, ClassNotFoundException {
List<manger> arr=new ArrayList<manger>();
manger m=new manger("jeck",23);
manger m1=new manger("gx",18);
arr.add(m);
arr.add(m1);
ObjectOutputStream oos=new ObjectOutputStream(new FileOutputStream("test.txt"));
oos.writeObject(arr);
oos.close();
ObjectInputStream ois=new ObjectInputStream(new FileInputStream("test.txt"));
arr = (ArrayList<manger>)ois.readObject();
System.out.println(arr);
ois.close();
}
}