面向对象
案例引入:五子棋
面向过程:将事务按照一定的步骤实现,通过函数方式执行步骤。
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、栈
局部变量
对象的引用