java中的import和package机制
最近学了点java基础,在遇到import和package部分时看了几遍视频,还是有点糊涂,今天亲自做了一下实验,恍然大悟,下面分享给大家:
java的package的作用类似于c++的namespace的作用,防止名字相同的类产生冲突,这不是我们想要的。看一下package的使用。
我在路径为E:\java\testpackage\下写一个cat.java文件如下:
package com.cxue; public class Cat { }
编译通过下面我们在相同的目录下写一个Dog类来掉用Cat类如下:
public class Dog { public static void main(String[] args) { Cat c = new Cat(); } }
我们编译出现了下面的错误:
虽然我们把两个类放到了一起但不能直接访问了,为什么呢,就像两个不错的哥们,之前没有package的时候相当于”默认是可以在一起混的“,要打算用他的东西,直接用new做一个就行了,用了package就不一样了,打上标签,就像我们现实生活中毕业了,各分两地,再没有任何通信方式的情况下我们只能去他指定的城市去找他(尽管我们在一个城市,因为我们“没有联系”不知道,就像我们现在这种情况在一个相同的文件夹下,即使在一起),告诉他我要用一下你的某些东西,我们才能new制作一个才行呀。
看样子我只能给放到标签的位置(当前目录com下cxue里),我们在进行编译
还是出了问题,这是因为我们在使用Cat类时还采用原来的方式,打上标签了就要换种方式,就像我要找到哥们必须要比之前在一起时费点事,我改变为下面的方式:
public class Dog { public static void main(String[] args) { com.cxue.Cat c = new com.cxue.Cat(); } }
编译通过如下:
但这样太麻烦了,不如我们提前告诉人家一声,以后就直接用,顺其自然import排上用场了。
再次修改代码如下:
import com.cxue.*; public class Dog { public static void main(String[] args) { Cat c = new Cat(); } }
编译通过。
完毕: