一 接口
- 什么是接口?
接口即时一种强制遵守的约束(规范),如果不遵守此约束则无法使用此接口
- 为什么使用接口?
因为java只能单继承,而对象不只是指继承一个,我们人除了继承父亲的基因, 也要继承母亲的基因呢。所以我们要使用接口,通过继承的多实现,间接实现java的多继承。
- 怎么使用接口?
*定义接口:
[访问修饰符] interface 接口名称{
属性(默认是静态常量);
方法;
} ;
*实现接口
[访问修饰符] class 子类名 implements 接口名{ }
*注意细节
(1)接口的方法必须是public & abstract 方法
(2)因为接口没有构造方法,接口不能实例化(抽象类虽然不能被实例化,但它是个类,有构造方法)
(3)接口的成员变量必须是静态常量
(4)接口的子类必须实现该接口的所有方法
(5)接口可以多实现
二 类与类的关系
* is...a 小明 is a Student
* has...a student has a phone
这种常用的表示形式就是内部类:一个学生类,里面又有一个手机类
class student{
class phone{
//成员变量
//成员方法
}
}
因为现在手机类在学生类的里面,说明这个手机是学生的。所以我们我们想要拿到手机 ,不能直接拿,而是要先通过学生,在从学生手里创建一个手机对象
Student.phone phone = new student().new Phone() ;
上面 , 我们想要拿到学生的手机phone,就要先创建一个学生对象,再创建该学生对象的手机对象,才能拿到手机。
当然,如果你的手机类是一个静态的类,那就不用再new,可以直接从学生手里直接拿,因为静态属性和方法,可以直接用类名调用(内部类的phone可以看作是student类的一个属性)
class student{
static class phone{
//成员变量
//成员方法
}
}
Student.phone = new cv Student.phone();
三 代码块
* 代码块:
public class xx{
{
内容...
}
}
1.执行时机: 对象被创建之前执行
2. 对象创建之前的加载或初始化工作
* 静态代码块:
public class xx{
static{
}
}
1.执行时机: 类加载时
2.作用: 对类在加载时做一些初始化工作,只执行一次。
四 异常
* 异常结构和异常处理
1.异常结构
异常(Exception):依靠程序本身可以解决的非严重性问题
(1)运行时异常()
(2)编译时异常()
错误(Error): 依靠程序本身无法解决的严重性问题
2.异常处理
try:捕获异常
catch:相对应的异常(一般直接用所有异常的父类Exception)
final: 无论是否发生异常,都必定会执行。通常再次释放一些内存资源,你如io流内存资源的释放
注意:
catch可以有多个
catch只能捕获对应的类型的异常
异常处理语句中如果有final和return,那么它会先执行完final再去执行return,无论return是否在final语句的前面。
自定义异常:
1.自定义异常类,继承Exception类
2.抛出异常对象:throw new 异常对象() ;