package

  1. 将包名放在这个包中每个文件的顶部
  2. 将文件存储在具有适当文件夹名称的文件夹中。该文件夹的名称应该与你的包匹配

Creating a Package, in IntelliJ
1.) File → New Package
1.) Choose package name (i.e. “ug.joshh.animal”)
Adding (new) Java Files to a Package, in IntelliJ
1.) Right-click package name
2.) Select New → Java Class
3.) Name your class, and IntelliJ will automatically put it in the correct folder + add the “package ug.joshh.animal” declaration for you.
Adding (old) Java Files to a Package, in IntelliJ
1.) Add “package [packagename]” to the top of the file.
2.) Move the .java file into the corresponding folder.

default package

在IDEA中,默认包指存于根目录下的文件,其首行没有package关键字。不能被其他类使用。
一般不建议使用,除非这只是一个很小的示例程序。

使用方式

package语句作为Java源文件的第一条语句,指明该文件中定义的类/接口所在的包。 (若缺省该语句,则指定为无名包)。
它的格式为:
package 顶层包名.子包名 ;
包对应于文件系统的目录, package语句中,用 “.” 来指明包(目录)的层次;
包通常用小写单词标识。通常使用所在公司域名的倒置: com.atguigu.xxx
包的作用:

  • 包帮助管理大型软件系统: 将功能相近的类划分到同一个包中。 比如: MVC的设计模式
  • 包可以包含类和子包, 划分项目层次, 便于管理
  • 解决类命名冲突的问题
  • 控制访问权限

    import

    如果要使用的类在当前包下,直接用即可。
    1. Dog d = new Dog(...);
    如果要使用别的包下面的类,一种方式是使用类的全称。
    1. ug.joshh.animal.Dog d = new ug.joshh.animal.Dog(...);
    另一种方式是使用import关键字导入外部类。
    1. import ug.joshh.animal.Dog;
    2. ...
    3. Dog d = new Dog(...);

为使用定义在不同包中的Java类,需用import语句来引入指定包层次下所需要的类或全部类(.)。 import语句告诉编译器到哪里去寻找类。
语法格式:
import 包名. 类名;
注意:
1. 在源文件中使用import显式的导入指定包下的类或接口
2. 声明在包的声明和类的声明之间。
3. 如果需要导入多个类或接口,那么就并列显式多个import语句即可
4. 举例:可以使用java.util.
的方式,一次性导入util包下所有的类或接口。
5. 如果导入的类或接口是java.lang包下的,或者是当前包下的,则可以省略此import语句。
6. 如果在代码中使用不同包下的同名的类。那么就需要使用类的全类名的方式指明调用的
是哪个类。

Multiple markers at this line
- The type Order is ambiguous
- The type Order is ambiguous
7. 如果已经导入java.a包下的类。那么如果需要使用a包的子包下的类的话,仍然需要导入。
8. import static组合的使用:调用指定类或接口下的静态的属性或方法 ,落脚点是类中的属性或方法