精华内容
下载资源
问答
  • Java访问权限修饰符

    2017-03-06 16:49:06
    Java访问权限修饰符 一句话总结 修饰符使用情况Java访问权限修饰符  Java的访问权限修饰符一共有四个:private,默认的(default),protected,public。其中,默认的权限是friendly。 权限修饰符 同包中子 ...

    Java访问权限修饰符

      Java的访问权限修饰符一共有四个:private,默认的(default),protected,public。其中,默认的权限是friendly

    权限修饰符 本类 同包中子类 同包其他类 不同包中子类 不同包中其他类
    private 可见 × × × ×
    默认的 可见 可见 可见 × ×
    protected 可见 可见 可见 可见 ×
    public 可见 可见 可见 可见 可见

    一句话总结

    • private:同一个类中可见。
    • default:同一个包中可见。
    • protected:只在同一个包和子类中可见。
    • public:所有包都可见。

    修饰符使用情况

    • 修饰类名

      • 类名的修饰符只有:public,abstract,static, final,friendly
      • friendly修饰的类是友好类,另外的类用它创建对象,要保证在同一个包中。默认权限嘛。如果不在同一个包中,创建对象的时候就要导包了。导包这个问题,在使用IDE的时候根本就不叫事。
    • 修饰符号与继承

      • 子类和父类在同一包中。只有private修饰的变量和方法不能继承访问。
      • 子类和父类不在同一个包中。 private和friendly修饰的变量和方法都不能继承访问,protected与public可以继承访问。
    展开全文
  • Java 中的权限修饰符主要包括private、public和protected,这些修饰符控制着的成员变量以及成员方法的访问。 private:如果一个的成员变量或成员方法被修饰为private,则该的成员变量只能在本中被使用...

    Java 中的权限修饰符主要包括private、public和protected,这些修饰符控制着类和类的成员变量以及成员方法的访问。

    private:如果一个类的成员变量或成员方法被修饰为private,则该类的成员变量只能在本类中被使用,在子类中是不可见的,并且对其他包的类也是不可见的。

    public:除了可以在本类中使用这些数据之外,还可以在子类和其他包的类中使用。

    protected:只有在本包中的该类的子类或其它类可以访问此类中的成员变量和成员方法。

    注意:当声明类时不使用public、protected和private修饰符设置类的权限,则这个类预设为包存取范围,即只有一个包中得类可以的调用这个类的成员变量或方法。

    package com.lb;
    class AnyClass{
            public void doString(){
                ...//方法体
            }
    }

    在上述代码中,由于类的修饰符为默认修饰符,即只有一个包内的其他子类可以对该类进行访问,而AnyClass类中的doString()方法却又被设置为public权限,即使这样,doString()方法的访问权限依然与AnyClass类访问权限相同。
    展开全文
  • Java访问权限修饰符详解

    千次阅读 2018-05-14 10:04:54
    Java中的访问权限修饰符Java关键字)今天很皮的发现,自己现在竟然不会玩儿Java基础了,就翻看了一下自己的笔记,写一篇文章复习一下!测试环境:Java运行环境,myEclipse。测试前准备:实体包(Student,...

    Java中的访问权限修饰符(Java关键字)

    今天很皮的发现,自己现在竟然不会玩儿Java基础了,就翻看了一下自己的笔记,写一篇文章复习一下!

    测试环境:Java运行环境,myEclipse。

    测试前准备:实体类包(Student类,Teacher类),测试类包(TestPublic类,TestProtected类,TestPrivate类)。

        首先让我们想想这四种修饰符:public,protected,default(也有叫frendly的,不过两个都通不过编译,不写就是这个修饰符了),private。

    测试开始

        修饰类时:当访问权限修饰符修饰类的时候,只能使用默认的修饰符和public修饰符,在不适用public的时候在不同的包中不可以访问到这个类,在Java这种面向对象编程的语言来说,应该将类设置成public的类,使用了public修饰的类可以导入到任何的类中,而不修饰的类只能在本包中使用。
           没有修饰的类Teacher类:
        相同的包下,可以任意使用:

        不同的包,访问不到:


        修饰其它时:当访问权限修饰符修饰成员方法和成员变量的时候,这四种修饰符代表了四种访问权限,我们可以开始测试。
        1:首先建立实体包和一个测试包,我们在这个entity包中写一个Student类,其中写入八个元素,为了测试的方便,我们可以都将其用static进行修饰,四个变量和四个方法分别用不同的修饰符修饰。
        
        2:在测试包中写TestPublic测试类,可以看到通过类名调用的成员变量和成员方法只有public修饰符修饰的通过了编译。

        3:在测试包中写TestProtected测试类并继承自Student类,可以看到通过类名调用的成员变量和成员方法使用public和protected修饰符修饰的通过了编译。

        4:在实体包中写TestDefault测试类并继承自Student类,可以看到通过类名调用的成员变量和成员方法只有private修饰符修饰的没有通过编译。

        5:回到Student实体类中,会发现使用private修饰的成员方法和成员变量被黄线抬起来了,鼠标悬浮上去,成员变量提示要么删除这个变量,要么提供getter和setter方法,要么加上注解表示这个成员变量不使用。而成员方法是不可能有getter和setter方法的,这些说明了什么,说明了private的访问范围。
        总结如下:
            1:public修饰的变量或者方法在不同包中,相同包中,子类中,当前类中都是可以直接访问的。
            2:protected修饰的变量或者方法在相同包中,子类中当前类中都是可以直接访问的,在不同包中的类则不能访问。
            3:default(也就是默认的)的变量或者方法在相同包中当前类中都是可以直接访问的,在不同包中,即便是子类中也不能访问。
            4:private修饰的变量或者方法只能在当前类中都是直接访问,在不同类中就不能访问,只能提供向外的公开的方法去调用,也就是面向对象的封装(这里暂时不提面向对象)。
        关系图如下:
    作用域
    当前类
    同一包
    子孙类
    其它包
    public
    protected

    default(friendly)


    private



    展开全文
  • 最近重温了Java中权限修饰符和包的知识点,才发现上一篇关于这个知识点的博客(Java权限修饰符的访问权限大小以及里面涉及到包的细节)理解存在着不小的偏差,特来补进一下,毕竟学知识嘛,越到后面理解才越深。...

    自从用eclipse写Java代码后,虽然效率得到了解放。但是很多Java有关的概念一下子弱了很多。没办法,自动提示、自动导包、自动这自动那的...最近重温了Java中权限修饰符和包的知识点,才发现上一篇关于这个知识点的博客(Java权限修饰符的访问权限大小以及里面涉及到包的细节)理解存在着不小的偏差,特来补进一下,毕竟学知识嘛,越到后面理解才越深。

    一、权限修饰符修饰外部类的包内包外情况分析:

    1、首先能修饰外部类的权限修饰符只有public和default,为什么不能是private和protected呢?

    这是因为:我们知道外部类中的成员(成员变量、成员方法、嵌套类等)的上层结构是类,而外部类的上层结构是包。

    ① 如果外部类使用private修饰,表明该包下的这个类被私有,无法被其它类访问,那就根本谈不上继承、多态这些的特征,因此该类也失去了存在的意义,所以不能使用private来修饰类。而且编译也通不过:Illegal modifier for the class XXX; only public, abstract & final are permitted,意思是:非法修饰符,只允许用 public, abstract,final来修饰外部类。

    ② 如果外部类使用protected修饰,表示该类所在的包的其它类可以访问该类;或该类所在的包的子包的类可以访问该类,但是包没有继承的概念,所以后一句是不对。所以用protected来修饰外部类也是没有意义的。

    综上,类只有public和default修饰可以修饰外部类。

    2、default修饰外部类,则该外部类相当于被封装在包内。

    包内:该外部类出现在包内的其他类中不需要加包名;

    包外:该外部类无法存在于包外的其他类中,即使导包也没用。

    3、public修饰外部类,该类不仅能被包内的其他类所访问,也能被包外的其他类所访问。

    包内:该外部类出现在包内的其他类中则不需要加包名;

    包外:该外部类若想被包外的其他类中所访问,可以在类名前面加上包名,也可以通过import关键字进行导包。

    二、权限修饰符修饰成员的包内包外情况分析:

    ps:因为静态成员方法相当于和方法所在类所绑定,可以直接通过方类名去调用,也可以通过方法所在类的对象来调用(相当于非静态方法的调用了)。为了方便,都以权限修饰符修饰非静态成员方法进行分析,权限修饰符修饰成员变量是一个道理,就不浪费空间了

    1、public修饰成员方法

    包内:可以在包中任意类中直接创建该方法所在类或子类的对象进行方法的调用;

    包外:可以在包外任意类中直接创建该方法所在类或子类的对象进行方法的调用。

    2、protected修饰成员方法:最想写的就是这个修饰符,它是专门为子类所提供的一个权限修饰符。

    包内:可以在包中任意类中直接创建该方法所在类或子类的对象进行方法的调用;

    包外:只能创建该方法所在类的子类的对象进行方法的调用,方法所在类的对象无法进行调用。

    3、default修饰成员方法:则该外方法相当于被封装在包内了。

    包内:可以在包中任意类中直接创建该方法所在类或子类的对象进行方法的调用;

    包外:无法访问该方法。

    4、private修饰成员方法:则该外方法相当于被封装在类中了。

    包内:仅在方法所在类中可以被访问,包中其他类也无法访问;

    包外:无法访问该方法。

    小结一下:

    ① 外部类仅能被public和default修饰。倘若外部类被default修饰则只能在包内中进行访问;被public修饰既能在包内中进行访问也能在包外访问,在包外出现时必须带上包名,否则就导包。

    ② 成员可以被4中权限修饰符所修饰,由大到小依次为public、protected、default、private。其中该成员若想在包外被调用,则只能用public和protected权限修饰符所修饰。包外:成员被public修饰时,方法所在类的对象和子类的对象都能调用;成员被protected修饰时,只有子类的对象能调用。

    ps:纯属个人见解,若有不对之处,欢迎大家批评指正!

    展开全文
  • Java权限修饰符

    千次阅读 2018-06-26 09:45:49
    一、Java的修饰符的分类:权限修饰符:public、默认(包访问权限)、protected、private其他修饰符:abstract、static、fianl、transient、volatile、native、synchronized、strictrp二、权限修饰符: 权限修饰符:...
  • java访问权限修饰符

    2014-03-11 19:27:36
    Java访问权限修饰符
  • Java权限修饰符

    2016-04-28 22:13:15
    Java权限修饰符:public,默认,protected,private。 java中的修饰符:abstract,final,static。abstract:只有抽象和抽想方法,继承抽象必须实现所有的抽象方法。final:final无法被继承,final的方法...
  • Java 权限修饰符

    2016-12-05 00:04:56
    Java 权限修饰符权限修饰符 可修饰列表 修饰符 成员变量 成员方法 构造方法 private Y Y Y 默认 Y Y Y Y protected Y Y Y public Y Y Y Y abstract Y Y static Y Y Y
  • java四大权限修饰符作用范围 public protected default private 同一个 √ √ √ √ 同一个包 √ √ √ 子类(可不同包) √ √ 不同包 √ private(私有的) private可以修饰成员变量,成员...
  • java权限修饰符

    2020-05-10 16:43:12
    java权限修饰符 java权限修饰符 public > protected > (default) > private 外部: public / (default) 只有这两种方式修饰 成员内部: public > protected > (default) > ...
  • java权限修饰符

    2015-12-31 16:42:40
    Java有四种访问权限, 其中三种有访问权限修饰符,分别为private,public和protected,还有一种不带任何修饰符。 private: Java语言中对访问权限限制的最窄的修饰符,一般称之为“私有的”。被其修饰的、属性以及...
  • java权限修饰符+特征修饰 一. 权限修饰符 1. public - 共有的-可以在本项目中任意位置使用 2.protected-保护的-可以在本、同包、子类中使用 3.默认-默认的-可以在本、同包中使用 4.private-私有的-可以...
  • java四大权限修饰符之间的区别

    万次阅读 2018-09-10 10:23:19
    java中有四大修饰符,分别为private,default,protected,public,下面主要是四者之间的区别: - private(私有的) private可以修饰成员变量,成员方法,构造方法,不能修饰(此刻指的是外部,内部不加以考虑)...
  • JAVA_权限修饰符

    2016-07-11 16:31:08
    修饰符只有是public和默认两种。 成员函数和对象的修饰符可以达到四种,
  • java中的权限修饰符和修饰符

    千次阅读 2015-09-25 21:40:41
    Java中有很多的权限修饰符和修饰符,往往我们在编程的时候,不能正确的使用这些修饰符,甚至有的人根本分不清权限修饰符和修饰符,
  • Java访问权限修饰符的区别

    万次阅读 多人点赞 2016-01-15 15:07:58
    Java有四种访问权限,其中三种有访问权限修饰符,分别为private,public和protected,还有一种不带任何修饰符
  • java 访问权限修饰符理解

    千次阅读 2016-04-07 19:26:50
    访问权限修饰符 a、私有权限(private)  private可以修饰数据成员,构造方法,方法成员,不能修饰(此处指外部,不考虑内部)。被private修饰的成员,只能在定义它们的中使用,在其他中不能调用。  ...
  • Java权限修饰符解析

    千次阅读 2015-11-22 10:29:37
    前言:在面向对象编程语言中,我们常用的权限修饰符有四种,分别是:private、public、protected和默认修饰符,那么被这四种权限修饰符修饰的方法在不同的中调用都有什么特点呢?除了修饰方法,它们还能够修饰什么...
  • Java__权限修饰符

    2016-11-16 22:46:49
    Java权限修饰符public, protected, private置于的成员定义前,用来限定其他对象对该对象成员的访问权限。 | 修饰符 | 内部 |同一个包 | 子类 | 任何地方 | | private |Yes | | | | | default
  • Java四大权限修饰符

    2017-10-28 12:10:54
    客户端程序员:在他的开发代码中使用别人已写好的人,了解别人已写好的具体属性,方法(传入的参数,方法所实现的功能,返还值),但不必了解功能实现的具体细节. 2.创建者:写好供别人或自己使用的人,...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 77,182
精华内容 30,872
关键字:

java类的权限修饰符

java 订阅