java私有instance_Java--构造方法私有化--单例模式

类的封装性不只体现在对属性的封装上,实际上方法也是可以封装的。下面主要介绍对构造方法的封装。

封装是指一切都对外部不可见,那么意味着外部无法调用封装后的构造方法。既然外部不能调用,那么内部那?

通过在Student类内部实例化对象instance,但必须定义为static类型(以便外部访问)。创建一个返回类型为Student的方法将实例返回(需要判断是否实例化了)。在外部把返回的实例赋值给Student类中的另一个对象,此对象就可以就可以调用Student类的普通方法。

注意:永远只会有一个实例化对象存在  --->单例模式(只要将构造方法私有化,就可以控制实例化对象的产生)

单例模式主要有以下两种形式:

1.饿汉式

class Student{

private static Student instance=new Student();     //定义为static类型

private Student(){}     //将构造方法封装

public staticStudent getInstance(){     //将实例返回

if(instance==null){

instance=new Student();

}

return instance;

}

public void show(){

system.out.println("HelloWorld!!");

}

}

public class TestStudent{

public static void main(String[] args){

Student stu1=Student.getInstance;

stu1.show();

}

}

2.懒汉式

class Student{

private static Student instance;

private Student(){}

public static Student getInstance(){

if(instance==null){

instance=new Student();

}

return instance;

}

public void show(){

system.out.println("HelloWorld!!");

}

}

public class TestStudent{

public static void main(String[] args){

Student stu2=Student.getInstance;

stu2.show();

}

}

分析:饿汉式和懒汉式的区别主要体现在实例化对象的顺序。可以发现,整个过程中只会有一个实例化对象产生!

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值