概述
每当我们打开一个java文件,最开始看到的就是package xx.xx.xx这个是包申明,表示这一class归属于这个xx这个包中,例如Arraylist,当我们打开ArrayList.class如下(使用eclipse,截取部分代码,并去掉注释):
package java.util;
public class ArrayList<E> extends AbstractList<E>
implements List<E>, RandomAccess, Cloneable, java.io.Serializable
{
private static final long serialVersionUID = 8683452581122892189L;
private transient Object[] elementData;
private int size;
public ArrayList(int initialCapacity) {
super();
if (initialCapacity < 0)
throw new IllegalArgumentException("Illegal Capacity: "+
initialCapacity);
this.elementData = new Object[initialCapacity];
}
public ArrayList() {
this(10);
}
……………………………………
public int size() {
return size;
}
……………………………………
}
首先看到的是package java.util,package必须是文件中除去注释以外的第一句代码,表示arraylist是util这个包中的一部分(不写package语句,此java文件会归于默认缺省包中,package也存在只是在文件中不显示)。当我们引用arraylist时会在package跟class中间出现一个import java.util.ArrayList;表示引入java.util包中的arraylist。可以看到class的前面有个public(表示公共的关键字),只要引入了util这个包每个人都可以用arraylist;还有在类里面看到一个private int size,其余先不管,在这个语句里面看到int前面有个private(表示私有的关键字),就算引入了arraylist,用arraylist创建的对象也不能直接调取到arraylist的size属性,在arraylist中有一个 public 修饰的size()方法,可由此方法调取到arraylist私有的size属性,除了上述两种还有默认不写访问权限修饰符和protected(继承访问权限),四种访问权限作用范围如下:
访问权限修饰符 | 类内部 | 同一包(package)的类 | 子类 | 非同一包的类 |
---|---|---|---|---|
public | 可以访问 | 可以访问 | 可以访问 | 可以访问 |
protected | 可以访问 | 可以访问 | 可以访问 | 无法访问 |
(默认)不写 | 可以访问 | 可以访问 | 无法访问 | 无法访问 |
private | 可以访问 | 无法访问 | 无法访问 | 无法访问 |
默认的访问权限是不带任何的关键字,通常指包访问权限,也就是在同一包下的类能访问到
protect主要是父类跟子类有继承关系存在时候用
java中通过访问修饰符来确定包中哪些是被限制使用的,那些是开放的。对于类来说,最外层的类仅有public和默认不写两种访问权限,每个java文件中有且只能存在一个用public关键字修饰的class(可能会存在同一java文件中有多个class出现,内部类排除在外),并且由public修饰的class的名字要跟java文件名一致。内部类多了一种private进行修饰
最后
以上就是霸气小虾米为你收集整理的java访问权限控制的全部内容,希望文章能够帮你解决java访问权限控制所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复