面向对象

案例引入:五子棋

面向过程:将事务按照一定的步骤实现,通过函数方式执行步骤。

1、开始游戏

2、执黑先行

3、绘制图形

4、判定输赢

...

游戏结束

优缺点:效率高,可维护性低,耦合度低

eg:单片机、嵌入式开发、Linux操作系统。

面向对象:把构成的事务划分成一个个对象来处理。

1、游戏用户

2、棋盘对象

3、规则对象

优缺点:效率低,可维护性高 (耦合度低)

eg:应用系统

面向对象

1、类

类是抽象的,起到描述事物的。(不占内存)

2、对象

对象时具象的,是类的实例化(占内存)

属性:静态的(固有特征)

行为:动态的(方法)

3、类和对象之间的关系

类是对象的描述

对象时类的实例

4、类的结构

1、属性

2、方法

3、构造器

5、面向对象的特征

封装:将事物的内部细节隐藏起来,对外暴露访问的接口

继承:子类可以用于父类的属性和行为

多态:同一个动作作用于不同对象产生的不同形态

多态类型:编译时多态,运行时多态

三个条件:继承、重写、向上转型

Java程序执行流程

面向对象

 

1、将编写的Java源程序(.Java)通过编译器生成个字节码文件(.class)。

2、通过JVM类加载器加载所有字节码文件

3、加载完字节码文件后交给JVM执行引擎执行Java程序。

注:所有的Java程序最终都是在运行时数据区来运行

Java的内存结构

1、方法区

类的信息(访问修饰符 类名(包名加类名) 注解)

静态的成员属性(static)

存储常量(static final)

静态方法(static)

成员方法

2、堆

new出来的对象

数组、接口

3、栈

局部变量

对象的引用