重温经典《Thinking in java》第四版之第六章 访问权限控制(三十八)

简介: 重温经典《Thinking in java》第四版之第六章 访问权限控制(三十八)

“6.3 接口和实现”,访问权限的控制常被称为具体实现的隐藏。把数据和方法包装进类中,以及具体实现的隐藏,常共同被称作封装。访问权限控制将权限的边界划在了数据类型的内部。第一个原因是要设定客户端程序员可以使用和不可以使用的界限;第二个原因是要让程序设计者将接口和具体实现进行分离。

这一部分提到了一个很好的编程方法,也是值得我们每一个程序员借鉴的,就是把public成员放在类的开头,下面跟着protected、包访问权限和private成员的创建类的形式。这样做可以让类的使用者更好的找到自己该用的和不该用的地方在哪里。

publicclassOrganizedByAccess { 
publicvoidpub1() { /* ... */ } 
publicvoidpub2() { /* ... */ } 
publicvoidpub3() { /* ... */ } 
privatevoidpriv1() { /* ... */ } 
privatevoidpriv2() { /* ... */ } 
privatevoidpriv3() { /* ... */ } 
privateinti; 
// ... }

上面的代码还包含了{/*...*/}实现的部分,那么下一步就是将这部分实现跟前面方法的定义分离,这就达到了接口和实现分离的效果。

“6.4 类的访问权限”,这一小节的权限控制从类的方法和属性上转移到了类上的控制,其实原理和作用都是一样的。这里有一些额外的限制:

1、每个编译单元(文件)都只能有一个public类,该文件中可以包含其他的非public的类

2、public类的名称必须完全与含有该编译单元的文件名相匹配,包括大小写。

请注意,类既不可以是private,也不可以是protected的,所以对于类的访问权限,仅有两个选择:包访问权限或public。

“6.5 总结”,到现在为止整个Java中的访问权限控制就结束了,无论是在什么样的关系之中,设立一些为各成员遵守的界限始终是很重要的。当创建了一个类库,也就与该类库的用户建立了某种关系,这些用户就是客户端程序员,他们是另外的一些程序员,他们将你的类库聚合成为一个应用程序,或者运用你的类库来创建一个更大的类库。如果不指定规则,客户端程序员就可以对类的所有成员随心所欲。

目录
相关文章
|
29天前
|
存储 NoSQL Java
Java数据库编程指南:实现高效数据存储与访问
【4月更文挑战第2天】Java开发者必须掌握数据库编程,尤其是JDBC,它是连接数据库的标准接口。使用Spring JDBC或JPA能简化操作。选择合适的JDBC驱动,如MySQL Connector/J,对性能至关重要。最佳实践包括事务管理、防SQL注入、优化索引和数据库设计。NoSQL数据库如MongoDB也日益重要,Java有对应的驱动支持。理解这些概念和技术是构建高效数据库应用的基础。
Java数据库编程指南:实现高效数据存储与访问
|
2月前
|
设计模式 Java 数据库连接
【重温设计模式】代理模式及其Java示例
【重温设计模式】代理模式及其Java示例
23 2
|
3天前
|
运维 NoSQL Java
Serverless 应用引擎产品使用之在函数计算上部署Java服务并访问阿里云MongoDB如何解决
阿里云Serverless 应用引擎(SAE)提供了完整的微服务应用生命周期管理能力,包括应用部署、服务治理、开发运维、资源管理等功能,并通过扩展功能支持多环境管理、API Gateway、事件驱动等高级应用场景,帮助企业快速构建、部署、运维和扩展微服务架构,实现Serverless化的应用部署与运维模式。以下是对SAE产品使用合集的概述,包括应用管理、服务治理、开发运维、资源管理等方面。
9 0
|
13天前
|
安全 Java API
java借助代理ip,解决访问api频繁导致ip被禁的问题
java借助代理ip,解决访问api频繁导致ip被禁的问题
|
14天前
|
存储 NoSQL Java
探索Java分布式锁:在高并发环境下的同步访问实现与优化
【4月更文挑战第17天】Java分布式锁是解决高并发下数据一致性问题的关键技术,通过Redis、ZooKeeper、数据库等方式实现。它确保多节点共享资源时的同步访问,防止数据不一致。优化策略包括锁超时重试、续期、公平性和性能优化。合理设计分布式锁对支撑大规模分布式系统至关重要。
|
15天前
|
SQL 缓存 Java
Java数据库连接池:优化数据库访问性能
【4月更文挑战第16天】本文探讨了Java数据库连接池的重要性和优势,它能减少延迟、提高效率并增强系统的可伸缩性和稳定性。通过选择如Apache DBCP、C3P0或HikariCP等连接池技术,并进行正确配置和集成,开发者可以优化数据库访问性能。此外,批处理、缓存、索引优化和SQL调整也是提升性能的有效手段。掌握数据库连接池的使用是优化Java企业级应用的关键。
|
2月前
|
Java
Java包及访问限定
Java包及访问限定
9 0
|
2月前
|
SQL Java 关系型数据库
Java数据库访问
Java数据库访问
|
2月前
|
前端开发 Java 生物认证
java实现人脸识别源码【含测试效果图】——前期准备工作及访问提示
java实现人脸识别源码【含测试效果图】——前期准备工作及访问提示
37 0