博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Java的类成员访问权限修饰词(以及类访问权限)
阅读量:7116 次
发布时间:2019-06-28

本文共 824 字,大约阅读时间需要 2 分钟。

hot3.png

 在一个类的内部,其成员(包括成员变量和成员函数)能否被其他类所访问,取决于该成员的修饰词。Java的类成员访问权限修饰词有四类:private,无(默认情况下),protected和public。其权限控制如下表所示:

   

修饰词 本类 同一个包的类 继承类 其他类
private × × ×
无(默认) × ×
protected ×
public

    其中,默认情况下没有任何修饰词,这样的类成员具有“包访问权”,即位于同一个包中的类对其有访问权;而protected为“继承访问权”,即该类的子类对其具有访问权(同时,位于同一个包中的类也对其具有访问权)。

    而对于Java中的“类”(不是其内部成员,两者要区分开),其访问权限修饰词仅有public和“无”(即包访问权)两种,而没有private和protected(有 一个特例,就是“内部类”,其可以是private或protected的)。所以对于类的访问权限,你仅有两个选择:包访问权或是public。如果你 不希望其他任何人对该类拥有访问权,你可以把所有的构造器都指定为private,从而阻止任何人创建该类的对象。但是有一个例外,就是在该类的 static成员内部进行创建。如:

    class Soup {

       // private Constructor!
       private Soup() {}
       // Allow creation via static method:
       public static Soup makeSoup() {
           return new Soup();
       }
    }

    另外,如果一个类的访问权限为“包访问权”,并且其内部有一个static的成员为public的话,则其他包中的类仍旧可以访问该static成员,哪怕它们并不能生成该类的对象。

转载于:https://my.oschina.net/dylan2hdf/blog/1498865

你可能感兴趣的文章
做一个自己的WiFi密码查看器——Android
查看>>
Webpack 4 使用指南
查看>>
iOS学习笔记20 地图(二)MapKit框架
查看>>
深度理解React项目的服务端渲染改造
查看>>
当linux报 “-bash: fork: 无法分配内存”
查看>>
同步/异步
查看>>
使用CSS实现逼真的水波纹点击效果
查看>>
[番外篇]k位精巧数
查看>>
Android-Application详解
查看>>
echarts 的使用
查看>>
iOS超全面试题,面试前看一看,不错<上篇>
查看>>
四个提升服务器数据安全的方法
查看>>
分分钟解决MySQL查询速度慢与性能差
查看>>
设计电商平台优惠券系统
查看>>
后来才知道的JavaScript自带函数
查看>>
spring cloud互联网分布式微服务云平台规划分析--spring cloud定时调度平台
查看>>
开源USM-AlienVault OSSIM
查看>>
postgreSQL 9.1 的安装、基本配置、简单使用
查看>>
JavaScript日期时间对象的创建与使用(三)
查看>>
PHP编程效率的20个要点
查看>>