精华内容
下载资源
问答
  • Java访问控制权限

    千次阅读 2016-05-06 17:57:11
    Java中一共存在四种访问控制权限,即 private、default(默认)、protected和public 1、private 访问权限 private属于私有访问权限,可以用在属性的定义、方法的声明上,一旦使用了private关键字声明,则只能在...

    在Java中一共存在四种访问控制权限,即 private、default(默认)、protected和public

    1、private 访问权限

    private属于私有访问权限,可以用在属性的定义、方法的声明上,一旦使用了private关键字声明,则只能在本类中进行访问

    2、default(默认)访问权限

    如果一个类中的属性或方法没有使用任何的访问权限声明,则就是默认的访问权限,默认的访问权限可以被

    本包中的其他类所访问,但是不能被其他包的类所访问。

    3、protected 访问权限

    protected属于受保护的访问权限。一个类中的成员如果使用了protected访问权限,则只能被本包及不同包的子类访问。

    4、public 访问权限

    public属于公共访问权限,如果一个类中的成员使用了public访问权限,就可以在所有类中被访问,不管是否在同一个包中。


    使用表来总结上述的访问控制权限。

    范围privatedefaultprotectedpublic
    同一类
    同一包中的类
    不同包中的子类
    其他包中的类


    下面介绍protected访问控制权限的作用

    在 com.home.a 包中定义一个HelloDemo类,其中包含一个 protected 访问权限

    package com.home.a;
    
    public class HelloDemo {
        protected String url = "http://itmyhome.com"; //只能被本包及不同包的子类访问
    }

    在 com.home.b 包中的子类访问此类中的 url 属性

    package com.home.b;
    
    import com.home.a.HelloDemo;
    
    class SubHelloDemo extends HelloDemo{ //定义HelloDemo子类
        public void print(){
            System.out.println("访问受保护属性: " + url); //可以访问protected权限
        }
    }
    
    public class ProtectedTest {
        public static void main(String[] args) {
            SubHelloDemo sub = new SubHelloDemo();
            sub.print();
        }
    }

    程序运行结果

    访问受保护属性: http://itmyhome.com

    以上程序中在不同包的子类里访问了 protected 属性,而如果现在由不同包的类直接访问HelloDemo类中的

    protected 属性,则会出现编译错误。

    package com.home.b;
    
    import com.home.a.HelloDemo;
    
    public class ProtectedTest {
        public static void main(String[] args) {
            HelloDemo demo = new HelloDemo();
            System.out.println(demo.url); // The field HelloDemo.url is not visible
        }
    }

    作者:itmyhome

    展开全文
  • java访问控制权限

    千次阅读 2015-09-29 13:37:22
    所有优秀的代码都是再反复重写多次,不断的改变下才变得完美。但是通常客户端程序员需求类库的的代码某些方面保持不变...从另一角度来说,类库的开发者必须有权限进行修改和改进,并确保客户代码不会因为这些改动而受到

    所有优秀的代码都是再反复重写多次,不断的改变下才变得完美。但是通常客户端程序员需求类库的的代码某些方面保持不变。而类库开发者需要完善修改类库的代码。由此产生了一个基本问题:“如何把变动的事物和保持不变的事物区分开来”。类库的消费者必须依赖他所使用的那部分的类库,并且希望在类库出现新版了,它们并不需要改写代码。从另一角度来说,类库的开发者必须有权限进行修改和改进,并确保客户代码不会因为这些改动而受到影响。

    这一目标可以通过约定来达到。例如,类库开发者必须在改动类库中的类时不得删除任何现有方法,因为那样会破坏客户端程序员的代码。但是,在域(即数据成员)存在的情况下,类库开发者要怎样才能究竟都有哪些域已经被客户端程序员所调用了呢?这对于方法仅为类的实现的一部分,因此并不想让客户端程序员直接使用的情况来说同样如此。如果程序开发者想要移除旧的实现而添加新的实现时,结果将会怎样呢?改动任何一个成员都有可能破坏客户端程序员的代码。于是类库开发者会手脚被束缚,无法对任何事物进行改动。

    为了解决这一问题,java提供了访问权限修饰词,供类库开发人员向客户端程序员指明哪些是可用的,哪些是不可用的。

    访问权限的等级,从大到小:public、protected、包访问权限(没有关键词)和private。


    变量和方法的权限修饰词是这四个。

    1  public:接口访问权限

    使用关键字public,就意味着public之后紧跟着的成员声明自己对每个人都是可用的,

    示例:

    package access.dessert;
    
    public class Cookie{
        public int a;
        Public Cookie(){
             System.out.println("Cookie constructor");
        }
         void bite(){System.out.println("bite");}
    }</span>
    <span style="font-family:KaiTi_GB2312;font-size:18px;">package access.out;
    import access.dessert.*;
    public class Dinner{
        public static void main(String[] args){
            Cookie x = new Cookie();
            x.a=6;
            //x.bite();  不能访问这个方法
        }
    }

    输出:

    Cookie constructor

    Dinner类和Cookie不是同一个包下的两个类,Dinner类中创建了一个Cookie对象,并且调用了它的变量a,这是因为它 的构造器,类和变量a都是public,然而bite()访问是包访问权限,所以不能访问bite方法。

    2  包访问权限

    默认访问权限没有任何关键字,通常指包访问权限(有时也表示成为friendly)。这就意味着当前包中的所有类对那个成员都有访问权限,但是对于这个包之外的所有类,这个成员是不能访问的。

    3  protected:继承访问权限

    同一个包中的类都可以访问,不同包的子类也可以访问。

    4  private:你无法访问

    除了包含该成员的类之外,其他任何类都无法访问这个成员。


    二、类的访问权限

    只能是public或包访问权限。

    每个编译单元都只能有一个public类。public类的名称必须完全与包含有该编译单元文件名相同。

    类既不可以是private的(这样会使得除了该类之外,其他任何类都不可以访问它)。也不可以是protected的。

    展开全文
  • java访问控制权限和C++访问控制权限的对比

    1、java修饰符权限

    这里有一个包的概念,所谓同一个包是指*.java文件处于同一个文件夹下

    2、C++修饰符权限

    public:这是公有的成员,允许类外直接访问,当然,这要加上类作用域符::,
    protected:这是保护成员,只允许该类及其派生类访问
    private:这是私有成员,只允许在该类中进行访问,当然,在类外只可以通过设定的公有函数进行访问。

    展开全文
  • 理解Java访问权限控制

    2020-09-02 18:45:09
    主要帮助大家深入的理解Java访问权限控制,为何需要访问控制权限,本文给出了解释,感兴趣的小伙伴们可以参考一下
  • 主要介绍了浅析Java中的访问控制权限,在Java中,提供了四种访问权限控制,分别是默认访问权限、public、private以及protected,感兴趣的小伙伴们可以参考一下
  • Java访问权限控制

    2013-05-13 16:17:12
    很清楚的分析与讲解Java访问权限控制
  • 摘要:Java源码,文件操作,权限控制 Java访问权限控制,为Java操作文件、写入文件分配合适的权限,定义写到文件的信息、定义文件,输出到c:/hello.txt、写信息到文件、关闭输出流。
  • java源码:Java访问权限控制源代码.rar
  • java 访问权限控制

    千次阅读 2013-11-14 23:01:38
    访问控制符的等级,从最大权限到最小权限依次为:public、protected、包访问权限(没有关键词)、private 1.包:库单元 package 包内包含有一组类,它们在单一的名字空间之下被组织在了一起。 import关键字:如果要...
    访问控制(或隐藏具体实现)与“最初的实现并不恰当”有关
    
    访问控制符的等级,从最大权限到最小权限依次为:public、protected、包访问权限(没有关键词)、private
    1.包:库单元 package
    包内包含有一组类,它们在单一的名字空间之下被组织在了一起。
    import关键字:如果要导入单一的类 import java.util.ArrayList
     想要导入其下所有的类 import java.util.*
    包机制:为了解决名字空间、名字冲突
    当编写一个Java源代码文件时,此文件通常被称为编译单元。每个编译单元都必须有一个后缀名.Java
    而在编译单元内可以有一个(只能有一个)public类,该类的名称必须与文件的名称相同。如果在该编译单元

    还有别的类,在包之外是无法看到的,因为它们不是public类,它们为public类提供支持。

    1.代码组织

    package语句:必须是文件中除注释以外的第一句程序代码
    package和import关键字将单一的全局名字空间分隔开,使得无论多少人使用Internet以及Java开始编写类,都不会出现名称冲突问题。
    2.创建独一无二的包名
    按照惯例:package名称的第一部分是类的创建者的反顺序的internet域名。
            Java解释器运行过程:首先,找出环境变量CLASSPATH。CLASSPATH包含一个或多个目录,用作查找.class文件的根目录。从根目录开始,解释器获取包的名称并将每个句点替换成反斜杠,以从CLASSPATH根中产生一个路径名称。得到的路径名称会与CLASSPATH的各个不同的项相连接,解释器就在这些目录中查找与你所要创建的类名称相关的.class文件。
    冲突:将两个含有相同名称的类库以“*”形式同时导入,将会出现冲突。为了解决冲突,必须明确指出调用类的全路径。
    3.定制工具类
    可以创建自己的工具库来减少或消除重复的代码。
    4.用import改变行为
    在不同的包中编写相同名称但行为不同的类,通过导入不同的类,可以改变类的行为。
    5.对使用包的忠告
    无论何时创建包,都已经在给定包的名称的时候隐含地指定了目录结构。
    2.Java访问权限修饰词
    1.包访问权限
    默认访问权限没有任何关键字,通常是指包访问权限。
    包访问权限允许将包内所有相关的类组合起来,以使它们彼此之间可以轻松地相互作用。
    取得一个类中某个成员的访问权的唯一途径:
    1.使该成员成为public
    2.通过不加访问控制权限修饰词并将其他类放置于同一个包内的方式给成员赋予包访问权。
    3.继承访问public和protected成员,只有继承的两个类都处于同一个包内时,它才可以访问包访问权限的成员。
    4.提供访问器和变异器(get和set方法)
    2.public:接口访问权限
    使用关键字public,就意味着public之后紧跟着的成员声明自己对每个人都是可用的。
       默认包:处于相同的目录并且没有给自己设定任何包名称。Java将这样的文件自动看作是隶属于
    该目录的默认包中,于是它们为该目录中所有其他的文件都提供了包访问权限。
    3.private:你无法访问
    private:除了包含该成员的类之外,其他任何类都无法访问这个成员。
    4.protected:继承访问权限
      子类继承父类,子类可以访问父类protected成员
    5.作用域public,private,protected,以及不写时的区别: 
    当前类  同一package  不同package子孙类  其他package 
    public          √            √                              √                                √   
    protected    √             √                              √                                × 
    friendly       √                                            ×                                × 
    private        √              ×                              ×                                × 
    3.类的访问权限
    1.每个编译单元都只能有一个public类
    2.public类的名称必须完全与含有该编译单元的文件名相匹配
    3.编译单元内完全不带public类也是可能的,这种情况下,可以随意对文件命名。
    注:对于类的访问权限:仅有两个:包访问权限或public

    展开全文
  • Java访问控制权限范围如下表所示,其中要注意的是“protected”。被这个访问控制符修饰的属性或方法也能被同一个包内非继承关系的类所访问。  ...
  • JAVA访问权限控制

    千次阅读 2013-09-01 14:12:10
    Java提供了public, private, protected 三个访问权限修饰词,提供了以下四种访问权限控制机制: 1、包访问权限; 2、Public访问权限; 3、Private访问权限; 4、Protected访问权限;   1、包...
  • 本篇文章主要介绍 Java访问权限控制
  • 主要给大家介绍了关于Java访问权限控制的重要性的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
  • Java访问权限控制源代码.rar
  • 主要介绍了Java编程访问权限控制代码详解,涉及包名,公共的和私有的等相关内容,分享了相关代码示例,小编觉得还是挺不错的,具有一定借鉴价值,需要的朋友可以参考下
  • java四种访问控制权限的总结

    万次阅读 多人点赞 2018-03-09 10:59:47
    今天看了一眼java基础,看到了java的类成员访问控制权限这部分,不觉有些混乱,所以在这里梳理一下。 java有四种访问控制权限:private,protected,public,default。他们的具体访问权限都是什么呢,我用例子来...
  • Java学习-访问权限控制

    千次阅读 2020-08-08 23:12:38
    3、Java访问权限修饰词 1、为什么要有访问权限控制? 访问控制(或隐藏具体实现)与“最初的实现并不恰当”有关。 所有优秀的作者,包括那些编写软件的程序员,都清楚其著作的某些部分直至重新创作的时候才变得完美...
  • 主要介绍了Java import导入及访问控制权限修饰符过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
  • Java中的访问控制权限

    千次阅读 2018-07-19 21:08:31
    Java 中的访问控制权限可以分为 4 级 ,分别是 public ,protected ,default ,private 。放一张看了很多遍却不一定记住的图 。 图中打 Yes 即表示可以访问 ,举例说在同一个类中 ,不管你用什么样的访问修饰符...
  • Java访问权限控制简述

    千次阅读 2016-11-29 19:58:57
    四种访问权限Java中类与成员的访问权限共有四种,其中三种有访问权限修饰词:public,protected,private,。 Public:权限最大,允许所有类访问,但其他包下的类想要访问需使用import关键字将这些public类导入包中...
  • JAVA访问权限控制(JAVA Access Control)

    千次阅读 2017-08-22 21:40:17
    访问控制(或隐藏具体实现)与“最初实现并不恰当”有关。 —— 摘自JAVA编程思想 1. 代码会被重构。最初实现的代码并不是最好的(可维护性角度考虑)。 2. 消费者(客户端程序员)需要代码在某些方面不变。...
  • 主要介绍了Java类成员访问权限控制知识总结,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
  • java访问权限控制

    千次阅读 2017-08-05 14:35:05
    1.控制访问权限的两个原因 (1)第一是为了使用户不要触碰那些他们不该触碰的部分,这些部分对于类内部的操作是必要的,但是它并不属于客户端程序员所需接口的一部分。 (2)第二个原因,也是最重要的原因,是为了...
  • java访问权限控制

    千次阅读 2012-07-26 10:35:02
    Java中的访问修饰符(访问控制符)包括:public,protected,default,private。分别代表了不同的访问权限。如果省略,则被视为使用了默认的default作为访问修饰符。  从字面含义上面理解,很显然,这几个访问...
  • Java 访问权限控制:你真的了解 protected 关键字吗?

    万次阅读 多人点赞 2017-03-12 22:54:47
    Java中,类成员访问权限修饰词有四类:private,无(包访问权限),protected 和 public,而其中只有包访问权限和public才能修饰一个类(内部类除外)。特别地,很多Java书籍对protected可见性的介绍都比较笼统,...
  • java-4个访问控制权限

    2017-09-11 11:28:44
    子类继承父类的私有属性时,没有访问权,不能调用 class的权限修饰符只可以用public和default;
  • ------- android培训、java培训、期待与您交流! ---------- Java包及访问控制权限 ------- android培训、java培训、期待与您交流! ----------

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 202,592
精华内容 81,036
关键字:

java访问控制权限

java 订阅