隐藏实施过程

真的很久没碰跟面向对象有关的东西了

今天把think in java翻来看来了一下

 

5.1 包:库单元

     编译一个.java 文件时,我们会获得一个名字完全相同的输出文件;但对于.java 文件中的每个类,它们都有一个.class 扩展名。因此,我们最终从少量的.java 文件里有可能获得数量众多的.class 文件。

    如以前用一种汇编语言写过程序,那么可能已习惯编译器先分割出一种过渡形式(通常是一个.obj 文件),再用一个链接器将其与其他东西封装到一起(生成一个可执行文件),或者与一个库封装到一起(生成一个库)。

    但那并不是Java 的工作方式。一个有效的程序就是一系列.class 文件,它们可以封装和压缩到一个JAR 文件里(使用Java 1.1 提供的jar 工具)。Java 解释器负责对这些文件的寻找、装载和解释

 

   “库”也由一系列类文件构成。每个文件都有一个public 类

   package mypackage;
   public class MyClass {
   // . . .

 

   使用MyClass,或者想使用mypackage 内的其他任何public 类,必须用import 关键字激活mypackage 内的名字,使它们能够使用。

 

   import mypackage.*;
   // . . .
   MyClass m = new MyClass();

 

另一个办法则是指定完整的名称 mypackage.MyClass m = new mypackage.MyClass();

 

5.2 Java 访问指示符

 

  1 “友好的”

   默认的访问没有关键字,但它通常称为“友好”(Friendly )访问。这意味着当前包内的其他所有类都能访问“友好的”成员,但对包外的所有类来说,这些成员却是“私有”(Private)的,外界不得访问。单个编译单元内的所有类相互间都是自动“友好”的。因此,我们也说友好元素拥有“包访问”权限

  2 public:接口访问

使用public 关键字时,它意味着紧随在public 后面的成员声明适用于所有

  3 private 不能接触

private 关键字意味着除非那个特定的类,而且从那个类的方法里,否则没有人能访问那个成员。同一个包
内的其他成员不能访问private 成员

  4 protected  友好的一种

   若新建一个包,并从另一个包内的某个类里继承,则唯一能够访问的成员就是原来那个包的public 成员。当
然,如果在相同的包里进行继承,那么继承获得的包能够访问所有“友好”的成员。有些时候,基础类的创
建者喜欢提供一个特殊的成员,并允许访问衍生类。这正是protected 的工作。也就是从不同包中的基类继承出来的子类通过protected访问基类的友好成员

你可能感兴趣的:(java,工作,汇编,jar,import,编译器)