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

    2020-09-02 18:45:09
    主要帮助大家深入的理解Java访问权限控制,为何需要访问控制权限,本文给出了解释,感兴趣的小伙伴们可以参考一下
  • 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访问权限控制

    2013-05-13 16:17:12
    很清楚的分析与讲解Java访问权限控制
  • 主要介绍了Java编程访问权限控制代码详解,涉及包名,公共的和私有的等相关内容,分享了相关代码示例,小编觉得还是挺不错的,具有一定借鉴价值,需要的朋友可以参考下
  • java访问控制权限和C++访问控制权限的对比

    1、java修饰符权限

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

    2、C++修饰符权限

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

    展开全文
  • 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中的访问控制权限,在Java中,提供了四种访问权限控制,分别是默认访问权限、public、private以及protected,感兴趣的小伙伴们可以参考一下
  • 摘要:Java源码,文件操作,权限控制 Java访问权限控制,为Java操作文件、写入文件分配合适的权限,定义写到文件的信息、定义文件,输出到c:/hello.txt、写信息到文件、关闭输出流。
  • Java学习-访问权限控制

    千次阅读 2020-08-08 23:12:38
    Java学习-访问权限控制 1、为什么要有访问权限控制? 2、包:库单元 3、Java访问权限修饰词 1、为什么要有访问权限控制? 访问控制(或隐藏具体实现)与“最初的实现并不恰当”有关。 所有优秀的作者,包括那些...

    Java学习-访问权限控制

    1、为什么要有访问权限控制?

    2、包:库单元

    3、Java访问权限修饰词


    1、为什么要有访问权限控制?

    访问控制(或隐藏具体实现)与“最初的实现并不恰当”有关。
           所有优秀的作者,包括那些编写软件的程序员,都清楚其著作的某些部分直至重新创作的时候才变得完美,有时甚至要反复重写多次。如果你把一个代码段放到了某个位置,等过一会儿回头再看时,有可能会发现有更好的方式去实现相同的功能。这正是重构的原动力之一,重构即重写代码,以使得它更可读、更易理解,并因此而更具可维护性。但是,在这种修改和完善代码的愿望之下,也存在着巨大的压力。通常总是会有一些消费者(客户端程序员)需要你的代码在某些方面保持不变。因此你想改变代码,而他们却想让代码保持不变。由此而产生了在面向对象设计中需要考虑的一一个基本问题:“如何把变动的事物与保持不变的事物区分开来”。
           这对类库(library) 而言尤为重要。该类库的消费者必须依赖他所使用的那部分类库,并且能够知道如果类库出现了新版本,他们并不需要改写代码。从另一个方面来说,类库的开发者必须有权限进行修改和改进,并确保客户代码不会因为这些改动而受到影响。 这一目标可以通过约定来达到。例如,类库开发者必须同意在改动类库中的类时不得删除任何现有方法,因为那样会破坏客户端程序员的代码。但是,与之相反的情况会更加棘手。在有域(即数据成员)存在的情况下,类库开发者要怎样才能知道究竟都有哪些域已经被客户端程序员所调用了呢?这对于方法仅为类的实现的一部分,因此并不想让客户端程序员直接使用的情况来说同样如此。如果程序开发者想要移除旧的实现而要添加新的实现时,结果将会怎样呢?改动任何一个成员都有可能破坏客户端程序员的代码。于是类库开发者会手脚被缚,无法对任何事物进行改动。
          为了解决这一问题,Java提供了访问权限修饰词,以供类库开发人员向客户端程序员指明
    哪些是可用的,哪些是不可用的。访向权限控制的等级,从最大权限到最小权限依次为:

    public、protected、包访问权限(没有关键词称为"缺省")和private

    构件类库的概念以及对于谁有权取用该类库构件的控制问题都还是不完善的。其中仍旧存在着如何将构件捆绑到一个内聚的类库单元中的问题。对于这一点,Java用关键字package加以控制,而访问权限修饰词会因类是存在于一个相同的包,还是存在于一个单独的包而受到影响。

    2、包:库单元

    包内包含有一组类,它们在单一的名字空间之下被组织到一起。

          例如,在Java的标准发布中有一个工具库,它被组织在java.util名字空间下。java.util中有一个叫做ArrayList的类,使用ArrayList的一种方式是用其全名java.util.ArrayList来指定。

    public class F{
        public static void main(String[] args)
        {
            java.util.ArrayList list = new java.util.ArrayList();
        }
    }

    这样就使得程序变得很冗长,因此可以转而用import关键字,如果想要导入单个的类,可以在import语句中命名该类:

    import java.util.ArrayList;
    public class F{
        public static void main(String[] args)
        {
            ArrayList list = new java.util.ArrayList();
        }
    }

    现在,就可以不用限定地使用ArrayList了。但是,这样做java.util中的其他类仍旧是都不可以使用的。要想导入其中的所有类,只需要使用"*"

    import java.util.*

    Java常用的类库:

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

    比如在test包下的test.java文件(编译单元)里面只能有一个和文件名称相同的public 类也就是里面的test类Person类就不能加public限定符了。

    同一个test包名下的类test02可以调用Person类

    在另一个test03包名下的类test03就不能调用Person类了即使导入了包也不能,

    因为它不是public类型的

    3、Java访问权限修饰词

    • public:接口访问权限(无论是谁,无论在哪都可以访问

    使用关键字public,就意味着public之后紧跟着的成员声明自己对每个人都是有用的,尤其是使用类库的客户程序员更是如此。

    • protected:继承访问权限(子类可以访问父类的public成员和protected成员,但不可以访问父类的private成员
    • (缺省):包访问权限(类内部和同一个包里面的类可以访问(缺省)成员

    因为(缺省)没有修饰词,形式如int age ,也就是前面没有任何修饰词

    • private:你无法访问(除了包含该类成员的类之外,其他任何类都无法访问这个成员

    为了方便理解和比较准备了以下两张图片

    欢迎持续关注!
    个人博客站:jQueryZK Blog

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

    千次阅读 2013-11-14 23:01:38
    访问控制符的等级,从最大权限到最小权限依次为:public、protected、包访问权限(没有关键词)、private 1.包:库单元 package 包内包含有一组类,它们在单一的名字空间之下被组织在了一起。 import关键字:如果要...
  • JAVA访问权限控制

    千次阅读 2013-09-01 14:12:10
    Java提供了public, private, protected 三个访问权限修饰词,提供了以下四种访问权限控制机制: 1、包访问权限; 2、Public访问权限; 3、Private访问权限; 4、Protected访问权限;   1、包...
  • 本篇文章主要介绍 Java访问权限控制
  • 主要介绍了Java类成员访问权限控制知识总结,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
  • 主要给大家介绍了关于Java访问权限控制的重要性的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
  • Java访问权限控制源代码.rar
  • Java访问控制权限范围如下表所示,其中要注意的是“protected”。被这个访问控制符修饰的属性或方法也能被同一个包内非继承关系的类所访问。  ...
  • Java访问权限控制简述

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

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

    千次阅读 2017-08-22 21:40:17
    访问控制(或隐藏具体实现)与“最初实现并不恰当”有关。 —— 摘自JAVA编程思想 1. 代码会被重构。最初实现的代码并不是最好的(可维护性角度考虑)。 2. 消费者(客户端程序员)需要代码在某些方面不变。...
  • java访问权限控制

    千次阅读 2012-07-26 10:35:02
    Java中的访问修饰符(访问控制符)包括:... 从字面含义上面理解,很显然,这几个访问控制符(public -> protected -> default ->private)所代表的访问权限是依次递减的。那么,所谓的访问权限是相对什么来说的
  • java四种访问控制权限的总结

    万次阅读 多人点赞 2018-03-09 10:59:47
    今天看了一眼java基础,看到了java的...他们的具体访问权限都是什么呢,我用例子来分析一下。 这里要分几个情景,内部访问,继承关系,同包,不同包,首先我们要创建两个包: com.test.accessrights.pk1和com.test...
  • Java 访问权限控制:你真的了解 protected 关键字吗?

    万次阅读 多人点赞 2017-03-12 22:54:47
    Java中,类成员访问权限修饰词有四类:private,无(包访问权限),protected 和 public,而其中只有包访问权限和public才能修饰一个类(内部类除外)。特别地,很多Java书籍对protected可见性的介绍都比较笼统,...
  • 本篇文章主要介绍了Java之路(五) 访问权限控制 ,小编觉得挺不错的,现在分享给大家,也给大家做个参考。
  • Java中的访问控制权限

    千次阅读 2018-07-19 21:08:31
    Java 中是如何对访问权限进行控制的 ? Java 中的访问控制权限可以分为 4 级 ,分别是 public ,protected ,default ,private 。放一张看了很多遍却不一定记住的图 。 图中打 Yes 即表示可以访问 ,举例说在同...
  • 主要介绍了Java import导入及访问控制权限修饰符过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
  • Java - Thinking in Java 第6章 访问权限控制.pdf

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 200,785
精华内容 80,314
关键字:

java控制访问权限

java 订阅