Java 深入学习(20) —— 访问权限控制

xiaoxiao2021-02-28  16

0 包:库单元

包(package)内包含一组类(class),他们在单一的名字空间之下被组织在了一起。

当编写一个 Java 源码文件时,此文件通常被称为 编译单元。每个编译单元都必须有一个后缀名.java,而在编译单元内则只可以有一个 public 类,该类的名称必须与文件的名称相同(包括大小写)。如果在该编译单元之中还有额外的类的话,那么在包之外的世界是无法看见这些类的,因为他们不是 public 类,而且他们主要是用来为 主 public 类提供支持。


在Java中,提供了四种访问权限控制:默认访问权限(包访问权限),public,private以及protected。

注意,上述四种访问权限,只有默认访问权限和 public 能够用来修饰类。修饰类的变量和方法四种权限都可以。(本处所说的类针对的是外部类,不包括内部类)


1 修饰类

默认访问权限(包访问权限):用来修饰类的话,表示该类只对同一个包中的其他类可见。

public:用来修饰类的话,表示该类对其他所有的类都可见。

由于 People 类为默认访问权限,所以在同一个包(com.test.visitcontrol)中可以访问。


由于 People 类为默认访问权限,所以在另外一个包(com.test.visitcontrol_1)中无法访问。 由于 Main 类为 public 访问权限,所以在另外一个包(com.test.visitcontrol_1)中可以访问。


2 修饰类的方法和变量

默认访问权限(包访问权限):如果一个类的方法或变量被包访问权限修饰,也就意味着只能在同一个包中的其他类中显示地调用该类的方法或者变量,在不同包中的类中不能显示地调用该类的方法或变量。

private:如果一个类的方法或者变量被private修饰,那么这个类的方法或者变量只能在该类本身中被访问,在类外以及其他类中都不能显示地进行访问。

protected:如果一个类的方法或者变量被protected修饰,对于同一个包的类,这个类的方法或变量是可以被访问的。对于不同包的类,只有继承于该类的类才可以访问到该类的方法或者变量。

public:被public修饰的方法或者变量,在任何地方都是可见的。


默认访问权限(包访问权限)的例子:


private 的例子:


3 吃午饭的时间到了,所以剩下两个例子不想写了,自己体会一下吧…


4 Reference

1、浅析Java中的访问权限控制 http://www.cnblogs.com/dolphin0520/p/3734915.html

2、《Java编程思想》第6章——访问权限控制


转载请注明原文地址: https://www.6miu.com/read-1400157.html

最新回复(0)