一、隐藏实施过程
对于隐藏实施过程,thinking in java中讲了很好,无非就是一个好的程序尽量做到,对外公开的程序,即使内部程序发生变动,也不会影响这些公开的服务的使用
- 类的导入
java中的类是位于不同的包中,除了java.lang包中的类可以直接使用之外,别的包中的类要想用之的话
第一种方式就是import导入
import java.util.Date这样的话,就可以使用util中的Date类,如果一个包中你需要用到很多类的情况可以import java.util.*,这样你就可以使用util包中的所以的类了
第二种方式就是使用完整类名
java.util.Date date=new java.util.Date();
我相信大家都会有第一种方式,但是第二种方式也是有用的。比如说一个类中你先import java.util.Date,但此时你还需要java.sql.Date怎么办?继续import?然后调用Date date=new Date()?不好意思,程序分不清你用的那种Date,这个时候第二个Date你就需要使用java.sql.Date date=new java.sql.Date();方式了 - 包
“包”也由一系列类文件构成。每个文件都有一个 public类(并没强迫使用一个 public 类,但这种情况最很典型的),所以每个文件都有一个组件。如果想将所有这些组件(它们在各自独立的.java 和.class文件里)都归纳到一起,那么package 关键字就可以发挥作用)。
若在一个文件的开头使用下述代码:
package mypackage;
那么package语句必须作为文件的第一个非注释语句出现。该语句的作用是指出这个编译单元属于名为mypackage 的一个库的一部分。或者换句话说,它表明这个编译单元内的 public类名位于 mypackage这个名字的下面。如果其他人想使用这个名字,要么指出完整的名字,要么与mypackage 联合使用import 关键字(使用前面给出的选项)。注意根据Java 包(封装)的约定,名字内的所有字母都应小写,甚至那些中间单词亦要如此。例如,假定文件名是MyClass.java。它意味着在那个文件有一个、而且只能有一个 public类。而且那个类的名字必须是MyClass(包括大小写形式):
package mypackage;
public class MyClass {
// . . .
现在,如果有人想使用 MyClass,或者想使用 mypackage内的其他任何 public 类,他们必须用import关键字激活mypackage 内的名字,使它们能够使用。另一个办法则是指定完整的名称:mypackage.MyClass m = new mypackage.MyClass();
import关键字则可将其变得简洁得多: - 创建独一无二的包名
采用把域名反写的方式:www.baidu.com
package com.baidu - java中有个自动编译可以了解一下
自动编译
为导入的类首次创建一个对象时(或者访问一个类的static 成员时),编译器会在适当的目录里寻找同名
的.class 文件(所以如果创建类 X的一个对象,就应该是 X.class)。若只发现X.class,它就是必须使用
的那一个类。然而,如果它在相同的目录中还发现了一个 X.java,编译器就会比较两个文件的日期标记。如
果X.java 比X.class 新,就会自动编译X.java,生成一个最新的 X.class。
对于一个特定的类,或在与它同名的.java 文件中没有找到它,就会对那个类采取上述的处理。 - Java 访问指示符
针对类内每个成员的每个定义,Java 访问指示符 poublic,protected 以及private都置于它们的最前面—
—无论它们是一个数据成员,还是一个方法。每个访问指示符都只控制着对那个特定定义的访问。如果它们前面什么都没有,我们称之为默认的,无修辞的,友好的1、private访问控制符
在前面已经介绍了private访问控制符的作用,如果一个成员方法或成员变量名前使用了private访问控制符,那么这个成员只能在这个类的内部使用。
注意:
不能在方法体内声明的变量前加private修饰符。
2、默认访问控制符
如果一个成员方法或成员变量名前没有使用任何访问控制符,就称这个成员所拥有的是默认的(default)访问控制符。默认的访问控制成员可以被这个包中的其它类访问。如果一个子类与其父类位于不同的包中,子类也不能访问父类中的默认访问控制成员。
3、 protected访问控制符
如果一个成员方法或成员变量名前使用了protected访问控制符,那么这个成员既可以被同一个包中的其它类访问,也可以被不同包中的子类访问。
4、 public访问控制符
如果一个成员方法或成员变量名前使用了public访问控制符,那么这个成员可以被所有的类访问,不管访问类与被访问类是否在同一个包中。 -
类的访问
public可以公开访问
默认的,只能在包中使用
注意:没有protected和private