我是靠谱客的博主 霸气小虾米,最近开发中收集的这篇文章主要介绍java访问权限控制,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

每当我们打开一个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访问权限控制所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(58)

评论列表共有 0 条评论

立即
投稿
返回
顶部