2021-04-04

封装即是私有化。

在这里插入图片描述package Lianxi2;

public class Singleton {
//2.声明本类类型的引用,指向本类类型的对象 使用private和static共同修饰
private static Singleton sin = new Singleton();
//成员变量 = 初始值 外面可以通过 类名.的方式访问。

private Singleton(){}
//1.私有化构造方法,使用private关键字修饰
//3.提供公有的get方法负责将对象返回回去
//
public static Singleton getSin() {
    return sin;
}

}

package Lianxi2;

public class SingletonTest {
public static void main(String[] args) {
Singleton s1 = Singleton.getSin();
Singleton s2 = Singleton.getSin();
System.out.println(s1==s2);//指向的是同一个对象,因此只能得到一个对象
}
}
本质上是在类的里面自己申请了一个私有且静态的对象,然后从外面(main)使用get得到这个对象,因此不管main里面的s1 还是s2他们得到的都是这个在类中申请好的对象,而且这个对象要用private static修饰。
要注意:一旦一个类的构造方法被加上private,那么外面就不能再通过直接new对象来申请了,也就不能无限次的new,就只能通过再类里面new一个private和static共同修饰的对象,然后通过get送到外面,此时还要注意外面(main)使用get方法得到的时候,要用类名.的方式。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
上面的是 饿汉式,上来就创建对象,也有懒汉式:
在这里插入图片描述
由于多线程的问题,饿汉式要优于懒汉式。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值