`

Java中访问修饰符public、private、protecte、default

    博客分类:
  • java
 
阅读更多

Java中访问修饰符public、private、protecte、default的意义讲解:
public: Java语言中访问限制最宽的修饰符,一般称之为“公共的”。被其修饰的类、属性以及方法不
     仅可以跨类访问,而且允许跨包(package)访问。
private: Java语言中对访问权限限制的最窄的修饰符,一般称之为“私有的”。被其修饰的类、属性以
     及方法只能被该类的对象访问,其子类不能访问,更不能允许跨包访问。
protect: 介于public 和 private 之间的一种访问修饰符,一般称之为“保护形”。被其修饰的类、
     属性以及方法只能被类本身的方法及子类访问,即使子类在不同的包中也可以访问。
default:即不加任何访问修饰符,通常称为“默认访问模式“。该模式下,只允许在同一个包中进行访
     问。

 

类的只有两种public,default(不同包不可以访问

public--都可访问(公有)  
private--类内可访问(私有)
protected--包内和子类可访问(保护)
不写(default)--包内可访问 (默认)

public>protected>default>private

Java 方法默认访问级别 : 包访问
Java 类默认访问级别 : 包访问

 

对于一个Class的成员变量或成员函数,如果不用public, protected, private中的任何一个修饰,那么该成员获得“默认访问控制”级别,即package access (包访问)。

属于package access的成员可以被同一个包中的其他类访问,但不能被其他包的类访问。

包访问的控制力弱于private,但强于protected。因为一方面,只要是子类,不管子类与父类是否位于同一个包中,那么子类都可以访问父 类中的protected方法。但是一旦位于原类的包外,不管是否是其子类,都无法访问其属于package access级别的成员。而另一方面,一个类可以访问同一个包中另一个类的package access成员,同时也能访问其protected成员。

(注:package是Java中的关键字,虽然包访问也是一种访问控制级别,但关键字”package”只能用来表示类属于哪个包,而不能像”private”,”public”那样放到成员变量或函数前面,作为访问控制修饰符。)

访问级别保护的强度:public<protected<默认<private

分享到:
评论

相关推荐

    C++中的三种继承public,protected,private详细解析

    public:可以被任意实体访问 protected:只允许子类及本类的成员函数访问 private:只允许本类的成员函数访问 三种继承方式 public 继承 protect 继承 private 继承 组合结果 基类中 继承方式 子类中 public & public...

     python实践设计模式

    学习python有一段时间,之前就是看看书,最后发现只有实践才能真正学到东西...2.由于《DesignPatterns—ElementsofReusableObject-OrientedSoftware》一书采用的是C++来讲述设计模式,因此访问控制符(public、protecte

    api(彬)动态调用API-复制整个窗口增加了事件.e

    api(彬)动态调用API-复制整个窗口增加了事件.e

    C++面向对象课程序设计课件

    一、结构与类 C++中的类实际上是在C语言的结构体的基础上扩充得到的。即C++的结构体的成员中可用函数——成员函数: C++结构体的成员分为...数据成员分为公有成员(public)、私有成员(private)、保护成员(protecte

    PHP面向对象程序设计继承用法简单示例

    分享给大家供大家参考,具体如下: ...//如果$name是protected,private访问权限,那么将不能在类外被直接访问。 //如果$name是private访问权限,那么将只能在自身类里访问。 //如果$name是protecte

    Android实现EventBus登录界面与传值(粘性事件)

    本文实例为大家分享了Android实现EventBus登录界面与传值的具体代码,供大家参考,具体内容如下 展示效果 添加EventBus导入依赖 compile 'org.greenrobot:eventbus:3.0.0' 主MainActivity方法 ... protecte

    eavactiverecord:实现实体-属性-值模式并提供一种简单的方法来处理 EAV 属性。 EAV 属性作为单独的记录存储在数据库中,但访问和搜索的方式就像它们是实体表中的列一样

    EavActiveRecord 实现实体-属性-值模式并提供一种简单的方法来处理 EAV 属性。 EAV 属性作为单独的记录... 运行 SQL 脚本 mysql.sql 或 postgresql.sql(如果您的 DBMS 是 PostgreSQL)它位于以下文件夹中:“protecte

    Doubx:一个逗逼项目

    Doubx一个msgpack的rpc,服务端基于java预计特点轻量开发侵入少不维护参数定义package args;import org.msgpack.annotation.MessagePackMessage;... */ public class Hello extends Api { @Override protecte

    Asp.net(C#)读取数据库并生成JS文件制作首页图片切换效果(附demo源码下载)

    本文实例讲述了Asp.net(C#)读取数据库并生成JS文件制作首页图片切换效果的方法。分享给大家供大家参考,具体如下: using System;...public partial class _Default : System.Web.UI.Page { protecte

    PHP延迟静态绑定示例分享

    没怎么用过这个新特性,其实也不算新啦,试试吧,现在静态类的继承很方便了 &lt;?...class A { protected static $def = '123456'; public static function test() { echo get_class(new static);... protecte

    Geotrek-admin, 国家公园和旅游组织的路径管理.zip

    Geotrek-admin, 国家公园和旅游组织的路径管理 美国国家公园和旅游组织收费 Geotrek paths paths management management管理。 母版: 管理路径,treks和相关对象设备和基础设施的轨道维护按区域。protecte

    project-hub, 项目时间线的HTML模板.zip

    project-hub, 项目时间线的HTML模板 项目集线器以 24方式阅读有关项目集线器的更多信息。...:什么是项目中心为什么我要使用它?项目中心是跟踪设计项目进度的工具。 中心在线( 公开可用或者密码 protecte

    Android代码-StateProgressBar

    StateProgressBar StateProgressBar is an Android library to realize the various states and transitions in a ProgressBar. Quick Start Get a feel of how it works: Check the wiki for detailed...protecte

    C#实现WinForm捕获最小化事件的方法

    一般来说,虽然Form类没有提供Minimize的事件,但还是可以通过重载Deactive来实现WinForm捕获最小化事件。 实现方法为:当Form失去焦点后,测试WindowState取得Form状态,若为Minimized既是最小化事件。...protecte

    api-gateway-core:轻量级的API网关

    api-gateway-core api-gateway-core是一个轻量级的api网关 Background 随着公司各个项目的扩展,不同的项目之间和第三方出现了大量调用项目API的需求。此时就面临了一系列问题,例如:如何让各个项目安全地... protecte

    PHP制作万年历

    得到当前要处理的月份总共有多少天$days 得到当前要处理的月份的一号是星期几$dayofweek $days的作用:知道要处理的月份共有多少天,就可以通过循环输出天数了 $dayofweek的作用:只有知道每个月的1号是星期... protecte

    php权重计算方法代码分享

    复制代码 代码如下:&lt;?php/* vim: set expandtab tabstop=4 shiftwidth=4: */// +————————————————————————// Name : ...class weight { protected $aDict = array(array()); protecte

    FilteredArrayAdapter:适用于Android的FilteredArrayAdapter AutoCompleteTextView

    过滤阵列适配器 -ArrayAdapter,可以自定义过滤显示项。 是为android.widget.AutoCompleteTextView创建的,但可能在其他任何地方使用。 典型的实现可能如下所示: FilteredArrayAdapter&lt; Teacher&gt; ... protecte

Global site tag (gtag.js) - Google Analytics