Java语言里的包,类,接口

2007-11-13 00:27Update

LifevV.COM编辑部

Java语言里的包,类,接口

Page:  <1|2|3>

本文对Java里的包,类,接口做一下介绍。

我们把[Java Hello World] 一文中的HelloWorld.java程序改造一下,改成以下形式:
IHelloWorld.java
package com.test;

/**
 * HelloWorld interface
 */
public interface IHelloWorld {
    /**
     * Print Hello World.
     */
    public void printHello();
}


HelloWorld.java
package com.test;

/**
 * HelloWorld class
 */
public class HelloWorld implements IHelloWorld {
    /**
     * @param args Arguments
     */
    public static void main(String []args) {
        IHelloWorld helloWorld = new HelloWorld();
        helloWorld.printHello();
    }

    /**
     * {@inheritDoc}
     * @see com.test.IHelloWorld#printHello()
     */
    public void printHello() {
        System.out.println("Hello world!");        
    }
}


对上述文件加以编译之后,执行HelloWorld
#java com.test.HelloWorld
同样会在屏幕上打印出Hello world!信息。

下面我们对该程序加以说明:

包:package
包可以看成类/接口文件的容器,一个包里可以包含0到多个类/接口文件。

包名:
package com.test;
包的定义为:
package+包名;
包跟目录的关系:
包的构造与包中的类的所在目录阶层是一致的。比如上例,HelloWorld.class,classpath为“com\test\HelloWorld.class”时,则包名为“com.test”。
包的引用/导入:
调用方法1:import 包名.*;
表示导入该包下所有类和接口。例:
import com.test.*;


调用方法2:import 包名.类名;
表示导入该包下指定类或接口。例:
import com.test.HelloWorld;



包的作用:
1)    通过包名+类名可以确定一个类名。即使是同名类,但只要位于不同的包下,便被看作不同的类。这可解决同名冲突。
2)    避免一个目录下存在过多的类文件或简化调用。假如没有包,为了能在类之间相互调用,所有JAVA类将位于同一个目录下,这样一个目录将存在过多的类文件,同时会增加重名的风险。
3)    有利于功能的封装。可以在同一个包内只包含功能相似的类和接口。有利于功能的封装和实现细节的隐藏。
4)    隐藏实现细节。同一个包下,只要透露给调用方public的类/接口,可以更好地隐藏实现细节。

Page:  <1|2|3>
好东东,收藏了。 boostwade 2008-02-26 12:14
 
Copyright ©2006-2010 lifevv.com. All Rights Reserved
POWERED BY @pmplat.syboos.com