Chapter6_访问权限控制_类的访问权限

在Java中,访问权限修饰词也可以用于确定库中的哪些类对于该库的使用者是可用的,类既不可以是private也不可以是protected的,对于类的访问权限,只有两种选择:包访问权限或者public。下面是一个例子:

 1 class soup1{
 2     private soup1(){}
 3     public static soup1 makesoup(){
 4         return new soup1();
 5     }
 6 }
 7 
 8 class soup2{
 9     private soup2(){}
10     private static soup2 ps1 = new soup2();
11     public static soup2 access(){
12         return ps1;
13     }
14     public void f(){}
15 }
16 
17 public class lunch {
18     void testPrivate(){
19         //soup1 s = new soup1();
20     }
21     void testStatic(){
22         soup1 s = soup1.makesoup();
23     }
24     void testSingleton(){
25         soup2.access().f();
26     }
27 }

  由于在Java中,如果没有编写构造器,编译器会帮你创建一个,而如果我们编写了自己默认的构造器,那么不会自动创建,所以可以像上面一样,通过将构造器指定为private的来阻止直接创建这个类的实例。除此之外,上面的例子还给出了两种选择,别人要如何使用这个类呢?在soup1中,创建一个static方法,会返回一个引用,并且可以对引用的数目进行计数。在soup2中,使用到了单例的模式,因为使用者始终只能创建一个soup2对象。

  对于soup1和soup2,如果没能为类访问权限提供一个修饰符,那么就会默认得到包访问权限,这意味着包外的类无法使用这个类,但是可以调用这个类static域的成员,如果这个成员是public的话。

转载于:https://www.cnblogs.com/buaa-zzy/p/7434718.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值