`
p330294088
  • 浏览: 14493 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
最近访客 更多访客>>
社区版块
存档分类
最新评论
阅读更多

访问控制
包的使用
类的访问控制
成员的访问控制

包的使用
所谓包,指的是类的集合,包和类(接口)关系,类似文件系统中目录和文件的关系,在Java语言中,包是类的组织结构,Java语言提供了许多包,例如java.io, java.lang等,Java语言提供的包中存放了一些Java语言基础类,如在前面使用的System, String类等,一个好的Java程序,结构必然是严谨的,包的结构尤为重要.

将类放入一个包内后,对包的引用可以替代对类的引用,此外,包这个概念也为使用类的成员变量与方法提供了很多方便,包结构往往与Java语言访问控制符结合一起使用, 最终达到数据封装的目的,为了更好的理解访问控制级别,需要深入理解包这一重要概念.

JDK官方包介绍
java.lang: Java语言基础包,为Java语言的基本结构提供了各种基础类,如Object类,String类等.
java.tuil: Java语言工具包, 提供了编码,解码,哈西表, 向量, 堆栈之类的工具类.
java.io: Java语言I/O包,提供了标准的输入流,输出流及文件访问相关的工具类
java.applet: Java语言小应用程序包, 提供了与支持Java的浏览器进行交互的类.
java.awt包,Java语言容器工具包,提供了字体,基础事件,监听器,面板,窗体,按钮,滚动条等图形用户界面工具类.
java.net: Java语言网络包, 提供了支持网络通信的类,如Socket类等,支持telnet, FTP, www等协议访问网络.

包的声明与创建:
包名一般为小写,而类名的第一个字母一般为大写,这样在引用时,可以明显的分辨出包名和类名,如果在类的定义之前没有使用package定义包名, 那么类就属于缺省的包.
Java语言中通过关键字package来声明一个包,在Java程序的最前面添加包的定义,如下所示:
package dangdang;

包名可以是包含”.”字符分隔的字符串,如下所示
package com.zmxlh.demo;

请看示例PagckageDemo.java, 在建立文件前必须先建立一个包目录结构,然后将Java文件放入对应的目录中.
运行时:
1. 先还是用EditPlus编译
2. 运行命令时先用CMD进入控制台,再定义到最顶层包的目录,运行命令
java com.dangdang.chapter2.PagckageDemo

使用包的好处:
1. 可以更好的组织类,包与文件夹结构类似,
2. 减少类名的冲突问题, 与文件夹类似,同一文件夹中的文件不能重名, 不同文件中的文件可以重名,同一包中类名不能重复, 不同包中的类名可以重复.
3. 对包中的类起了一定的保护作用, 即访问控制的内容.

引入包资源
当Java程序中需要引用其他包内的类时,需要使用import 关键字来声明引用的包或类资源,需要注意的是如果使用的类属于java.lang包,那么可以直接使用类名来引用指定的类,而不需要加上包名,这是因为java.lang包叫被默认引用.

引用方式:
1. 直接 包名+类名 的书写方式
2. import ..*导入指定包下面的全部类方式
3. import ..** 导入指定包下面的指定类方式
4. 静态引入
a) import static java.lang.Math.PI;
b) import static java.lang.Math.*;
静态引用相当于被引用资源类具有了和被引入资源类相同的资源,

示例: Student.java Test.java
打包命令:
jar -cvf my.jar *.*
编译命令
javac Test.java -classpath d:\chapter2.jar


类的访问控制
Java语言是面向对象的语言,封装是面向对象的一个重要特性,封装将数据和处理数据的代码连接起来,同时,封装也提供了另一个重要属性,即访问控制,通过封装可以控制类,接口相互间的可见性,以及方法的可见性,通过控制访问,可以阻止对象的滥用,例如,只允许通过特殊定义的一系列方法来访问类的数据,可以阻止乱用类的数据,从而保证类淘汰的可靠性和安全性.

Java语言的访问控制符有公共的,私有的,保护的,默认的(public,private,protected,default)四种,这四个控制符可以用在属性和方法上,方法内部变量是不能用控制符修饰的.
访问控制符 同一类中 同一包中 同一子类中 其他
public 是 是 是 是
private 是 否 否 否
protected 是 是 是 否
default 是 是 否 否

public 公共访问级别:
公共访问级别是成员的最高访问级别,凡是声明为公共访问级别的成员都可以被同一包中的类,子类或是其他包中的类所访问.

protected 保护访问级别
保护级别仅次于公共访问级别, 定义为保护级别的成员除了可以在同一类中被访问,还可以被同一包中的类和子类访问,

private 私有访问级别
最严格的访问级别,凡是用private声明的成员变量或方法只能在类内部访问,其他任何地方都不能访问.

默认访问级别
默认访问级别定义的成员变量或方法除了在类内部访问,只能在包内的类中被调用.


访问级别与数据封装
 数据封装是面向对象语言的重要特性之一,所谓数据封装,是指隐藏类的属性和实现细节,仅仅对外公开访问接口,使用数据封装能带来以下优点.
 更加方便理解和使用类,防止因为误操作而随意修改属性.
 只将少数几个公共接口暴露,将大部分数据和实现细节隐藏在内部,不论内部实现是如何的复杂,在使用者角度却是很简单的.
 有效的提高了软件的征用性,每个子系统,模块,组件都是一个相对独立,完整的有机体,可以在其他各种环境中被重复使用.
 有利于降低各子系统,模块,组件间的耦合关系,提高子系统,模块,组件的独立性,如当某一组件内部实现发生变化时,只要保持接口不变,就不会对其他组件产生影响.
 有效的降低了设计开发大型系统的风险,即使整个系统不成功,个别独立子系统,模块,组件仍旧可能是有价值的.
总之,一个设计良好的系统会封装所有的实现细节,将接口与实现进行明确的分隔,各模块,组件间仅通过定义良好的接口进行信息通信.面向对象语言主要是通过访问控制机制来进行数据封装,包括类的访问控制与成员的访问控制两个层次.

在数据封装方面有两个主要原则:
1. 隐藏所有属性,
2. 尽可能隐藏一切内部实现细节,只保留简洁的接口方法.

 

 

分享到:
评论

相关推荐

    论文研究-基于密码的访问控制研究.pdf

    针对现有访问控制策略和机制复杂的特点,结合标签机制和多级安全的策略,以强制访问控制为基础,提出了一种新的访问控制机制。该机制的思想是根据客体的访问密钥来最终决定主体对客体有何种访问权限。基于这种思想将...

    自主访问控制实验——DAC 基于RBAC1的访问控制实验

    题目1:自主访问控制实验; 要求:设计必需的界面环境, (1) 对主体、客体、权限进行定义和配置 (2) 对主体进行自主授权 (3) 对主体的访问权限进行控制实验 (4) 对主体进行传递授权的操作,通过实验观察系统...

    RBAC访问控制模型综述

    基于角色的访问控制(Role-Based Access Control)作为传统访问控制(自主访问,强制访问)的有前景的代替受到广泛的关注。在RBAC中,权限与角色相关联,用户通过成为适当角色的成员而得到这些角色的权限。这就极大...

    访问控制课程设计报告

    利用数据库,编写自主访问控制和基于角色的访问控制的系统

    什么是访问控制策略

    访问控制策略是网络安全防范和保护的主要策略,其任务是保证网络资源不被非法使用和非法访问。各种网络安全策略必须相互配合才能真正起到保护作用,而访问控制是保证网络安全最重要的核心策略之一。访问控制策略包括...

    java访问控制符.txt

    简要叙述什么是访问控制符,列出Java中的访问控制符,并说明各个访问控制符的控制权限

    访问控制列表实验

    计算机网络实验课实验报告,访问控制列表实验报告

    访问控制的基本概念

    访问控制是对信息系统资源进行保护的重要措施,理解访问控制的基本概念有助于信息系统...这些基本概念包括:访问控制的定义、访问控制和内部控制的关系、访问控制的类型、访问控制的手段、访问控制模型、访问控制管理。

    访问控制列表概述

    标准IP访问控制列表,一个标准IP访问控制列表匹配IP包中的源地址或源地址中的一部分,可对匹配的包采取拒绝或允许两个操作。编号范围是从1到99的访问控制列表是标准IP访问控制列表。扩展IP访问控制列表,扩展IP访问...

    信息系统访问控制策略.docx

    信息系统访问控制策略 账户管理 身份授予与鉴别是对访问医院资源的用户富裕身份并在用户访问资源时进行身份鉴别,目的是保证访问网络系统资源的用户是合法的。关于身份授予与鉴别政策定义如下: 应基于不同业务的...

    自主访问控制综述(他们说标题要长)

    而自主访问控制(Discretionary Access Control, DAC)则是最早的访问控制策略之一,至今已发展出多种改进的访问控制策略。本文首先从一般访问控制技术入手,介绍访问控制的基本要素和模型,以及自主访问控制的主要...

    路由器访问控制列表详解

    对于许多网管员来说,配置路由器的访问控制列表是一件经常性的工作,可以说,路由器的访问控制列表是网络安全保障的第一道关卡。访问列表提供了一种机制,它可以控制和过滤通过路由器的不同接口去往不同方向的信息流...

    IP访问控制列表

    本实验对IP访问控制列表进行配置和监测,包括标准、扩展和命名的IP访问控制列表。通过本实验可以掌握以下技能:配置标准IP访问控制列表;配置扩展IP访问控制列表;配置命名的标准IP访问控制列表;配置命名的扩展IP访问...

    数据库管理系统的访问控制

    数据库管理系统的访问控制 BLP模型 V=P(S×O×A)×μ×F是状态的集合,状态v=(b, M, f)用有序三元组表示,其中: b是S×O×A的子集,是当前访问集。 M是访问控制矩阵,它的第i行,第j列的元素Mij是集合A的子集,...

    数据库审计和访问控制.pdf

    数据库审计和访问控制 AccessMatrixTM••Database•Guard•(简称•DB•Guard)•是一种通过数据库 访问控制来保护数据库和存放在数据库内的企业信息资产的安全解决方案。 目前已知的很多数据库侵权案例,如日志的...

    论文研究-安全数据库隐私保护和访问控制集成研究.pdf

    针对目前单方面考虑隐私保护或访问控制技术难以同时满足数据库信息安全和处理性能需求的不足,提出一种集成访问控制和隐私保护技术的安全数据库模型,通过建立查询审计隐私保护模型中的查询可疑性与授权视图访问控制...

    论文研究-WebServices中基于信任的动态访问控制.pdf

    在Web Services系统中,用户行为的动态不确定性,使得现有的访问控制模型难以控制用户的恶意行为。针对这一问题,提出一种基于信任的动态访问控制模型。该模型将安全断言标记语言和可扩展的访问控制标志语言相结合,...

    Android手机的轻量级访问控制

    以Android手机为平台,提出了一种适用于Android手机的访问控制方法,该方法在Android手机的内核中增加访问控制模块,并根据手机用户定制的访问控制策略来控制计算机对Android手机的文件访问。仿真实验表明,该方法以较小...

    微服务架构下访问控制模型的设计与实现_朱永强.pdf

    对微服务架构下的资源访问控制需求进行分析,提出一种基于角色的访问控制模型——MSAM(Microservice of Authority Management)。该模型具有对用户授予和屏蔽权限、数据权限和服务实例权限等特征,能够很好地满足微服务...

Global site tag (gtag.js) - Google Analytics