java基础之访问权限控制

java中访问权限控制修饰词包括了:public protected private 和默认(包访问修饰权限),值得一提的是protected也同时提供了包访问权限,也就是说相同包内的其他元素也可以访问protected元素;然而,如果一个子类继承了父类,子类就具有了父类继承而来的protected方法或者field,但与该子类位于同一包下的其他元素并不具有访问权限。

其中值得注意的是对于类class的访问权限只能使用 包访问权限和public 进行修饰(然而如果为内部类可以使用private或protected进行修饰),如果想要一个类为private,不想让其他类直接访问呢,此时需要将该类的构造方法定义为private类型的,同时该类可以被其内部的static成员创建。

通过上面提出的思想,可以实现我们常说的“单例模式”:

定义一个单例类:

public class Singleton {
	private static String information;
	private static Singleton s = new Singleton(information);
	public static Singleton getSingleton(String information){
		Singleton.information = information;
		return s;
	}
	public void info(){
		System.out.println(information);
	}
	
	private Singleton(String information){
		Singleton.information = information;
	}
}

 测试一下:

public class SingletonTest {
	public static void main(String[] args) {
		Singleton single1 = Singleton.getSingleton("单例测试");
		single1.info();
		Singleton single2 = Singleton.getSingleton("单例测试??");
		single2.info();
		System.out.println(single1 == single2);
	}
}

 输出:

单例测试
单例测试??
true

可是看出single1与single2实际为同一个实例。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值