面向对象
面向对象
可变个数的形参
JDK5.0之前:采用数组形参来定义方法,传入多个同一类型变量
public static void test(int a ,String[] books);
JDK5 之后:采用可变个数形参来定义方法,传入多个同一类型变量
public static void test(int a,String... books);
javaBean
类是公共的
有一个无参的公共的构造器
有属性,且有对应的get ,set方法
子类对象实例化过程
默认会调用父类的无参构造器
instanceof
检查对象是否为某类的对象
多态性
- 丢失子类特性
一个引用类型变量如果声明为父类的类型,但实际引用的是子类对象,那么该变量就不能再访问子类中添加的属性和方法 - 方法与属性
方法发生重写时,执行子类中的方法。属性被重写时,依然使用父类中的属性。 - 编辑与运行
多态为运行时发生的事情
Object
- ==
比较值,或地址 - equals
比较对象的地址,个别方法重写后变为比较对象内容。
包装类
- 字符串转基本
int i = new Integer("12");
float f = float.parseFloat("12.1"); - 基本转字符串
String str = String.valueOf(2.23);
单例模式
- 饿汉式:
好处:线程安全
坏处:对象存在时间过长 - 懒汉式:
好处:延迟对象加载 省内存
坏处: 线程不安全
类的工作流程
声明成员变量的默认初始化——>显式初始化,多个初始化块依次被执行——>构造器再对成员进行初始化操作——>通过对象使用成员变量
勾子方法
模版设计模式——>抽象类提供模板 子类提供勾子函数
匿名
- 非匿名实现类的非匿名对象
Flash flash = new Flash(); - 非匿名实现类的匿名对象
com.transferData(new Printer()); - 匿名实现类的非匿名对象
USB phone = new USB(){
public void start(){}
public void stop(){}
};
- 匿名实现类的匿名对象
com.transferData(new USB(){
public void start(){}
public void stop(){}
});
JDK1.8接口新特性
之前的版本中,接口只可以写全局常量和抽象方法
- 静态方法
接口中定义的静态方法只能通过接口来调用 - 默认方法
通过实现类的对象可以直接调用 default 方法
如果和父类中的冲突,则遵守类优先原则
如果和接口中的冲突,则必须重写该方法
异常
常见异常
ArrayIndexOutOfBoundsException 数组下标越界
NullPointerException 空指针异常
ClassCastException 类型转换异常
ArithmeticException 算术异常
作者:柏为杰

浙公网安备 33010602011771号