访问控制修饰符
public
: 对所有类可见, 父类中声明为public的方法在子类中也必须为public
protected
: 对同一包内的类和所有子类可见, 父类中声明为protected的方法在子类中要么声明为protected,要么声明为public。不能声明为private
default
: 在同一包内可见, 不使用任何修饰符
private
: 在同一类内可见, 父类中声明为private的方法,不能够被继承
非访问修饰符
static
: 用来创建类方法和类变量
final
: 用来修饰类,方法和变量, final修饰的类不能够被继承, 修饰的方法不能被继承类重新定义, 修饰的变量为常量, 是不可修改的, Final修饰符通常和static修饰符一起使用来创建类常量
abstract
: 用来创建抽象类和抽象方法
synchronized和volatile
: 主要用于线程的编程
继承(extends继承基本类和抽象类, implements实现接口类)
封装(将类中属性设置为private并提供getter,setter方法使外部可以访问和修改)
覆盖(override)与重载(overload)
- 重载: 一个类中有相同名字的函数, 但参数(个数或类型)不同
- 覆盖: 子类重写父类的同名函数, 参数列表和返回值类型一定不能修改, 访问权限一定不能做更严格的限制(可以降低限制), 异常可以减少或删除,一定不能抛出新的或者更广的异常
接口(interface)与抽象类(abstract)
- 共同性: 将类型改为可变的, 使用时创建具体类
- 接口: 所有方法必须是抽象的, 可以实现多个接口
- 抽象类: 可以有具体实现, 只能继承一个抽象类
多态(不同类的对象调用同一函数)
组合与聚合
泛型<T,V><?通配符>(将方法行参的具体类型改为可变的, 调用方法时把类型传过去)
多线程
- 继承Thread类重写run方法, 调用start方法开始
- 实现Runnable接口重写run方法
反射机制(运行时获取class属性和方法,类似动态语言特性)
- 在运行时判断任意一个对象所属的类,在运行时构造任意一个类的对象,在运行时判断任意一个类所具有的成员变量和方法,在运行时调用任意一个对象的方法,生成动态代理
异常处理
- try, catch, throw, throws, finally
- throws一般在函数头中, throw一般在函数体中
- throw是语句抛出一个异常, throws 是方法抛出一个异常
- throws用来指定可能抛出的异常, 多个异常可以使用逗号隔开, 当在主函数中调用该方法时, 如果发生异常, 就会将异常抛给指定异常对象
- throw抛出一个异常对象, 程序在执行到throw语句时立即停止, 它后面的语句都不执行, 通过throw抛出异常后, 如果想在上一级代码中来捕获并处理异常, 则需要在抛出异常的方法中使用throws关键字在方法声明中指明要跑出的异常, 如果要捕捉throw抛出的异常, 则必须使用try—catch语句