Java的访问控制权限相比于C++等语言可能稍微复杂一点,不过也不难理解。Java的访问控制权限分为两块——“类或接口的访问控制权限”与“变量和方法的访问控制权限”。
1.类或接口的访问控制权限
类或接口的访问控制权限是指能不能用该类建立对象,接口能不能被实现等等。能够修饰类或接口的访问控制权限的修饰符(modifier)只有两个—— public和friendly.不过,值得一说的是friendly并不是Java的关键字,它只是一个习惯叫法,指的是“没有写访问控制权限修饰符” 的情况。
public修饰的类或接口在同一个包中的任何一个类中都可以被访问。不同包呢?当然能访问啦,否则引包机制不就失效了嘛(因为引包相当于拿到了一个包的public类或接口)。
friendly修饰的类或接口在同一个包中的任何一个类中都可以被访问(和public相同),不能被不同包中的类访问。
总结:类或接口的访问控制权限分为“包中”和“包外”。无论修饰符(modifier)是什么,在“包中”均可访问。对于“包外”,public修饰的类或接口可以被访问,friendly修饰的类或接口不能被访问。
2.变量和方法的访问控制权限
变量和方法的访问控制权限的修饰符(modifier)有四个——public,protected,friendly和private.
变量和方法在本类(定义该变量或方法的类)中不论访问控制权限修饰符是什么,均可被访问(这里先不考虑“静态”的情况)。那么接下来只研究类外。类外也 分“包内”和“包外”,接下来就从这两方面说起,并且研究“包外”时只考虑引入的包中的public类,因为friendly的类连直接被访问都做不到, 何谈访问变量和方法。
public修饰的变量和方法在“包内”和“包外”均可被访问。
protected修饰的变量和方法在“包内”可以被访问,在“包外”只能被子类访问。
friendly修饰的变量和方法在“包内”可以被访问,在“包外”不能被访问。
private修饰的变量和方法在“包内”或“包外”均不能被访问。
总结:对于“类外”,public,protected,friendly和private的严格性逐渐递增。public可以说没限 制,protected剥夺了“包外”非子类的访问能力,friendly在protected基础上进一步剥夺了“包外”子类的访问能力,至此“包外” 的访问能力全无;private更严格,它在friendly基础上更是一下剥夺了“包内”的访问能力。
总的来说,看某个成员能否被访问要分两步:1.根据所在类的访问控制权限看该类能否被访问;2.根据该成员的访问控制权限判断取得所在类后该成员能否被访问。
相关推荐
在提供的"Java访问权限控制源代码"中,可能包含示例类,这些类展示了如何使用不同的访问修饰符来控制类、变量和方法的可见性。`readme.md`文件可能包含了代码的介绍和使用指南。 通过学习和理解Java的访问权限控制...
很清楚的分析与讲解Java的访问权限的控制
Java中的访问控制权限是编程实践中一个重要的概念,它关乎到代码的封装性和安全性。访问控制权限决定了类、接口、变量和方法对不同程序组件的可访问性,这有助于避免不必要的数据干扰,保证软件的稳定性和模块化。 ...
简要叙述什么是访问控制符,列出Java中的访问控制符,并说明各个访问控制符的控制权限
2. **访问控制列表(Access Control List, ACL)**:定义了哪些用户或角色可以访问哪些资源。ACL可以精细到单个资源级别,确保只有授权的用户能够进行操作。 3. **认证与会话管理**:插件可能包含了用户登录、登出...
JAVA源码Java访问权限控制源代码JAVA源码Java访问权限控制源代码
在Java编程语言中,访问权限控制是至关重要的一个部分,它确保了代码的封装性和安全性。本文将深入探讨Java中的访问权限验证,包括其概念、种类以及如何在实践中应用。 **一、访问权限概述** Java提供了四种不同的...
这个"Java访问权限控制源代码.zip"压缩包可能包含了示例代码,用于演示Java中的不同访问修饰符如何工作以及如何实施访问控制。现在,我们将深入探讨Java中的访问权限控制机制。 首先,Java提供了四种访问级别: 1....
Java Spring AOP 权限控制 Java Spring AOP 权限控制是指在 Java Spring 框架下使用 Aspect-Oriented Programming(面向方面编程)技术来实现权限控制。权限控制是指对用户的访问权限进行控制和管理,以确保系统的...
- **授权**:Shiro支持基于角色和基于权限的访问控制,可以在Controller层或Service层进行权限检查。 - **会话管理**:Shiro能自动处理会话超时、跨域会话同步等问题。 - **过滤器(Filter)**:Shiro提供了一...
在Java编程语言中,访问权限控制是至关重要的概念,它决定了类、接口、字段和方法的可见性。这种控制机制确保了代码的封装性和安全性,防止未经授权的访问和操作。以下是对这一主题的详细探讨: 1. 访问修饰符: ...
- **基于角色的访问控制(RBAC)**:这是最常见的权限控制模型,用户的角色决定了他们的权限。通过将权限与角色关联,而不是直接与用户关联,可以方便地管理和更新权限。 - **基于资源的访问控制(RBAC)**:...
"java 用户权限管理图" ...在系统运行时,我们可以使用左侧菜单中的权限分栏来控制权限的展示和隐藏。 本文主要讲解了 Java 用户权限管理图的设计和实现,提供了一种可行的解决方案来实现 B/S 系统中的权限管理问题。
java 访问权限修饰符详解 在 Java 语言中,访问权限修饰符是指用来限定类、成员变量和方法的可访问范围的关键字。访问权限修饰符分为四种:public、protected、friendly 和 private。每种修饰符都有其特定的访问...
本文将深入探讨Java中的委托控制权限,主要聚焦于JDK代理(Proxy)的使用。 首先,我们要理解什么是委托。在软件工程中,委托是一种设计模式,其中一个对象(称为委托者)将一些任务或职责传递给另一个对象(称为...
权限访问控制管理后台 用途 :rbac的权限访问控制管理后台 搭建方式 : springBoot+myBatis+Maven+jsp+mysql 运行步骤 1.创建数据库 2.还原数据库(sql文件位于resource中) 3.启动应用 访问链接:localhost:8077/...
- **RBAC(Role-Based Access Control)**:基于角色的访问控制是一种常见的权限模型,它将权限与角色关联,而不是直接与用户关联,降低了管理复杂性。 在这个"java用户角色权限" demo中,可能会包含以下组件: - ...
在Java开发中,权限访问控制系统是至关重要的一个部分,它确保了软件系统的安全性和稳定性。这个名为"java开发的权限访问控制系统.zip"的压缩包很可能包含了一个完整的Java实现的权限管理解决方案,用于管理和控制...
本资源"Java访问权限控制源代码.rar"可能包含了一系列示例,用于展示如何在Java中应用不同的访问修饰符,以及它们如何影响类、方法和变量的可见性。现在,我们将深入探讨Java的访问权限控制。 1. 访问修饰符概述: ...