`
liuwei1981
  • 浏览: 752604 次
  • 性别: Icon_minigender_1
  • 来自: 太原
博客专栏
F8258633-f7e0-30b8-bd3a-a0836a5f4de5
Java编程Step-by...
浏览量:156173
社区版块
存档分类
最新评论

19.package语句

 
阅读更多

接着来讲讲在Java源文件中,除了类之外,另外非常重要的两个部分:package和import。

 

这篇来说package。

 

 

按照一般的解释来说,package的出现,是为了解决同名类的问题的。

 

这么说吧,

 

如果你现在有两个同名的文件,要保存在你的硬盘上,你怎么处理?不要提重命名,不允许改名。怎么办?其实建立两个文件目录,把两个同名文件分别放到两个不同的目录中,就可以了。

 

对极了。实际上,我们可以把package看做是文件目录,事实上,如果一个类设置了package,最后在编译好之后,处理方式就是讲编译好的类,按照类中package的声明,放入对应的目录中。比如你有两个Student类,实现逻辑不一样,一个是小学生、一个是大学生,当然都是学生类,这样你就可以建立两个package,分别把两个编译后的类文件放入相应的目录里面,即该类中声明的package的位置。

 

就像你可以建立多级目录一样,在Java中,package的声明也可以是多级的有层次的。还拿两个学生类来说,都声明为public class Student,但是声明不同的包。Java使用 . 来分割各个层级的package目录。

 

package cn.edu.university

 

package cn.edu.primary

 

这样,把代表大学生的学生类放入第一个包中,把代表小学生的类放入第二个包里面,就解决了类命名冲突的问题了。

 

拿第一个包来说明,这个包路径,就是一个文件目录路径,只要把.换成\,就是一个标准的windows目录了。cn\edu\university

 

package语句的基本语法如下:package  <top_pkg_name> [ .<sub_pkg_name>] * ;

 

为了避免不同的公司之间类名的重复,Sun建议使用公司Internet域名的倒写来当作包名,例如,使用域名tsinghua.edu.cn的倒写 cn.edu.tsinghua来作为包的名称。

 

要注意的是,如果使用命令行的javac编译命令对Java源文件进行编译,编译好的只是一个类文件,如果要使用这个类文件(类),你必须将这个类文件放入到对应该类的package声明的目录下,就像前面说到的。并且在使用该类的时候,要完整的引用该类。比如要引用前面的那个大学生类,必须这么来写:java cn.edu.university.Student。

 

你可能会觉得这么用很麻烦,大家都是这样认为的。不过不用担心,基本上常用的IDE工具,都提供package声明处理的基本操作。比如Eclipse,你只需要首先建立相应的package,然后再相应的package里面创建类,Eclipse会自动对正确的类进行编译,并按照类所处package,在编译后的位置,建立相应的目录,把编译后的类文件放进去,所以,不用担心,你需要做的只是编写代码,后续的动作都由IDE来做,不然软件开发效率怎么来提高啊?

 

不过现在使用package的目的已经和最初的不太一样了。实际上在实际开发里面,很少会出现重名的类文件的(除非是多方合作,使用其他第三方包等),更多的时候,package和我们现在使用文件夹目的是一样的,使用文件夹来讲不同类型、不通功能的文件分门别类的放置,方便使用和查找。想想你的电脑上的文件目录,没错吧。

 

package就说到这,在IDE中使用package,几乎是没有任何难度门槛的。

 

下一篇来说说import。

分享到:
评论

相关推荐

    VHDL代码书写规范

    7 5.1.5 语句.............................................................. 6 5.1.4.3 实体使用注意内容 ............................................... 6 5.1.4.2 实体使用建议...............................

    Oracle从入门到精通

    1.3、基本的SQL SELECT 语句................................ 1.4、SELECT语句........................................... 1、语法:................................................. 2、SQL语句说明:..........

    VHDL实用教程,硬件描述语言

    § 3.3 块语句结构 BLOCK .....................................................................................29 § 3.4 进程 PROCESS .......................................................................

    VHDL实用教程[完整版]_潘松_PDF高清+word文档

    § 3.7 程序包 PACKAGE ........................................................................................48 § 3.8 配置 CONFIGURATION ................................................................

    Oracle 10g 开发与管理

    8.3程序包(package) 76 1.规范 76 2.主体 76 3.私有成员 77 4.实例化 77 5.重载 77 6.管理程序包和执行权限 77 8.4依赖性 78 练习 78 第九讲 索 引 80 一.了解索引 80 1.B树索引(Balanced) 80 2.位图索引 80 3...

    程序设计基础答案

    A) for 语句 B) while 语句 C) switch 语句 D) do - while 语句 19.下列程序段执行后t1的结果是( )。 int x1 = 9, x2 = 6, t1; t1 = x1 &gt; x2 ? x1 : x2; A) 6 B) 9 C) 11 D) 3 20.对于一个三...

    〖程序设计基础〗练习题2及答案

    19. 设 i、j、k 为类 x 中定义的 int 型变量名,下列类 x 的构造函数中不正确的是( )。 A) x( int m){ ... } B) void x( int m){ ... } C) x( int m, int n){ ... } D) x( int h,int m,int n){ ... } 20. 下列方法...

    springmvc-jdbcTemplate

    package com.flong.commons.persistence.dao.impl; import java.util.ArrayList; import java.util.List; import java.util.Map; import org.apache.commons.collections.CollectionUtils; import org.apache.log4...

    Java 2实用教程(第三版)实验指导与习题解答

    实验3 使用package语句与import语句 13 上机实践4 继承与接口 15 实验1 继承 15 实验2 上转型对象 17 实验3 接口回调 18 上机实践5 字符串、时间与数字 19 实验1 String类的常用方法 19 实验2 比较日期的大小 21 ...

    Oracle PL/SQL语言初级教程

    包(package) 6 变量和常量 6 执行部分 10 控制结构 12 小结 17 2.PL/SQL的复合数据类型 17 使用记录 19 PL/SQL集合 23 嵌套表 24 使用集合 25 集合的方法 28 关于集合之间的比较 29 3.PL/SQL单行函数和组函数详解 ...

    第一章程序设计基础知识板块第一节内容

    37 Java中的语句可分为方法______________、__________________、_________________、______________和package语句和______________语句 38 Java中的语句可分为方法调用语句、表达式语句、复合语句、控制语句、...

    Java语言编码规范

    3.1.2 包和引入语句(Package and Import Statements) 5 3.1.3 类和接口声明(Class and Interface Declarations) 5 4 缩进排版(INDENTATION) 6 4.1 行长度(LINE LENGTH) 6 4.2 换行(WRAPPING LINES) 6 5 注释...

    java2实验实用模板代码

    实验3 使用PACKAGE语句与IMPORT语句 14 上机实践4 继承与接口 17 实验1 继承 17 实验2 上转型对象 19 实验3 接口回调 20 上机实践5 字符串、时间与数字 22 实验1 STRING类的常用方法 22 实验2 比较日期的大小 24 ...

    Neusoft公司Java编码规范

    2.10 属性(Properties) 19 2.11 方法(Methods) 20 2.12 内部类(Inner Class) 25 3 例子 25 编码规范 28 1 命名规范 28 1.1 Package命名规范 28 1.2 Class命名规范 29 1.3 Method命名规范 31 1.4 变量命名规范 ...

    hibernate总结

    &lt;column name="cdate" length="19" /&gt; &lt;one-to-many class="org.wllt.www.po.Emp" /&gt; Hibernate映射多对一: public class Emp implements java.io.Serializable { private Integer empid; ...

    21天学通Java-由浅入深

    117 6.10 小结 118 6.11 习题 118 第7章 控制逻辑(精彩视频:50分钟) 120 7.1 包(package) 120 7.1.1 创建一个包 120 7.1.2 如何使用包 121 7.1.3 什么是静态引入 122 7.2 类的访问级别 123 7.2.1 公开的访问...

    Java入门1·2·3:一个老鸟的Java学习心得.PART3(共3个)

    第8章 Java中的包(Package)命名习惯和注释 193 教学视频:43分钟 8.1 Java中的包(Package) 193 8.1.1 Java中的包 193 8.1.2 在Eclipse中使用包 194 8.1.3 天上掉下个package 197 8.1.4 包带来了什么? 197...

    Oracle 11g视频教程

    day19_增强的Group by day20_高级子查询 day21_主机变量锚定、游标变量 day22_异常处理 day23_procedure day24_自制事务调用者权限、函数、确定性函数 day25_package、trigger day26_体系结构组件概览 day27_管理...

    Java测试题1答案

    } } 1) a sequence of 5 0’s will be printed 2) Error:ar is used before it is initialized 3) Error Mine must be declared abstract 4) IndexOutOfBoundes Error 19、编译和执行下例...

Global site tag (gtag.js) - Google Analytics