这篇文章已经把java的import讲的很好,我不必重复:
简单总结一下:
1、java程序文件中,要引用外部的类时,如果不指定import,则要写完整的包名,例如,要定义类net.schmizz.sshj.connection.channel.direct.LocalPortForwarder的对象就要这么写:
net.schmizz.sshj.connection.channel.direct.LocalPortForwarder lpf = new net.schmizz.sshj.connection.channel.direct.LocalPortForwarder(......)
使用import后就可以简化,例如:
import net.schmizz.sshj.connection.channel.direct.LocalPortForwarder
LocalPortForwarder lpf = new LocalPortForwarder(......)
2、import可以导入类和包,导入类是import以类名结尾,这个类也可以是某个类中的内嵌类,导入包是以*结尾,表示导入包内的所有public类,注意只能导入public类,例如:
//导入包,导入其中的所有类
import net.schmizz.sshj.connection.channel.direct.*
//导入类,导入LocalPortForwarder类的内嵌类Parameters
import net.schmizz.sshj.connection.channel.direct.LocalPortForwarder.Parameters
3、import导入包,在程序中,可以省略类名前的包名部分,在程序中,仍然要指定类名。import导入类,也只是可以省略类名前包名的部分,例如:
//没有import包或类,正确写法
net.schmizz.sshj.connection.channel.direct.LocalPortForwarder obj = ...;
//导入包
import net.schmizz.sshj.connection.channel.direct.*;
//正确写法
LocalPortForwarder obj = ...;
//导入类
import net.schmizz.sshj.connection.channel.direct.LocalPortForwarder;
//正确写法
LocalPortForwarder obj = ...;
4、 源码中import了包或者包的类,编译和运行时还需要指定,这个包或者类所在的jar或包含class文件的目录才行,这个可以用maven管理,就是另一个故事了。