java如何封装和私有化_java构造方法私有化

理解构造方法私有化过程

- 1. 构造方式私有化

class Singleton {

private Singleton(){ }

public void print() {

System.out.println("hello");

}

}

当构造方法私有化后,外部类无法对其进行实例化

- 2. 在类内部实例化对象

class Singleton {

private Singleton(){ }

Singleton instance = new Singleton();

public void print() {

System.out.println("hello");

}

}

此时需要通过在类内部进行实例化对象的产生

- 3. 静态方法取得此实例化对象

public class TestSingleton {

public static void main(String[] args) {

Singleton s = Singleton.instance;

s.print();

}

}

class Singleton {

private Singleton(){ }

static Singleton instance = new Singleton();

public void print() {

System.out.println("hello");

}

}

加入static修饰,使得其他类取得此类的实例化对象

- 4. private封装类成员变量

public class TestSingleton {

public static void main(String[] args) {

Singleton s = Singleton.getInstance();

s.print();

}

}

class Singleton {

private Singleton(){ }

private static Singleton instance = new Singleton();

public static Singleton getInstance(){

return instance;

}

public void print() {

System.out.println("hello");

}

}

既然instance为类成员,就应该用private封装起来。故出现了getInstance()方法

小结

java中有一种设计模式叫单例设计模式,所谓单例就是在入口(构造方法)限制了对象的实例化操作。如果不希望一个类产生多个对象时,使用单例设计模式。

单例设计模式的核心就是:将类的构造方法私有化,在类的内部产生实例化对象,并通过类的静态方法返回实例化对象的引用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值