一、
进行面向对象的设计时,一项基本的考虑是:如何将发生变化的东西与保持不变的东西分隔开。
对于这一点,库的设计者需要时刻谨记。
Java 推出了“访问指示符”的概念,允许库创建者声明哪些东西是客户程序员可以使用的,哪些是不可使用的。
库设计者,应将所有东西都尽可能保持为“private”(私有),并只展示(public)出那些想让客户程序员使用的方法。
默认:
如果根本不指定访问指示符,默认的访问没有关键字,但它通常称为“友好”(Friendly)访问,拥有“包访问”权限。
public:
在public 后面的成员声明适用于所有人,特别是适用于使用库的客户程序员。
private:
private关键字意味着除非那个特定的类,而且从那个类的方法里,否则没有人能访问那个成员。实际使用上,例如private构造方法,实现单例等。
protected:
继承访问权限,即除了内部调用,子类也可以调用,一般开发中protected使用较少。
二、
编写.java文件时首先指定,例如:package com.gcc.modules.frontstage.web;这样的包路径。
然后用import 关键字导入一个完整的库时,就会获得其他“包”(Package)。例如:import java.util.*;
好处是:package和 import关键字允许我们做的事情就是分割单个全局命名空间,保证我们不会遇到名字的冲突。
还有一个避免名字冲突的做法是:
com.gcc.modules.frontstage.service.articleService articleService = new com.gcc.modules.frontstage.service.articleService()
这样指定完整名字(当然实际开发没人这样做,但是在使用工具开发时,自动导包时候偶尔会发生,原因是有一个同名类已经用import导入,而再导入第二个同名类时工具会用这种全名的方式来处理名字冲突。)