面向对象

面向对象

可变个数的形参

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 算术异常

作者:柏为杰

posted @ 2023-06-19 13:34  中亿丰数字科技  阅读(7)  评论(0)    收藏  举报