面向对象的三大特征
封装
继承
多态
封装
面向对象的封装有两层含义
|-- 类,属性、方法这些定义在类
|--
为了安全考虑,在开发的过程中,会将属性私有化(private关键字修饰),
需要提供对应接口完成设置和访问(公开的setter和getter方法)的过程。
JOPO对象(Plain Ordinary Java Object)
标准的java bean对象
根据封装来写
私有化属性
提供公开的setter和getter方法
至少两个或者以上的构造方法
课堂练习:
博客系统设计
板块:Board
文章:Article
作者:Author
回复:Comment/Reply
POJO对象
私有化构造函数
|-- 工具类(静态方法或者静态属性)
|-- 单例模式
内容回顾(private):
面向对象的三大特征之一 —— 封装
安全
POJO对象
私有化构造函数
面向对象的专业术语:
OO(Oriented Object):面向对象
OOP(Oriented Object Programming):面向对象的编程
OOD(Oriented Object Design):面对对象的设计
OOA(Oriented Object Analysis):面向对象的分析
OOT(Oriented Object Test):面向对象的测试
面向对象的三大特征之二,继承
在面向对象中,类与类之间可以存在继承关系
在Java中,也存在继承,java是一种典型的单继承编程语言。
java如何实现继承:
extends
父类(超类、基类):
子类:
注意:private修饰的属性和方法都是无法被子类继承的
protected修饰的方法,就是用来给子类继承!!!
继承的功能:
减少代码的重复,提高代码的复用度
方法重写(覆盖)
重写(OverWrite):
覆盖(OverRide):
发生在继承中,指的是,子类继承了父类方法后,该方法不能满足子类,
重写该方法,已达到满足子类使用。
访问修饰符 返回值类型 名称一致() {
}
重载(OverLoad):
注解(annotation):
JDK5.0提供的新特性,利用反射技术,可以很轻松使用标注方法、属性、类等,
从而扩展功能。
@Override // 覆盖
@Deprecated // 过时警告
super关键字
super在java中,是一个指针,类似于this关键字
this关键字指向创建的每一个对象
super会自动指向父类
super(); // 调用父类的无参构造
对象的创建流程:
1、使用java命令将源码(.java)进行编译,生成字节码文件(.class)
2、javac命令执行字节码文件
3、将字节码文件加载进虚拟机(JVM),静态方法区开始加载静态资源
4、JVM从静态方法区读取主函数,并加载进栈(执行栈被创建了出来)
5、main函数开始执行, 创建对象的代码,如:Son son = new Son();
6、在堆内存中开辟对象的内存空间,并分配地址
7、创建成员变量并进行默认初始化
8、子类构造函数从非静态方法区加载进栈开始执行
9、第一句先执行父类的构造函数
10、父类构造函数执行,为子类继承到的成员变量进行初始化(对象内存空间里的父类空间)
11、父类构造函数弹栈执行完成
12、子类构造函数继续执行,此时先对成员变量进行显式初始化
13、再执行子类构造函数的内容,进行针对性初始化
14、执行完成,子类构造函数弹栈,将对象的内存空间地址赋予相应的引用变量
方法区:(Method Area)
元数据区:(Metaspace)