前言解析
数据类型
基本 8个
引用 数组[] 类class 抽象类abstract class
接口interface 枚举enum 注解@interface
枚举类
一个类中的对象 认为个数是有限且固定的,可以将每一个对象一一列举出来
1.试一试若没有枚举类型的时候,如何手动设计
(静态常量 单例模式)
Day(类 当做描述星期 7个对象)
private构造方法
public static final属性 = new
2.JDK1.5版本之后可以直接定义enum类型
我们自己定义的enum类型直接默认继承Enum(java.lang包)
我们自己定义的enum类型不能再写extends 但是可以实现
Enum类型
有两个属性
name----->枚举对象的名字 name()获取name属性
ordinal--->枚举对象在类中罗列的顺序 类似index 也从0开始 ordinal()获取序号
一些常用的方法
valueOf() 通过给定的name获取对应的枚举对象
values() 获取全部的枚举对象 ---> 返回一个数组 Day[]
compareTo() 可以比较两个枚举对象 int
toString() 由于这个方法没有final修饰 可以覆盖(重写)
3.switch内部判断枚举的应用
4.我们也可以在enum中描述自己的一些属性或方法
必须在enum类中第一行 描述一下枚举的样子 最后需要分号结束;
可以定义自己的属性
类创建的过程中 帮我们创建枚举类型的对象
需要给枚举类型提供对应样子的构造方法 构造方法只能private修饰 可以重载
总结:
截止到现在所有面向对象的编程思想都更过啦
带你们回顾一下:
如何描述类
类成员四个 方法
如何创建对象
执行类成员
类之间的关系
is-a has-a use-a
类中特性
权限 特征
类之间的设计问题
设计模式 单例 策略 适配器
类中的一些细节
内部类 枚举类
内存机制问题
类创建在哪儿 对象创建在哪里 继承关系 静态成员 方法执行
栈内存--->Person p = new Person();---->堆内存 方法区---类模板
栈内存--->创建开始 用完立即回收 StackOverflowError
方法区--->类 常量 静态 只有一份回收不了
堆内存--->new创建的对象 Garbage Collection垃圾回收器 GC
Runtime类之中提供了几个管理内存的方法
maxMemory
totalMemory
freeMemory
堆内存溢出错误OutOfMemoryError
Object类中有一个finalize方法 如果重写也能看见对象回收
GC系统提供的一个线程 回收算法