当代码量越来越大,类越来越多。尤其会增加同名类的风险。所以对类进行管理就显得非常重要。
包(package)机制是java中管理类的重要手段。
包名的命名方式:业内默认的做法是使用公司的网络域名的倒写来当做包名。
java中的包也起到命名空间的作用。相同命名空间不允许存在同名的类,不同的命令空间可以存在同名的类。
在一个源文件中要引用其他类的话,可以使用关键字import。
以一言概之,java中"包"的引入的主要原因是java本身跨平台特性的需求。
因为java中的所有的资源也是以文件方式组织,这其中主要包含大量的类文件需要组织管理。
java中同样采用了目录树形结构。
虽然各种常见操作系统平台对文件的管理都是以目录树的形式的组织,
但是它们对目录的分隔表达方式不同,为了区别于各种平台,java中采用了"."来分隔目录。
一个java文件可以写多个类,但是只能有一个public的类,并且public class的类名要与文件名一致!
其他的类属于default类,当然还有匿名内部类;
然后这些java文件又是以目录的形式组织在一起。
如果要引用其中的某个类,则需要使用如下格式即可:
就拿android.util.Log来分析一下:Log是我们要引用的一个类;
android和util都是一层一层的目录,在包机制下可以理解成包;
接下来去文件夹里找找Log类在哪?
可以发现原来Log.java里面定义了Log类,然后Log.java文件存在于如下路径中:
C:android-sdk-windowssourcesandroid-29androidutil
android.util就是我们import时候使用的包,和子包名称。
那么前半部分就可以理解是我们查找包的路径环境变量:C:android-sdk-windowssourcesandroid-29
这个android包是android-29提供的。
=======================================================
相关链接:
完全掌握java中的包机制:https://www.xuebuyuan.com/1633256.html
浅析java中的package机制:https://www.jianshu.com/p/8314a8a5351d