day21包机制和import机制

一、为什么要使用package?

package是java中包机制。包机制的作用是为了方便程序的管理。
不同功能的类分别存放在不同的包下。(按照功能划分的,不同的软件包具有不同的功能。)

简单来说就是方便程序的管理。

二、package怎么用?

package是一个关键字,后面加包名。例如:
package com.bjpowernode.javase.chapter17;
注意:package语句只允许出现在java源代码的第一行。

补充:以后说类名的时候,如果带着包名描述,表示完整类名。
如果没有带包,描述的话,表示简类名。
java.util.Scanner 完整类名。
Scanner 简类名

三、命名规范

一般都采用公司域名倒序的方式(因为公司域名具有全球唯一性。)
包名命名规范:
公司域名倒序 + 项目名 + 模块名 + 功能名

四、有package的java程序怎么编译?怎么运行?(了解即可,以后用集成开发环境,很少用到这个)

采用之前的编译和运行不行了。
类名不再是:HelloWorld了。
类名是:com.bjpowernode.javase.chapter17.HelloWorld

编译:
javac -d . HelloWorld.java
解释一下:
javac 负责编译的命令
-d 带包编译
. 代表编译之后生成的东西放到当前目录下(点代表当前目录)
HelloWorld.java 被编译的java文件名。

运行:
java com.bjpowernode.javase.chapter17.HelloWorld

五、关于import的使用。

5.1、import什么时候使用?

A类中使用B类。
A和B类都在同一个包下。不需要import。
A和B类不在同一个包下。需要使用import。
java.lang.*;这个包下的类不需要使用import导入。

5.2、import怎么用?

1、import 完整类名;
2、import 包名.*;

3、import语句只能出现在package语句之下,class声明语句之上。

5.3、注意:

1、import java.util.Scanner; // 完整类名。

// 同学的疑问:这样是不是效率比较低。
// 这个效率不低,因为编译器在编译的时候,会自动把变成具体的类名。
import java.util.
;

// 想省懒劲你不能太省了。
2、import java.; 这是不允许的,因为在java语言中规定,这里的只代表某些类的名字。

3、import *是不可以的。import java.*也是不可以的,*只代表类名。