java的包

说到包,就是一个容器,里面可以存放许多东西,而java中的包,就是用来装类的,这样就可以方便的组织自己的代码,并将自己的代码与别人提供的代码库分开管理,避免产生混乱。

 

java之所以这么强大,有很大原因是因为java拥有强大的类库,而类库就是使用包组织起来的。

标准的java包具有一个层次结构。就像硬盘的目录嵌套一样,也可以使用嵌套层次组织包。

所有的标准java包都处于java和javax包层次中。

 

包可以很好的确定类名的唯一性,而Sun公司建议将公司的因特网域名以逆序的形式作为包名,很明显,这更加确定了类名的唯一性。比如,假设的我注册的域名是beibeidezhuye.com,那么我就可以创建一个名为com.beibeidezhuye这样的一个包来管理我的代码。

 

额。。。说了这么多,好像还没提到怎么使用包,下面就说明一下如何使用包和将自己的类放入包中:

包的使用无非就是使用其他包中的类和将自己的类放在一个包中

使用其他包中类的操作叫做导入包(类),而根据导入的方法不同,可以分为导入和静态导入

将自己的类放在一个包中可以在自己的代码的最上方写上 package 包名

 

于是,下面就一一道来:

首先看看导入的方法,导入的方法有两种:第一种方式是在每一个类名之前添加完整的包名,第二种方法就是使用import关键字导入。

例子:

第一种:

第二种:

注:    .*叫做通配符。

或者直接具体到某个类:

 

然后是静态导入,静态导入的作用就是可以使用导入后的静态方法和静态域,而不用再加类名前缀,当然,也可以具体到某个方法。

示例1:

示例2(导入具体的方法)

 

下面介绍如何将自己写的类放入包中:

没错,只需import包名(可以到具体类)即可,简单霸气。

示例:

这个类此时就在com.zhangyanjie这个包中

如果你这时突发奇想想使用控制台的命令来编译这个文件,那么可以使用类似于以下的命令:

javac com/zhangyanjie/PackageTest.java

然后运行的时候就得使用如下命令:

java com.zhangyanjie.PackageTest

 

其实包这个东西并不是什么神秘的东西,如果你使用文件管理器跑到你的项目目录下查看,就会发现其实就是新建了一个文件夹,把你的类放进去了,所以对于为什么使用命令行编译的时候要加入路径就不足为奇了,蛤蛤。

 

说了这么多,我们对于类的导入和将自己的类放入包中的操作都会了,但是,下面有几个值得我们注意的问题:

(1)使用*号时只能导入一个包,而不能有类似于import java.*或者import java.*.*的导入语句。

(2)不排除导入的两个包中使用了同一个类名、变量名或常量名的意外情况,这时候就应该特别写一句具体导入哪个包中的类、变量名或常量名。如果两个包中的都需要用,那么没办法,只能使用上面说的第一种导入方法。

(3)虽然我们感觉上import与c++的#include一样,但是两者其实并没有什么共同之处,后者(c++)必须使用#include将外部特性的声明加载进来,这是因为后者(c++)的编译器无法查看任何文件的内部,除了正在编译的文件以及在头文件中明确包含的文件,而前者(java)编译器可以查看其它文件的内部,只要告诉它到哪里去看就行了。在c++中,与包机制类似的是命名空间。

(4)包的作用域是default(实际上并没有这个关键字)。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

_Kirito

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值