类之间的关系
继承
实现
依赖
关联
聚合
组合
内部类
概念:类体中的类,就叫内部类,
应用场景:当一个事物的内部,还需要另一个完整的结构时,并且该结构只对当前类提供服务,我们就i可以创建内部类。
内部类可以访问外部类的私有化属性。
内部类的类名=外部类类名$内部类类名
class a{
class B{
}
}
此时,编译后生成的class文件名字是:A$B
成员内部类
成员内部类可以等同看作成员变量,类体中没有static修饰,成员内部类可以用权限修饰符修饰。
在成员内部类中不能有静态声明。
成员内部类可以直接访问外部类中的所有属性。
静态内部类
静态内部类可以看作静态变量,要用static修饰。
静态内部类中可以声明静态方法也可以声明成员方法。
静态内部类中无法直接访问外部类的成员属性,需要创建对象。
局部内部类
局部内部类可以等同看作局部变量,局部内部类中不能有静态声明。
局部内部类的名字:外部类类名$1内部类类名。
如果局部内部类名字相同,则为外部类类名$1内部类类名、外部类类名$2内部类类名以此类推
如果内部类访问外部方法中的局部变量,则该变量需要加final修饰,不可以二次赋值。jdk1.8以后final可以省略
匿名内部类
匿名内部类的类名为:外部类类名$1,以此类推
一般在调用方法时,需要传入一个对象的时候(一般是接口实现类对象),这时候这个类不可以复用。可以在不创建class类直接传入一个匿名内部类即可。
语法:方法名(new 父类/父接口(){匿名内部类的类体});
匿名内部类就是一个子类,等于是不创建对应的子类文件,直接创建一个临时使用的子类对象。
匿名内部类不可以复用。
匿名内部类中不可以有静态声明,但可以声明常量。
不能直接访问外部的成员属性,需要创建对象才行。
设计模式
设计模式:代表了最佳的实践方式。
软件设计模式又称设计模式。是一套被反复使用、多数人只晓得、经过分类编目的、代码设计经验的总结。
使用设计模式是为了可重复使用代码,让代码更容易被他人理解,保证代码可靠性,程序的重要性。
单例模式
单例模式:让某个类只创建一个对象,提供一个获取对象的方法,调用多次,得到的对象是同一个对象。
方法:
1.构造方法私有化,不能让外部直接访问
2.需要提供一个用于获取对象的静态方法
3.提供一个用于保存对象的静态变量
根据对象的创建时机,分为两类
1.饿汉模式:类加载后立刻创建对象
2.懒汉模式:第一次创建对象时再创建对象
懒汉模式
饿汉模式
。