一、内部类
1、成员内部类:直接在外部类下定义,当成外部类的一个成员来使用。权限修饰符正常使用。
主函数中调用实例化的时候,需要借助外部类的对象。
2、局部内部类:定义在方法中或者代码块中的类,相当于一个局部变量。此时权限修饰不起作用了,所以就写不了。
所以该局部内部类的使用只能在当前方法或者代码块中使用,出了这个范围就访问不到了,就相当于一个局部变量一样的使用。
3、静态内部类:定义位置跟成员内部类一致,都是在外部类下直接定义,区别是加了一个static修饰。此时权限修饰符就有作用,正常使用。
调用时候把这个类当成一个普通的类来使用,实例化对象不需要借助外部类。但此时需要导入外部类中的内部类全路径,如下
二、单例设计模式(暂时不考虑多线程同步问题)
1.概念:所谓的单例设计模式就是当创建一个类的时候,该类有且只有一个实例化对象。
2.实现:构造函数私有化,声明一个静态的该类实例化对象,提供得到实例的公共方法
代码实现(饿汉式)
public class Boss{ //饿汉式 //构造函数私有化 private Boss(){} //声明静态的Boss类的实例boss private static Boss boss = new Boss(); //对外提供get实例的静态方法 public static Boss getInstance(){ return boss; } }
懒汉式:
public class Boss{ //懒汉式 //构造函数私有化 private Boss() { } //声明私有静态的Boss类型的boss变量,初始化为null; private static Boss boss = null; //对外提供get实例的静态方法 public static Boss getInstance(){ //先判断当前实例是不是空 if(null==boss) boss = new Boss();
//否则返回当前的boss实例 return boss; } }
三、工厂模式(简单工厂)