Java提供了public, private, protected 三个访问权限修饰词,提供了以下四种访问权限控制机制:

1、包访问权限;

2、Public访问权限;

3、Private访问权限;

4、Protected访问权限;

1、包访问权限

包访问权限是Java为了便于程序员开发而给定的一种权限选择。

当方法或域未给定访问权限限制符时,其默认具有该权限。具有该权限的方法和域成员,在包内是完全可见的(注意要与其对象依附在一起

),而包外则不可见。

这有点类似于C++中友元类,友元类见彼此可见,以简化访问。

Package accesscontrol

//Animal.java

public class Animal

{

void bark()

}

Package accesscontrol

//Test.java

public class Test

{

main()

{

Animal a= new Animal();

a.bark();//此处直接访问了Animal类中的bark()方法

}

}

由于Animal类和Test类都被打包在了同一个Package下,Animal中的bark()方法为包访问权限,故对类Test可见。

对java文件中的类也是如此,若未指定限制符,其默认为包访问权限,只能在包内被使用。包外是无法利用其生成对象的(不可见)。

注意:当决定一个类对包外可见的时候,除了要将类得访问限定符改为public意外,自定义的构造器限定符也必须修改为public,不然将导

致外部不可见。

2、public 权限

当在方法或域前面显式的给定public限定符的时候,其具有该权限控制。

public权限是最为宽松的一种权限控制,对包的内、外部都是完全可见的。

java最多只允许一个java文件中出现一个public类(该类向外提供接口,并与该java文件的名称完全一致)。

当一个java文件中无一个Public类时,表明其仅供包内使用,对外界不可见!

注意:类只有包访问权限和public访问权限两类。

3、Private访问权限

Private是访问限定最为严格一种权限。

当方法或域为private权限时,表明其只针对该类的内部可见,类的外部(包括同一包内的其它类)是不可见的。

//Animal.java

public class Animal

{

private void bark()

}

Package accesscontrol

//Test.java

public class Test

{

main()

{

Animal a= new Animal();

a.bark();//此处将造成编译错误,bark()方法为private方法,仅对Animal类 内部可见,现在在Test类内部。

}

}

4、protected访问权限

protected权限是一种严格程度介于public和private之间的权限,具有prtoected权限的域和方法只能对其自身和导出类可见。

在面向对象的设计当中,最常用的为public和private访问权限两种。

一般情况下将域定义为private,将方法定义为public。外界使用该类时,通过public方法使用其接口,而具体的域成员则对外部屏蔽,只

能通过类提供的接口间接访问。

public class Dog {

private int age=0;

public setAge(int num)

{

age=num+1;

}

}

此处,age域对外部不可见,要想对其进行操作,必须使用Dog类提供的接口setAge(int num)。

注意到setAge的方法体age=num+1;对用户给出的年龄加1了以后再修改了age属性,这种修改对使用者是不可见的,有时又是非常的必要的!

private访问权限java_Java中的访问权限控制相关推荐

  1. 不是Linux文件系统的权限,Linux中文件系统的权限管理(普通权限,特殊权限,文件的扩展属性,FACL)...

    文件系统的权限管理(DAC体系:自主访问控制体系): 普通权限 特殊权限 文件的扩展属性 FACL(文件系统访问控制列表) 安全上下文: 任何在计算机中执行的任务都是由进程来实现的,所以进程就有必要访 ...

  2. linux粘滞位权限,Linux中的特殊权限粘滞位(sticky bit)详解

    Linux下的文件权限 在linux下每一个文件和目录都有自己的访问权限,访问权限确定了用户能否访问文件或者目录和怎样进行访问.最为我们熟知的一个文件或目录可能拥有三种权限,分别是读.写.和执行操作, ...

  3. 权限系统中的数据权限就该这么设计,yyds!

    点击上方"芋道源码",选择"设为星标" 管她前浪,还是后浪? 能浪的浪,才是好浪! 每天 10:33 更新文章,每天掉亿点点头发... 源码精品专栏 原创 | ...

  4. 权限系统中的数据权限就该这么设计,yyds

    在项目实际开发中我们不光要控制一个用户能访问哪些资源,还需要控制用户只能访问资源中的某部分数据. 控制一个用户能访问哪些资源我们有很成熟的权限管理模型即RBAC,但是控制用户只能访问某部分资源(即我们 ...

  5. java 获取文件权限_Java中的文件权限,检查权限和更改权限 - Break易站

    Java提供了许多方法调用来检查和更改文件的权限,例如可以将只读文件更改为具有写入权限.当用户想要限制文件允许的操作时,需要更改文件权限.例如,文件权限可以从写入更改为只读,因为用户不再想要编辑文件. ...

  6. C#.NET 通用权限管理系统中的数据集权限设置实现参考界面(商业化成熟权限管理系统,提供全部源码)...

    为什么80%的码农都做不了架构师?>>>    其实做软件,最闹心的是,不知道如何设计页面,如何操作才会方便.在走火入魔通用权限管理系统中是如下的方式进行的处理. 这里是设置数据集权 ...

  7. linux用命令设置读权限,linux中的文件权限和chmod命令的使用

    1.linux中的文件权限 linux中用ls -al列出文件列表时,会看到第一列有rwx这样的字样,这个表示该文件的权限设置属性.在linux中,权限划分主要分为三种身份:所有者(owner或者us ...

  8. win7下访问linux文件权限,linux中文件的权限

    一.文件的基本权限 权限: r, w, x 对于文件来讲, r::可读,可以使用类似cat等命令查看文件内容: w:可写,可以编辑或删除此文件: x:可执行,exacutable,可以命令提示符下当作 ...

  9. java 父类访问子类_java中父类访问子类变量

    我们都知道,子类的方法可以访问父类的实例变量,这是因为子类继承父类就会获得父类的成员变量和方法:但是父类的方法水能访问子类的实例变量,因为父类根本无法知道它将被哪个子类继承,它的子类将会增加怎样的成员 ...

最新文章

  1. 关于创建主键和索引的关系一个小小測试
  2. 关于计算机与网络导论的论文,计算机科学与导论论文5
  3. C语言 | 函数执行成功时,return 1 还是return 0?
  4. CentOS7 安装ownCloud
  5. 【Elasticsearch】搭建Elasitc stack集群需要注意的日志问题
  6. C# 怎样判断 datagridview 中的checkbox列是否被选中
  7. 推荐几个JAVA 学习不错的网站
  8. 字节版 趣味测试小程序源码
  9. 深度学习模型并非“越大越好”,它可能引起气候变化问题
  10. 笔记本无线上网怎么通过网线共享给台式机 设置方法
  11. 阿里云如何给c盘扩容
  12. built a JNCIS LAB系列:Chapter 4 BGP
  13. Sprite Kit 移动精灵
  14. 自从IDEA配上这个插件开发速度快了N倍
  15. 【未完成】【甄选靶场】Vulnhub百个项目渗透——项目四十一:DEFCON Toronto-Galahad(图像深层分析,流量分析)
  16. ROS实践3:publisher模板教程
  17. 自然语言处理(NLP)-NLTK入门学习(二)
  18. 应用“Cain Abel”实现DNS欺骗
  19. [生存志] 第62节 圣人教子之术
  20. 【模拟赛】2018 蓝桥杯省赛 B 组模拟赛(五)

热门文章

  1. 新手站长如何快速学习并实践SEO?
  2. 获取系统时间的几种方法
  3. 传统节日被淡化 老外:圣诞节在中国流行不可思议
  4. sql中decode(...)函数的用法
  5. HTML span标签如何居中和右对齐?这里有HTML span标签的样式解析(收藏)
  6. 配置druid监控页面
  7. Nginx官方文档(四十六)【ngx_stream_access_module|ngx_stream_geo_module|ngx_stream_geoip_module】
  8. 【GoCN酷Go推荐】 ​文本差异对比工具 go-diff
  9. 文件之间的拷贝(拷贝图片实例)java.io.FileNotFoundException: G:\dad (拒绝访问。)通过绝对路径获取各种文件名
  10. 通过rel=preload进行内容预加载