单例

单例指的是在整个过程中都只创建一个对象。它实现的方法是使构造方法私有化、而提供另一个静态的返回对象的方法。这样,在创建对象时,就可以用类.方法创建。它分为懒汉式与饿汉式两种。

  • 懒汉式

懒汉式指的是只有调用时才开始创建对象。它依赖一个判断完成。

public class Phone {
	
	static Phone phone;//初始化时,创建静态变量

	private Phone() {//私有化构造方法

		
	}
	public static Phone getPhone() {//静态方法返回对象

		if(phone==null) {当没有创建时,创建一个对象,否则,不创建

			phone=new Phone();
		}

		return phone;
	}
}
  • 饿汉式

不用调用就开始创建,调用时直接返回已经创建的对象就行。

public class Computer {
	static Computer computer = new Computer();//创建一个对象

	private Computer() {//私有化构造方法,其他类无法调用创建对象

		System.out.println("this is computer constract");
	}

	public static Computer getComputer() {//创建静态方法,类名调用方法返回对象

		return computer;
	}
}

调用输出:

public class Test {
	public static void main(String[] args) {
		
		Phone p = Phone.getPhone();
		p = null;
		System.out.println(p);
		
		Phone p1 = Phone.getPhone();
		
		System.out.println(p1);
		if(p==p1) {
			System.out.println("同一对象");
		}
		
		Computer com1 = Computer.getComputer();
		Computer com2 = Computer.getComputer();
		if(com1==com2) {
			System.out.println("是同一对象");
		}
	}
}

输出结果:

com.hisoft.java.bean.Phone@70dea4e
com.hisoft.java.bean.Phone@70dea4e
同一对象
this is computer constract
是同一对象

总结:

无论懒汉还是饿汉都需要(初始化时创建)一个静态的相应类型变量(以便存放对象),私有化构造方法(这样无法被其他类调用创建对象),一个公有静态方法(被类名调用返回对象)来完成。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值