第六章 访问权限控制(java编程思想)

6.1 包 库单元

类库实际上是一组类文件, 其中每个文字都有一个public类, 以及任意数量的其他类, 其中每个文件都有一个构件, 如果希望这些构件同属于(每一个都有自己的独立的.class 和 .java文件)一个群组, 就可以使用关键字package。
使用package时, 他必须是文件中除了注释外的第一行代码,在文件起始处写,就意味着你在声明该编译单元在该类库的一部分,每一个声明后的文件都只有一个public类, 且类的名字要与文件的名称相同。

6.2 权限修饰词

public , private , protected这几个java访问的修饰词在使用时,是在类的名字前面使用的,在不提供任何访问权限修饰词时,意味着他是包访问权限。
6.2.1 包访问权限
默认访问权限没有任何修饰词,但通常指的是包访问权限(有时也表现为friendly),意味着当前包中所有的类都有访问权限,但这个包外的所有类,这个成员却都是private。
6.2.3 private : 你无法访问
关键字private的意思是,除了包含该成员的类之外,其他任何类都无法访问他。默认的包访问权限已经提供了足够的隐藏措施,使用类的客户端程序员是无法访问包访问权限成员的,通常要考虑的是,那些成员是要明确公开给客户端程序员使用的,从而将他们声明为public。

//: access/IceCream.java
// Demonstrates "private" keyword.

class Sundae {
  private Sundae() {}
  static Sundae makeASundae() {
    return new Sundae();
  }
}

public class IceCream {
  public static void main(String[] args) {
    //! Sundae x = new Sundae();
    Sundae x = Sundae.makeASundae();
  }
} ///:~

上面的例子中,无法调用构造器来创建对象,要通过makeASundae()方法来创建对象。
6.2.4 protected: 继承访问权限
如果创建一个新包,并自另一个包中继承类,那么唯一可以访问的成员就是源包中的public成员(如果在同一个包中执行继承任务,就可以操纵所有具有包访问权限的成员,有时基类的创建者某个特定成员,把对他的访问权限赋予派生类而不是所有类,这就需要protected来, protected也提供包访问权限,相同包内的其他类也是可以访问protected成员的。

6.4 类的访问权限

包访问权限只有两个选项,包访问权限或者public的。如果不希望任何有对该类的访问权限,把所有的构造器设置为private,这样任何人都无法创建该类的对象

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值