博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
java类的访问权限
阅读量:6859 次
发布时间:2019-06-26

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

1.解析

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

  1. private: Java语言中对访问权限限制的最窄的修饰符,一般称之为“私有的”。被其修饰的类、属性以及方法只能被该类的对象访问,其子类不能访问,更不能允许跨包访问。
  2. default:即不加任何访问修饰符,通常称为“默认访问模式“。该模式下,只允许在同一个包中进行访问。
  3. protect: 介于public 和 private 之间的一种访问修饰符,一般称之为“保护形”。被其修饰的类、属性以及方法只能被类本身的方法及子类访问,即使子类在不同的包中也可以访问。
  4. public: Java语言中访问限制最宽的修饰符,一般称之为“公共的”。被其修饰的类、属性以及方法不仅可以跨类访问,而且允许跨包(package)访问。
下面用表格的形式来展示四种访问权限之间的异同点,这样会更加形象。表格如下所示:
 

同一个类

同一个包

不同包的子类

不同包的非子类

Private

     

Default

   

Protected

 

Public

2.Protected

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

accesscontrol.AccessControlDemo

View Code

accesscontrol.Base

View Code

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

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

test.AccessControlDemo

View Code

test.Bulk

View Code

 

 

 本文转自xwdreamer博客园博客,原文链接:http://www.cnblogs.com/xwdreamer/archive/2012/04/06/2434483.html,如需转载请自行联系原作者

你可能感兴趣的文章
python paramiko模块讲解
查看>>
Windows Phone 7 数据绑定的简单介绍
查看>>
每天一个知识点linux(二)关机重启命令
查看>>
以程序的方式操纵NTFS的文件权限(下)
查看>>
LVM逻辑卷管理
查看>>
zabbix与nagios对比
查看>>
MySQL源码安装完成后修改安装路径启动问题
查看>>
合并下载的Solaris镜像为DVD文件的方法
查看>>
设计ShartPoint的组织结构和成员
查看>>
shell编程入门步步高(一、shell简介)
查看>>
一个简单的HQL优化
查看>>
从股价说起 百神大战凸现百度与腾讯阿里差距
查看>>
MariaDB六之主从复制
查看>>
outlook cannot send this item
查看>>
【Win7下Android native code的编译和调试】
查看>>
【iOS-cocos2d-X 游戏开发之十】自定义各类模版&触屏事件讲解!
查看>>
域环境下如何保护重要资料文件的安全(二)---IRM&RMS(下)
查看>>
服务器升迁架构.png
查看>>
不能联系xx域的域控制器
查看>>
生产网络做portfast等配置对网络的影响
查看>>