1. 面向对象三大特性
特性 | 说明 | 例子 |
接口 | 作为方法的标识,只要调用即可,不需要关心接口后是怎样实现的 | 最常见的USB接口,只要插上对应的鼠标、键盘就可以使用,因为他们都是统一使用这个USB接口的 |
继承 | 子类继承父类的功能,子类可以使用父类的方法 | new一个class类,可以直接使用toString方法,因为新的类继承了OBject类 |
多态 | 在继承基础上使用的,通过传入不同的子类,使同一个方法展示不同的功能 | 打印机使用多态,可以选择安装彩色打印,还是安装黑白打印 |
2. 面向过程、面向对象
面向过程 | 面向对象 | |
说明 | 一步一步的进行下去 | 将一个大的物件划分成小的模块,然后组装成一个整体 |
例子 | 如开车:启动 -> 挂挡 -> 放手刹 -> 行驶 | 比如造车:车子是由多个对象构成的,分别是轮子、方向盘、车窗等 |
优点缺点 | 复杂度低,易修改,扩展性差 | 易扩展,可维护性高,设计复杂 |
面向对象设计简易图
3. JVM框架
存放信息 | 是否共享 | |
方法区 | 类信息、常量池、静态变量、编译后的代码 | 共享 |
堆 | 对象存放 | 共享 |
栈 | 方法运行压栈 | 不共享 |
下面是构建一个新的对象,现在堆中开辟空间分配地址,然后给栈中对象指定地址
4. 变量生命周期以存在空间
范围 | 空间 | 生命周期 | 默认值 | |
成员变量 | 全局 | 存在堆中 | 生命周期整个对象存活时间 | 有默认值 |
局部变量 | 只在方法内 | 存在栈中 | 生命周期只在方法调用期间存活 | 无默认值 |
5. 修饰符范围
public > proctected > 缺省 > private
本类 | 本同包 | 其他包的子类 | 全部 | |
private | √ | × | × | × |
缺省 | √ | √ | × | × |
protected | √ | √ | √ | × |
public | √ | √ | √ | √ |