精华内容
下载资源
问答
  • 我在A中定义个4个变量,权限修饰符,分别是public,private,protected,默认 我为什么无法通过b包中C(已经继承了A),来获取a包中Aprotected属性? https://my.oschina.net/u/1169535/blog/403589 ...
  • private: Java语言中对访问权限限制最窄修饰符,一般称之为“私有”。被其修饰类、属性以及方法只能被该类对象访问,其子类不能访问,更不能允许跨包访问。default:即不加任何访问修饰符,通常称为“默认...

    1.解析

    Java有四种访问权限, 其中三种有访问权限修饰符,分别为private,public和protected,还有一种不带任何修饰符。

    private: Java语言中对访问权限限制的最窄的修饰符,一般称之为“私有的”。被其修饰的类、属性以及方法只能被该类的对象访问,其子类不能访问,更不能允许跨包访问。

    default:即不加任何访问修饰符,通常称为“默认访问模式“。该模式下,只允许在同一个包中进行访问。

    protect: 介于public 和 private 之间的一种访问修饰符,一般称之为“保护形”。被其修饰的类、属性以及方法只能被类本身的方法及子类访问,即使子类在不同的包中也可以访问。

    public: Java语言中访问限制最宽的修饰符,一般称之为“公共的”。被其修饰的类、属性以及方法不仅可以跨类访问,而且允许跨包(package)访问。

    下面用表格的形式来展示四种访问权限之间的异同点,这样会更加形象。表格如下所示:

    同一个类

    同一个包

    不同包的子类

    不同包的非子类

    Private

    Default

    Protected

    Public

    2.Protected

    假设在包accesscontrol下面有AccessControlDemo和 Base 两个类,其中protected double price;是Base类的成员变量,因为两个类在同一个包中,所以在AccessControlDemo类中可以直接访问System.out.println(base.price);具体实例如下:

    accesscontrol.AccessControlDemo

    36194426_1.gifView Code

    accesscontrol.Base

    36194426_1.gifView Code

    但是假如我们将AccessControlDemo这个类移到test这个包中,我们会发现eclipse中提示错误,编译无法通过,因为在test包中对protected类型的成员变量不可见。

    假如我们在test包中创建一个Base类的子类Bulk,也就是说Bulk是Base类不同包的子类。那么在Bulk类中能够直接访问protected double price;这个基层自Base类的成员变量,实例如下:

    test.AccessControlDemo

    36194426_1.gifView Code

    test.Bulk

    36194426_1.gifView Code

    展开全文
  • ❝ 所谓访问权限,指就是本类中成员变量、成员方法...对客户端代码就会造成一定影响引入访问权限的概念就变得尤为重要Java中有四种访问权限,分别是「public、protected、包访问权限(默认)、private」,如果...

    9961e1f5ad33871d3b05747e294f4eea.png

    6b6ada434cd2264434e30fde153d2479.png

    ❝ 所谓访问权限,指的就是本类中的成员变量、成员方法对其他类的可见性

    试想一想,当我们修改一个非常庞大的项目时,如果所有变量和方法都是公共权限,那么后端中任何类都有权限去修改它的变量和方法,很有可能修改后就导致项目无法运行,对客户端的代码就会造成一定的影响

    引入访问权限的概念就变得尤为重要

    Java中有四种访问权限,分别是「public、protected、包访问权限(默认)、private」,如果省略了访问修饰符,那默认访问权限为「包访问权限」。 这四种权限从「最大权限」「最小权限」分别是: public > protected > 包访问权限> private

    类的成员变量和方法访问权限

    放一个看了很久却不一定记住的表:

    ble data-draft-node="block" data-draft-type="table" data-size="normal" data-row-style="normal">

    「包访问权限:」 没有任何修饰符的权限就是「包访问权限」,意味着当前包的所有类都可以访问这个成员,如表中所示,对于本包之外的类,这个成员就变成了「private」,访问不了

    「public:」 被public修饰的成员对任意一个类都是可用的,任何一个类都可以访问到,通过操作该类的对象随意访问「public」成员

    「protected:」 在相同的class内部,同一个包内和其他包的子类中能被访问。要理解「protected」权限,就需要了解「继承」,因为这个权限处理的就是继承相关的概念,继承而来的子类可以访问「public、protected」

    「private:」 除了包含这个成员的类之外,所有类都无法访问这个成员,相当于自我封闭,防止其他类改变或删除这个方法

    类的访问权限

    Java中的访问权限也可以用来修饰类。不过需要注意,对于普通类而言,类的访问权限仅有「public」「包访问权限」

    · 如果一个类声明的时候用了「public」,则该类的类名必须与文件名一致,包括大小写,如果不匹配,会有编译错误

    · 每个编译单元(文件)都只能有一个public类

    · 当然不带public也是可以的,这时可以随时对文件命名

    总结

    对成员进行访问控制还是非常重要的,可以防止他人触碰那些不该触碰的部分,也可以清楚的了解哪些是重要的,哪些是可以忽略的,简化了对类的理解

    展开全文
  • private: Java语言中对访问权限限制最窄修饰符,一般称之为“私有”。被其修饰类、属性以及方法只能被该类对象访问,其子类不能访问,更不能允许跨包访问。default:即不加任何访问修饰符,通常称为“默认...

    1.解析

    Java有四种访问权限, 其中三种有访问权限修饰符,分别为private,public和protected,还有一种不带任何修饰符。

    private: Java语言中对访问权限限制的最窄的修饰符,一般称之为“私有的”。被其修饰的类、属性以及方法只能被该类的对象访问,其子类不能访问,更不能允许跨包访问。

    default:即不加任何访问修饰符,通常称为“默认访问模式“。该模式下,只允许在同一个包中进行访问。

    protect: 介于public 和 private 之间的一种访问修饰符,一般称之为“保护形”。被其修饰的类、属性以及方法只能被类本身的方法及子类访问,即使子类在不同的包中也可以访问。

    public: Java语言中访问限制最宽的修饰符,一般称之为“公共的”。被其修饰的类、属性以及方法不仅可以跨类访问,而且允许跨包(package)访问。

    下面用表格的形式来展示四种访问权限之间的异同点,这样会更加形象。表格如下所示:

    同一个类

    同一个包

    不同包的子类

    不同包的非子类

    Private

    Default

    Protected

    Public

    2.Protected

    假设在包accesscontrol下面有AccessControlDemo和 Base 两个类,其中protected double price;是Base类的成员变量,因为两个类在同一个包中,所以在AccessControlDemo类中可以直接访问System.out.println(base.price);具体实例如下:

    accesscontrol.AccessControlDemo

    8f900a89c6347c561fdf2122f13be562.png

    961ddebeb323a10fe0623af514929fc1.pngView Code

    packageaccesscontrol;public classAccessControlDemo {public static voidmain(String[] args) {//TODO Auto-generated method stub

    Base base=new Base("123-1",120.1);

    System.out.println(base.price);

    }

    }

    accesscontrol.Base

    8f900a89c6347c561fdf2122f13be562.png

    961ddebeb323a10fe0623af514929fc1.pngView Code

    packageaccesscontrol;public classBase {privateString isbn;protected doubleprice;//默认构造函数

    publicBase() {

    }//构造函数,如果只定义带参数的构造函数而不定义默认构造函数,那么Base的子类必须定义显式构造函数//Implicit super constructor Base() is undefined for default constructor. Must define an explicit

    public Base(String isbn, doubleprice) {this.isbn =isbn;this.price =price;

    }publicString getIsbn() {returnisbn;

    }public voidsetIsbn(String isbn) {this.isbn =isbn;

    }public doublegetPrice() {returnprice;

    }public void setPrice(doubleprice) {this.price =price;

    }

    }

    但是假如我们将AccessControlDemo这个类移到test这个包中,我们会发现eclipse中提示错误,编译无法通过,因为在test包中对protected类型的成员变量不可见。

    假如我们在test包中创建一个Base类的子类Bulk,也就是说Bulk是Base类不同包的子类。那么在Bulk类中能够直接访问protected double price;这个基层自Base类的成员变量,实例如下:

    test.AccessControlDemo

    8f900a89c6347c561fdf2122f13be562.png

    961ddebeb323a10fe0623af514929fc1.pngView Code

    packagetest;public classAccessControlDemo {public static voidmain(String[] args) {

    Bulk bulk=new Bulk("123-1",120.1);

    bulk.print();

    }

    }

    test.Bulk

    8f900a89c6347c561fdf2122f13be562.png

    961ddebeb323a10fe0623af514929fc1.pngView Code

    packagetest;importaccesscontrol.Base;public class Bulk extendsBase {publicBulk() {super();

    }public Bulk(String isbn, doubleprice) {super(isbn, price);

    }public voidprint()

    {

    System.out.println(this.price);

    }

    }

    展开全文
  • java的访问权限

    2017-04-21 14:15:42
    java的访问权限

    java的访问权限

     Java语言中有4中访问修饰符:friendly(默认)、private、public和protected。

    public :能被所有的类(接口、成员)访问。

    protected:只能被本类、同一个包中的类访问;如果在其他包中被访问,则必须是该成员所属类的子类

    private:成员变量和方法都只能在定义它的类中被访问,其他类都访问不到。对成员变量的进行获取和更改,一般用get(),set() ,public 方法。实现了Java面向对象的封装思想。

    friendly(缺省):访问权限与protected相似,但修饰类成员时不同包中的子类不能访问

     

    其他的修饰符

    static:修饰变量,称为类变量或静态变量。静态变量是和类存在一起的,每个实例共享这个静态变量,在类加载时初始化。

    final:被声明为final的变量必须在声明时给定初值,而在以后的引用中只能读取不能更改。修饰类是不能派生出子类,修饰方法时,不能被当前子类的方法覆盖。

    abstract:不能创建abstract 类的实例。一般被继承,实现抽象方法。类只要有一个abstract方法,类就必须定义为abstract,但abstract类不一定非要保护abstract方法不可。

     

    访问权限图

     

     

     

      方法重载时,private修饰的方法重写,语法不报错,可以通过编译, 但是调用时不会使用新写的方法,仍然调用父类的方法。

    展开全文
  • Java提供了public, private...1、包访问权限访问权限Java为了便于程序员开发而给定一种权限选择。当方法或域未给定访问权限限制符时,其默认具有该权限。具有该权限的方法和域成员,在包内是完全可见(注意要...
  • ❝ 所谓访问权限,指就是本类中成员变量、成员...对客户端代码就会造成一定影响引入访问权限的概念就变得尤为重要Java中有四种访问权限,分别是「public、protected、包访问权限(默认)、private」,如果省...
  • Java的访问权限

    千次阅读 2019-08-02 23:39:02
    Java的访问权限1 类的访问权限2 类成员的访问权限3 方法重写(覆盖)中的访问权限    1 类的访问权限   类的访问权限: 公共类, 非公共类   使用public修饰类就是公共类, 没有使用public修饰就是非公共类  ...
  • Java四种访问权限的简单解释Java四种访问权限的简单解释四种权限的范围1. private表示只能在单个类中访问如图所示,并且提示改更改为默认,默认不写就行,无关键字2. default(无关键字,留空即默认)同一个包下类都...
  • Java的访问权限控制

    2020-07-29 08:22:59
    本篇文章是基于Java编程思想整理的Java访问权限控制相关知识,主要介绍了Java区分访问权限的原因,包导入,以及相关的访问权限修饰符,类的访问权限
  • Java访问权限

    2017-07-30 23:46:45
    你真了解Java访问权限吗?类中默认访问权限和接口中默认是一回事吗?protected和包访问权限又有什么区别呢?
  • java访问权限

    2017-11-02 12:19:06
    Java的访问权限有四种,分别是public,private , protected 以及默认访问权限 public:任何类都可以访问public所修饰的元素 private:只有本类中的方法可以访问 protected:与private权限相当,不过protected...
  • Java的访问权限

    2015-11-18 19:18:15
    Java有四种访问权限, 其中三种有访问权限修饰符,分别为private,default,protected,public。其中default也称为package的访问权限。 如下表所示: 这里需要注意是,对于protected,所谓不同包中子类...
  • java的访问控制权限

    2020-11-28 23:40:13
    private: Java语言中对访问权限限制最窄修饰符,一般称之为“私有”。被其修饰类、属性以及方法只能被该类对象访问,其子类不能访问,更不能允许跨包访问。 protect: 介于public 和 private 之间一种...
  • JAVA的访问权限

    2018-09-01 10:57:50
    private: Java语言中对访问权限限制最窄修饰符,一般称之为“私有”。被其修饰属性以及方法只能被该类对象访问,其子类不能访问,更不能允许跨包访问。 default:即不加任何访问修饰符,通常称为“默认...
  • java 访问权限

    2014-04-15 20:37:06
    Java的访问权限控制修饰符,从最大权限到最小权限依次是:public、protected、包访问权限(默认,没有关键字)和private。对于类的访问权限只能是:public和包访问权限(但内部类可以是private或protected的);对于类...
  • Java 访问权限的控制

    2017-04-14 12:09:05
    Java访问权限的控制常被称为具体实现隐藏。把数据和方法包装进类中,以及具体实现隐藏,统称为封装。封装结果是一个同时带有特征和行为数据类型。 Java中,有public、protected、private 三个访问权限...
  • JAVA的访问权限

    2018-04-06 11:54:05
    JAVA的访问权限   private 默认访问权限 protected public 类本身 √ √ √ √ 相同包中子类 × √ √ √ 相同包中的非子类 × √ √ √ 不同包中的子类 × × √ √ 不同包中的非子类子类 × × × ...
  • java的访问权限

    千次阅读 2018-10-01 17:26:57
    1.解析 Java有四种访问权限, 其中三种有访问权限修饰符,分别为private...private: Java语言中对访问权限限制最窄修饰符,一般称之为“私有”。被其修饰类、属性以及方法只能被该类对象访问,其子类不...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 16,367
精华内容 6,546
关键字:

java的权限访问

java 订阅