day11-内部类-两种设计模式(单例、简单工厂)

一、内部类

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; } }

 

三、工厂模式(简单工厂)

 

转载于:https://www.cnblogs.com/zhiai007/p/9374736.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值