一、Java使用包(package)这种机制是为了防止命名冲突,访问控制
包声明应该在源文件的第一行,每个源文件只能有一个包声明,这个文件中的每个类型都应用于它。
声名方法如下:
例如:如果一个源文件中没有使用包声明,那么其中的类,函数,枚举,注释等将被放在一个无名的包(unnamed package)中例如,一个Something.java 文件它的内容
package xx.bb.aa
public class Something{
...
}
上述说明:Something.java编译单元中的所有类都放到xx.bb.aa这个package里面,并且这个包它的路径应该是 net/java/Something.java 这样保存的。 package(包)的作用是把不同的java程序分类保存,更方便的被其他java程序调用。
另外,package中所存放的文件一般分一下就分这三种
1,java程序源文件,扩展名为.java。.java文件是一个独立的编译单元,类似c++里面的cpp文件,但是它不需要.h文件,只要.java就足够了,一个.java文件里面可以包含一个public的类,若干package类(package类特征是没有任何访问控制修饰),还有内隐类的话,则还可以包含若干protected和private的类。每个类,都会在编译的时候生成一个独立的.class文件,所以.java和.class不是一对一,而是一对多的关系,不过.java和public的类是一对一的。所有这些.class,都由这个.java开头的package语句来确定自己在package中的位置。
2,编译好的java类文件,扩展名为.class。
3,其他文件,其他任何文件,也称为resource例如图片文件,xml文件,mp3文件,avi文件,文本文件……
二、import关键字:只是一种让你偷点懒少打字的方法,绝对不会影响你的classpath,这点你要好好记住,没有非用import不可的理由,用了import也不会起到类似c里面嵌入某文件内容的效果,它只是一种省事的办法。不在classpath中的class,任你再import也无济于事。
如果你不用import,你用ArrayList这个类,就需要写
java.util.ArrayList。
而用了import java.util.ArrayList;的话
以后代码中写ArrayList就可以了,省事。import可以使用通配符*,*代表某package下所有的class,不包括子目录。
import java.awt.*
不等于
import java.awt.*
import java.awt.event.*
如果你要简写java.awt.event下和java.awt下的类,你不能偷懒,两个都要import。
(例如讲package中的例子,要在别的类中引用它就需要import xx.bb.aa.Something)
)