访问权限控制
来源:互联网 发布:网络舆论是什么意思 编辑:程序博客网 时间:2024/05/21 09:09
在JAVA中,一共是4种访问权限修饰符
public protected default(默认修饰符,什么都不用写) private,其权限表如下
全部派生类包内部类内部publicYYYYprotectedNYYYdefaultNNYYprivateNNNY其中,public的权限最大,protected次之,default第三,private最小
对于public修饰的类,方法,字段,均可在任何地方访问
对于protected修饰的,则只可以在其派生类(继承)及相同包的类中进行访问
缺省的修饰符就是表格中的default,也就是在同一个包内可防伪
private表示只有在类的内部才可以使用该类,方法,字段。
eg1(public and default):
package access.dessert中有一个class Cookie
public class Cookie{
void bite(){};
}
package access中有一个class Dinner
那么在Dinner这个类中可以访问class cookie,比如 new Cookie();
但是不可以调用cookie.bite(),因为默认的修饰符是default,是包访问权限,而两个类的包不同,所以无法访问
虽然这两个类均来自与access这一个包中,但是在这里的包访问权限指的是这个类的上一级目录是否相同,而非指根目录
eg2(private):
class Sundae{<span style="white-space:pre"></span>private Sundae(){}<span style="white-space:pre"></span>static Sundae makeSundae(){<span style="white-space:pre"></span>return new Sundae();<span style="white-space:pre"></span>}}在这个例子中,将类的构造函数设置为private,则无法通过new Sundae()这一操作来实例化对象,如果一定要实例化对象,就必须通过Sundae.makeSundae()来实现,后续的单例模式会介绍这种做法。
eg3(protected)
protected修饰符提供了派生类,包,类的访问权限,其主要作用在于继承时候的字段修饰,例子如下:
还是eg1中的cookie class,如果不进行任何修改,在Dinner中试图访问bite方法时,会出现错误,因为没有访问权限
下面进行相应修改:
class Dinner extens Cookie
然后将cookie中的bite方法的修饰,改为protected,那么在Dinner中就可以正常访问了.
因为当我们继承一个类时,会将其类中的所有属性,所有方法,内部类都拷贝一份到派生类中(即使是private字段也是如此)。但是由于访问权限的原因,我们不一定能使用这些属性和方法。
protected修饰符提供了派生类的访问权限
所以如果继承于父类,那么父类中拥有的修饰符为public,protected的方法,属性是可以直接调用的!
- 访问权限控制
- 访问权限控制
- java访问权限控制
- 访问权限控制
- 访问权限控制
- JAVA 权限访问控制
- JAVA访问权限控制
- JAVA访问权限控制
- <六>访问权限控制
- Java 访问权限控制
- java 访问权限控制
- 权限访问控制设计
- JAVA访问权限控制
- java 访问权限控制
- 访问权限控制表
- 访问权限控制
- Java访问控制权限
- Java访问控制权限
- asio学习笔记1
- 重拾c语言数组与指针
- deep learning PCA(主成分分析)、主份重构、特征降维
- Maven导出Project依赖的jar包
- hibernate注解之简介(一)
- 访问权限控制
- python django 建表时的问题
- JQuery学习笔记之过滤性选择器
- asio学习笔记2
- Android TextView跑马灯效果
- BEGINNING SHAREPOINT® 2013 DEVELOPMENT 第15章节--开发SP2013工作流应用程序 SPD的新功能
- PHP的几种运行模式
- hibernate学习从XML入手
- 一些常见的端口