[Day2]从0开始学java
文章目录
面向对象(oop)
面向过程 面向对象
面向对象
以类的方式组织代码,以对象的形式组织(封装)数据
抽象
- 封装
- 继承
- 多态
类和对象
- 类是抽象的,对象是具体的
构造器
- 和类名相同,无返回值
- 使用new关键字,本质是在调用构造器
- 用来初始化值
- 定义了有参构造,无参构造必须显示定义
alt+insert
对象创建分析
封装
- 高内聚 低耦合
- 属性私有
继承
一批类的抽象
extend
- 私有的无法继承
ctrl+h
继承树
- java中只有单继承
object类
- 所有的类直接/间接继承object
super - this
- super调用父类的构造方法,必须在构造方法的第一个
- super必须只能出现在子类的方法或者构造方法中
- super和this不能同时调用构造方法
方法重写 重写都是方法的重写
- 父类的引用可以指向子类
- 静态和非静态区别很大(子类重写父类方法)
- 修饰词范围可以扩大但不能缩小
- 抛出的异常可以被缩小但不能被扩大
多态
- 动态编译 可扩展性
- 子类重写了父类的方法,执行子类的方法
- 对象能执行那些方法主要看左边的类型
- 子可以调用父类方法,父不可以调用子类方法
ClassCastException
类型转换异常
- static final private不能重写
类型转换
instanceof
判断是否存在父子关系
- 子类转换为父类直接转换
- 父类转换成子类强制转换
static
demo06
抽象类
- 不能new,只能new它的子类
- 抽象类可以写普通方法
- 抽象方法必须写在抽象类中
接口
- 接口的本质是契约
- 接口中的定义都是抽象的,需要有实现类
- 常量都是静态的
- 接口不能实例化
- implements可以实现多个接口
- 必须重写接口中的方法
内部类
demo09
异常
异常机制
分类
体系结构
异常处理机制
捕获抛出异常
ctrl+alt+t
Demo01
自定义异常
demo02