初学java,对这些概念不是很清楚。大概了解了一点,但是有困惑如下:
1,import其实和c里面的include还是有区别的是吧?import只是帮我们多打了点字,不用import也是可以的,就是自己要多打点字对吗?
2,package的作用只是为了包含多个java文件,方便被其他java文件来import它里面的java文件是吧?那如果package内的java文件想使用本package内的其他java文件,需要code“包名.java文件名”吗?还是直接code java文件名就可以?
3,jar包是一个java文件编译后产生多个class文件的集合对吗?
4,一个java文件里面的非public类,我看很多资料都说非public类不可以被包外使用,但可以被包内引用,这里的“包”指的是什么?指的是java文件还是package,还是jar?
万分感谢!!
C/C++里面的include是把源文件包含进来一起编译,java里面的import只是告诉java编译器编译该源文件需要使用到这些类,Java编译器会到class path中加载这些类
java里的package作用和c++里的namespace类似,不同的是java强制package和文件夹对应以方便加载。
yes,一开始jar包的作用是方便部署,现在jar包里面可以包含一些meta信息,这样jar有点类似组件化的思想了,可以动态加载和卸载,比如OSGi里面的jar就是一个组件。
包指的是该类所属的package,就是每个java文件最顶上申明的那一行。非public分为private和package作用域的,如果什么都不声明那就是package作用域,package作用域表示只有同一package下的class才能访问。