2013年6月16日 星期日 11时10分46秒
第六章 访问权限控制
访问控制(或隐藏具体实现)与“最初的实现并不恰当”有关。
重构面临的问题: 如何把变动的事物与保持不变的事物区分开来。
public,protected,默认,private。
如何将构件捆绑到一个内聚的类库单元中的问题。java 用package加以控制。
6.1 包:库单元
需要防止类名称之间的冲突。
6.1.1 代码组织
使用package将构件置于同一个组群,同时package chapter6; 必须置于文件中除注释以外的第一句程序代码。
6.1.2 创建独一无二的包名
冲突:如果存在名字冲突时,明确指定要使用的类。
6.1.3 定制工具类
package chapter6;
//定制工具类
public class Print {
public static void print(Object obj){
System.out.println(obj);
}
public static void print(){
System.out.println();
}
public static void printnb(Object obj){
System.out.print(obj);
}
}
6.1.4 用import改变行为
6.1.5 对使用包的忠告
可以通过package调试“无法找到特定类”的异常,编译过的代码通常放置在与源代码不同的目录中,但是必须保证JVM使用CLASSPATH可以找到该路径。
6.2 Java访问权限修饰符
6.2.1 包访问权限
取得对某成员的访问权的唯一途径是:
1.使该成员成为public。
2.通过不加访问权限修饰词并将其他类放置于同一个包内的方式给成员赋予包访问权,于是包内的其他类也就可以访问该成员了。
3.通过继承。
4.提供访问器(accessor)和编译器(mutator)方法(也称get/set方法),以读取和改变数值。
6.2.2 public:接口访问权限
6.2.3 private:你无法访问
6.2.4 protected:继承访问权限
6.3 接口和实现
访问权限的控制常被称为是具体实现的隐藏。把数据和方法包装进类中,以及具体实现的隐藏,常共同被称为封装。
访问权限控制将权限的边界划在了数据类型的内部,有两个原因:
一:设定客户端程序员可以使用和不可使用的界限。
二:将接口和具体实现进行分离。
6.4 类的访问权限
如果没能为类访问权限指定一个访问权限修饰符,它就会默认得到包访问权限。
package chapter6;
//Soup1和Soup2展示了如何通过将所有的构造器指定为private来阻止直接创建某个类的实例。
class Soup1{
private Soup1(){}
public static Soup1 makeSoup(){
return new Soup1();
}
}
//其中Soup2中用到了单例模式(Singleton)
class Soup2{
private Soup2(){}
private static Soup2 sp2=new Soup2();
public static Soup2 access(){
return sp2;
}
public void f(){}
}
public class Lunch {
void testPriate(){
//Soup1 s1=new Soup1(); 不能这样创建对象
}
void testStatic(){
Soup1 s1=Soup1.makeSoup();
}
void testSingleton(){
Soup2.access().f();
}
}
6.5 总结
1.设立一些为成员所遵守的界限始终是很重要的。
注意:访问权限控制符专注于类库创建者和该类库的外部使用者之间的关系。这种关系也是一种通信方式。
分享到:
相关推荐
主体通过验证后,才能尝试访问客体,但访问权限需要根据控制策略来确定。 2. **客体(Object)**:客体是被访问的实体,可以是文件、数据库记录、硬件设备等。客体可以包含其他客体,如文件夹包含多个文件。 3. **...
CRM用户权限控制设置 CRM(Customer Relationship Management,客户关系...通过功能权限控制和数据权限控制,企业可以对CRM系统中的用户权限进行精细的控制,使得用户只能访问和操作自己权限范围内的功能模块和数据。
第13章"用户访问控制"主要讨论了如何在Oracle PL/SQL环境中管理和控制用户对数据库的访问。以下是本章涉及的重要知识点: 1. 创建用户:数据库管理员(DBA)使用`CREATE USER`语句创建新的用户账户。例如,`CREATE ...
在Java编程语言中,包(Package)是一种组织和管理类的方式,它将相关的类和接口组织成一...它们帮助我们组织代码、控制访问权限,并定义类的行为规范。理解并熟练掌握这些概念对于任何Java开发者来说都是至关重要的。
#### 第 6 章 访问权限控制 第六章介绍了Java中的访问控制机制。访问控制用于限制类、变量、方法和构造函数的可见性,从而保护程序的安全性和完整性。本章详细阐述了public、private、protected以及默认访问修饰符...
第六章深入探讨了操作系统,特别是Windows操作系统的安全性和相关管理策略。 访问控制是操作系统安全的核心,其目标是确保只有经过授权的主体能访问特定的客体,并且访问权限符合预设的安全策略。访问控制涉及三个...
第6章 访问权限控制 第7章 复用类 第8章 多态 第9章 接口 第10章 内部类 第11章 持有对象 第12章 通过异常处理错误 第13章 字符串 第14章 类型信息 第15章 泛型 第16章 数组 第17章 容器深入研究 第18章 Java I/O...
* 存取控制是指控制用户对数据库的访问权限,以防止非授权访问。 * 存取控制机制包括自主存取控制和强制存取控制。 * 自主存取控制(DAC)允许用户自主地将权限授予其他用户。 * 强制存取控制(MAC)则根据安全级别...
本课件聚焦于操作系统的第五章“设备管理”和第六章“文件管理”,这两部分是操作系统核心功能的重要组成部分。 第五章“设备管理”主要讲解了以下几个关键知识点: 1. 输入/输出(I/O)系统:I/O系统是操作系统与...
非静态实例初始化 5.8 数组初始化 5.8.1 可变参数列表 5.9 枚举类型 5.10 总结 第6章 访问权限控制 第7章 复用类 第8章 多态 第9章 接口 第10章 内部类 第11章 持有对象 第12章 通过异常处理错误 第13章 字符串 第...
本章主要探讨了如何在数据库中创建用户、角色,以及如何使用`GRANT`和`REVOKE`语句来管理和控制权限。以下是详细的知识点说明: 1. **创建用户**:数据库管理员(DBA)可以通过`CREATE USER`语句创建新的用户,例如...
3. **db**:用于控制数据库级别的访问权限。 4. **tables_priv**:管理特定表的访问权限。 5. **columns_priv**:提供对特定列的访问控制。 #### 三、不同层级的权限 - **列权限**:控制对表中特定列的访问。 - **...
【IBM AIX系列培训 - 7 AU13第六章 介绍AIX的文件权限】这一章节专注于讲解IBM的AIX操作系统中的核心概念——文件权限。AIX,全称Advanced Interactive eXecutive,是IBM公司为Power架构开发的一款强大且稳定的企业...
本文总结了操作系统第六章习题中的相关知识点,涵盖文件管理、文件系统、文件组织、文件访问控制、文件存储管理、文件命名、文件路径、文件访问方式等方面的知识。 一、文件管理 * 文件管理是操作系统中对数据进行...
华为1+x网络系统建设与运维(中级)第6章网络安全技术v3.0.pptx 本资源主要讲解了网络安全技术,涵盖了访问控制列表(ACL)、网络地址转换(NAT)和AAA认证等重要知识点。下面是对应的详细知识点解释: 一、 访问...
在《计算机网络》谢希仁版第六章中,涵盖了计算机网络应用层的诸多重要知识点。应用层主要负责提供应用程序之间的通信服务,包括一系列网络应用协议、服务和相应的实现技术。 首先,域名系统DNS作为互联网中不可或...
在这个名为"JavaOOP_第6章上机练习.zip"的压缩包中,我们可以预见到包含的是关于Java OOP的第六章练习题目,可能涵盖了类、对象、继承、接口、抽象类、访问修饰符、构造器、方法重写、多态性等相关主题。 1. 类与...