8. package与import

我们在当前代码中除了一些JAVA的常规写法以外,还发现了如下代码:

package❶ club.yunzhi.springcourse;

import❷ org.springframework.boot.SpringApplication;
import❷ org.springframework.boot.autoconfigure.SpringBootApplication;
import❷ org.springframework.web.bind.annotation.RequestMapping;
import❷ org.springframework.web.bind.annotation.RestController;

@SpringBootApplication
@RestController
public class SpringCourseApplication {

在文件的头部以❶package打头,然后就各种❷import。其中package表示当前文件位于哪个中,而import的作用则是由哪个中去引用哪个文件。

我们在大学课程中不去声明任何 JAVA 程序也是工作的,那么为什么在此我们要使用package来声明JAVA 的类属于哪个的呢?

我也叫李刚

李刚是个好名字,以至于我的小学同学有李刚,我的高中同学有李刚,我的大学同学里还有李刚。但李刚还是那个李刚,李刚依然不是那个李刚。大家刚有手机那会,自己常常的拨号时犯嘀咕:这个李刚是哪个李刚?后来自己聪明的给他们命名为小学李刚、高中李刚、大学李刚,哈哈问题竟然迎刃而解。

没错,这就是为什么要有pakeageimport

把上面的问题为代码表示为:

// 唐山市乐亭县康刘小学
package tangshan.laoting.kangliuxiaoxue;
// 李刚
class LiGang {}
// 唐山市乐亭县闫各庄高中
package tangshan.laoting.yangezhuanggaozhong;
// 李刚
class LiGang {}
// 天津市河北工业大学
package tianjin.hebut;
// 李刚
class LiGang {}
// 要给高中同学打电话,导入高中的李刚
import tangshan.laoting.yangezhuanggaozhong.LiGang;
package club.yunzhi;

class Test {
    public void callLiGang() {
            // 使用是前面import过来的高中李刚            
            LIGang liGang = new LiGang();
            this.call(liGang);
    }
}

没错,正如你想的一样:package说明类住在哪;当我们需要某个类来帮忙时,使用import将由类所住的位置将其引入。