继承:类与类之间是单继承,子类名 extends父类名
接口与接口之间是多继承:接口名extends接口名,接口名,接口名
类与接口之间是多实现:类名implements接口名,接口名;
依赖:局部变量保存另一个类 对象引用 类名 a=new 类名();
关联:成员变量保存了另一个类 对象引用
组合:部分和整体不可分离
聚合:部分和整体有独立的生命周期;
内部类:一个事物 的内部 还有一部分需要完整的结构进行描述
成员内部类:可以看做成员变量
优点:可以访问外部类的私有化属性 可以访问权限控制修饰符 成员内部类中不能有静态声明可以访问外部类的所有属性
创建外部类对象: 外部类名 对象名=new 外部类名();
创建内部类对象:内部类名 对象名=外部对象名.new 内部类名();
访问属性 内部对象名.方法名();
静态内部类:可以看做静态变量
在静态内部类中,可以声明成员属性 也可以声明静态属性 无法直接访问外部类成员属性 需要创建对象访问才行
局部内部类:可以看做局部变量 如果通过局部内部类访问外部方法中的局部变量的时候要加final修饰
局部内部类不能使用权限修饰符 也不能用static
匿名内部类:优点 少定义一个类 并且还能访问外部类中的私有化属性
缺点 无法复用
设计模式:在编码实践中 总结出的固定语法模式 代表了最佳的实现方式
当前类只能被创建一个实例化对象
要控制创建对象的数量 不能让客户直接操作构造方法 需要把构造方法私有化
手动创建一个对象 并保存 对外提供一个获取对象的方法
创建静态变量用来保存实例化的对象;