1类之间的关系
1.1继承
类与类之间单继承 extends
接口与接口之间多继承
1.2 实现
类实现接口 implements
1.3依赖
一个类的局部变量是另一个类的引用
main方法或者m1方法死了 下面的对象就会立即死亡
依赖关系是临时性的这个方法执行完关系就消亡了不存在了
1.4关联
一个类的成员变量或者静态变量是另一个类的引用或者是类对象的引用
强依赖并且长时间
1.5 聚合
整体跟局部都有独立的生命周期
方法执行完了 尽管方法里面的对象消亡了 但是外部依然有引用来进行接收
那么person就不会回收 拥有独立的生命周期
1.6 组合
test 跟person生命周期是绑定的
test对象销毁的时候person也会被视为垃圾回收
2 内部类
2.1概述
内部类就是在外部类里面嵌套一个类 内部类只为外部类提供服务
外面的称为外部类 内部的称为内部类
完整名称 外部类类名&内部类名
2.2 成员内部类
成员内部类 等同于成员变量 没有static修饰
内部类 可以使用权限修饰符
内部类可以访问外部类的私有化属性
成员内部类中不能有静态声明
成员内部类可以直接访问外部类的所有数据
静态变量可以访问 外部类的成员变量访问需要对象使用因为是成员内部类 等同于成员变量
调用里面的方法说明已经有了外部类对象跟内部类对象所以可以访问外部类所有的成员属性
使用方法
2.3 静态内部类
静态内部类 可以看做静态变量
静态内部类 可以声明任何数据(静态/成员 变量或者方法)
//静态内部类无法直接访问外部类的成员属性因为调用静态变量不需要对象 因此无法访问外部类的成员属性 如果要调用需要在方法里面创建外部类的对象才可以
使用方法
2.4 局部内部类
方法中的类就是局部内部类
成员方法中的局部内部类
成员方法中的内部类 不能有静态属性
并且可以直接访问外部类的成员属性
局部内部类命名 外部类类名$1内部类类名
如果内部类类名重复 则为外部类类名$2内部类类名
局部内部类不能使用权限修饰符 也不能使用static
相当于局部变量
如果访问外部方法的局部变量则该变量不能修改就是不能二次赋值
1.8之前 需要加final修饰局部变量 之后不需要但是不能修改
类在方法中 相当于局部变量 因此该类只能在这个方法里面使用
静态方法中的局部内部类
静态方法中的局部内部类也不能有静态声明
不能直接访问外部类的成员属性 要是访问需要创建外部类的对象
使用
2.5 匿名内部类
匿名内部类 当一个方法的参数需要传入一个类对象的时候
*都可以使用匿名内部类 一般情况下 是需要让你传入接口的实现类对象
命名 外部类类名$1,外部类类名$2,...
创建匿名内部类传入,此时该类不能复用
// 匿名内部类,就等于创建了一个Login的子类,并创建这个子类的对象传入
//应用场景 这个接口的方法只执行一次
·
3 设计模式
软件设计模式(Design pattern),又称设计模式,是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性、程序的重用性
一般代表了最佳实践
单例模式 : 让某个类只创建一个对象
* 1 构造方法私有化,因为创建对象,使用构造方法,所以我们想要限制对象的创建,就要限制构造方法的使用
* 2 创建一个用于保存对象的静态变量
* 3 对外提供一个用于获取对象的方法(一定是静态方法)
不能是成员变量保存 因为需要对象调用才能使用成员变量
不能使用成员方法也类似
3.1饿汉模式
3.2 懒汉模式