库的创建者必须能自由地进行修改与改进,同时保证客户程序员代码不会受到那些变动的影响。
使用 JAR文件时要注意一个问题:
必须将JAR文件的名字置于类路径里,而不仅仅是它所在的路径。所以对一个名为grape.jar 的JAR文件来说,我们的类路径需要包括:
CLASSPATH=.;D:\JAVA \LIB;C:\flavors\grape.jar
import com.bruceeckel.util.*; /** * 编译器遇到 import语句后,它会搜索由CLASSPATH 指定的目录, * 查找子目录com\bruceeckel\util,然后查找名称适当的已编译文件 * (对于Vector 是Vector.class,对于 List 则是List.class)。 * 注意Vector 和List 内无论类还是需要的方法都必须设为public。 */ public class LibTest { public static void main(String[] args) { Vector v = new Vector(); List l = new List(); } }
Java 访问指示符
不要错误地以为 Java 无论如何都会将当前目录作为搜索的起点看待。如果不将一个“.”作为 CLASSPATH 的一部分使用,Java 就不会考虑当前目录。
- 默认的friendly - 意味着当前包内的其他所有类都能访问“友好的”成员,但对包外的所有类来说,这些成员却是“私有”(Private)的,外界不得访问。 - “包访问”权限
- public:接口访问 - 意味着紧随在public 后面的成员声明适用于所有人,特别是适用于使用库的客户程序员。
- private :不能接触 - 意味着除非那个特定的类,而且从那个类的方法里,否则没有人能访问那个成员。
- protected:“友好的一种” -
创建一个新类:
将public成员置于最开头,后面跟随protected、有好以及private成员。
好处:使用者可以从上向下一次阅读,并首先看到对自己来说最重要的内容(public成员,因为它们可从文件的外部访问,并在遇到非公共成员后停止阅读,后者已经属于内部实施细节的一部分了)
// 为控制一个类的访问,指示符必须在关键字class 之前出现。所以我们能够使用: public class Widget { // 也就是说,假若我们的库名是mylib,那么所有客户程序员都能访问Widget——通过下述语句: import mylib.Widget; 或者 import mylib.*;
注意到一些额外的限制:
- 每个编译单元(文件)都只能有一个public 类。每个编译单元有一个公共接口的概念是由那个公共类表达出来的。
- public类的名字必须与包含了编译单元的那个文件的名字完全相符,甚至包括它的大小写形式。
- 可能(但并常见)有一个编译单元根本没有任何公共类。此时,可按自己的意愿任意指定文件名。
对于类的访问只有两个选择:“友好的”或者public。若不愿其他任何人访问那个
类,可将所有构建器设为private。
相关推荐
很值得一看的书籍,很多人都推荐,适合有一定java基础的人学习提高
JAVA思想中文版,CHM格式.
Think-In-Java-Code Thinking In Java 书中源码以及课后练习代码(从第7章开始随着看书的进度一步步更新) 第七章 复用类 7.1 组合语法 7.2 继承语法 7.2.1 初始化基类 7.3 代理 7.4 结合使用组合和继承 7.4.1 确保...
作者:贯穿本书,我试图在您的大脑里建立一个模型——或者说一个“知识结构”。这样可加深对语言的理解。若遇到难解之处,应学会把它填入这个模型的对应地方,然后自行演绎出答案。事实上,学习任何语言时,脑海里有...
Think Data Structures Algorithms and Information Retrieval in Java-OReilly(2017)
Think in java 源码构建编译
think in java 源码整理,应该算是比较全面的,有需要的朋友可以下下来看下
Think in java 的代码源码,里面很详细的习题详解
java think in java (英文第四版)至今为止 被认为是java教程之中权威作品之一
Think Data Structures in Java 英文azw3 本资源转载自网络,如有侵权,请联系上传者或csdn删除 本资源转载自网络,如有侵权,请联系上传者或csdn删除
think-in-effective-teamwork.pptx
1.3 实现方案的隐藏 1.4 方案的重复使用 1.5 继承:重新使用接口 1.5.1 改善基础类 1.5.2 等价和类似关系 1.6 多形对象的互换使用 1.6.1 动态绑定 1.6.2 抽象的基础类和接口 1.7 对象的创建和存在时间 ...
think in java 第四版 源码以及作业 eclipse版本 包含jar包 可以直接导入eclipse
这是java编程思想中的练习题,自己感觉不错,上传上去给大家分享~~~~~
对java模式的介绍,因为think in java太厚了,所以分离出来出版
Think-In-Go
Think in Java 作者的文章 精辟见解
1.3 实现方案的隐藏 1.4 方案的重复使用 1.5 继承:重新使用接口 1.5.1 改善基础类 1.5.2 等价和类似关系 1.6 多形对象的互换使用 1.6.1 动态绑定 1.6.2 抽象的基础类和接口 1.7 对象的创建和存在时间 1.7.1 集合与...
Think in java 教程 Think in java 教程