为什么要使用package ?
如果同一个班级里出现两个叫“陈勇”的同学,那么我们老师通常会在我们的名字前增加一个限定,例如大陈勇、小陈勇以示区分。
类似地,Oracle公司的jdk,他们也会提供成千上万、具有各种用途的类,我们自己在开发过程中也要提供大量的类,这些类也会发生同名的情况;那么Oracle也允许我们在类名前增加一个前缀来限定这个类。java引入了包(package)机制,提供了类的多层命名空间,用于解决类的命名冲突、类文件管理等问题。
java允许将一组功能相关的类放在同一个package下,从而组成逻辑上的类库单元。如果希望把一个类放在指定的包结构下,我们应该在java源程序的第一个非注释行放置如下格式的代码:
package packageName;一旦java源文件中使用了package语句,就意味着该源文件里定义的所有类都属于这个包。
java包机制需要两个方面保证:
1.源文件里使用package语句指定包名;
2.class文件必须放在对应的路径下。
注意:一个类中只有一个package
如何在doc编译带包名的类?
1.当源文件和指定的包在同一目录,则可以使用以下命令进行编译:
javac 目录/java文件名+扩展名
2.当源文件和指定的包不在同一目录,则可以使用以下命令进行编译:
javac -d . java文件名+扩展名
如何在doc运行带包名的类?
运行带包名的类和不带包名的类是有区别的,运行带包名的类必须加上包名如:
java 包名.java文件名
如何访问带包名的类?
1.如果在同一个包下可以自由访问;
2.如果不在同一个包下则需要带上包名如:(Java.util.Scanner sc = new Java.util.Scanner(System.in)).