Java中包是什么

  介绍

这篇文章主要介绍Java中包是什么,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!


要把类放到某个包需要用包语句,事实上,当我们没有使用包语句时,我们的类都被放到了一个默认缺省包,这也是为什么我们运行Java程序时,在运行目录下面不能有同名的. class文件。

此外,<强>一个完整类名是包名+类名强,在没有进口导入的情况下,使用一个类需要给出完整的类名,如java.util.Date。为了方便,Java自动导入两个包. lang和现在文件的缺省包,也就是说:(1)Java规定,其他包使用Java。朗包中的类时无需给出完整类名;(2)缺省包中的类之间(或者说同一个包下面)互相使用也不需要给出完整类名。

<强>,

有包的类和无包的类互相访问有以下规则:(1)无包的类可以访问有包的类,直接导入即可;(2)有包的类无法访问无包的类,直接访问是找同一个包中的,由于不同包需要导入,而无包的类无法导入;(3)在定义类的时候,为了让别人都能使用的到,所以一定要定义一个包。

Java的包表面上看(从路径上看)是有等级的,但实际上并没有,比如java.awt, java.awt.color是两个地位相同的包.java.awt.color并不属于Java。awt。

在采用类名方式使用一个类的时候,先在当前包中查找是否有这个类,如果没有才去导入的包中找。

包的成员

一些相关联的类,接口,枚举,注释类型,包中的类所用到的资源文件如图片等

包的作用

(1)将相关联的接口和类集合到一块

比如,包装图形;就把图形处理相关的模块放到一起

(2)避免了类型之间命名冲突:包作为一种封装,给类提供多层命名空间。

(3)实现了外界对包的访问控制

包的使用(包的声明,导入)

总的来说,包的使用可以总结为三个步骤:如何将类和接口捆绑到包中,如何使用包中的类,以及如何安排文件系统以便编译器找到源文件。

一、定义包

1,带包类的声明

在源代码的第一行使用包关键字定义包。包名通常全部小写,用“!”分隔。

包的命名规范见链接:https://segmentfault.com/a/1190000008711718 https://docs.oracle.com/javase/tutorial/java/package/namingpkgs.html

包的声明有以下原则:(1)包语句必须放在源文件开头;(2)一个源文件只能有一个包语句;(3)包名字全部小写,避免与类,接口的名字冲突。

2,编译带包的类

javac - d目录源文件名。java

3,运行带包的类

java包名。类名

二、使用包

同个包的类之间访问比较简单,在代码中直接以类名使用,而不同包之间的访问则必须满足一个条件:一个类如果希望被其他包中的类访问,那么必须加上公共修饰(注意:用公共修饰的类必须和文件名同名)。不同包之间的使用通常有以下3种方法:(1)使用全名访问类;(2)导入该类;(3)导入包含该类的整个包

1,使用全名

假设有个图形包,其中有个圆类(公共修饰),那么外包访问它时如下所示:

图形。圆cir=new graphics.Circle ();

2,导入该类

上面使用全名的方法有些繁琐,如果要略写或者经常使用这个类时可以这样:

进口graphics.Circle;      公开课PackageTest {   公共静态void main (String [] args) {   圆cir=new圆();   }   }

3,导入整个包

当我们想要使用该包的更多类,比如线类时,可以把该包的所有类都导入:

进口图形。*;      公开课PackageTest {   公共静态void main (String [] args) {   圆cir=new圆();   行线=new ();   }   }

三、管理文件系统

许多Java平台的实现依赖于文件系统的等级制度来管理源文件和类文件。我们一般把类,接口,枚举,注释类型放在可以反映包名的目录中,比如,Rectangle.java属于图形类,我们就放在..... \图形\ Rectangle.java的路径上。同样,我们对其进行编译产生的类文件也要放在类似的目录上(这个目录最好不要和源文件放在一起),这样的好处是当我们要复用某个类时,就知道到哪去找了,JVM在运行程序时也知道去哪里找类。

比如,源文件放在:& lt; path_one> \ \ com \ \图形\ Rectangle.java例子来源

类文件放在:& lt; path_two> \类\ com \ \图形\ Rectangle.class示例,其中,& lt; path_two> \类是类路径(类路径),由类路径系统变量进行设置,而包名是com.example.graphics。编译器,JVM通过将包名称添加到类路径来构造. class文件的路径。

Java中包是什么