Java教程 Java类中的包

开发 后端
Java应用是由若干个类组成的。但是从逻辑上考虑,这些类解决的问题都是不同的。Java应用中的类也一样,也应该按照逻辑进行分类,放在不同的目录下,这就是包的概念。本文了讲述Java类的包。

本文是Java教程之Java类中的包。

Java应用是由若干个类组成的。但是从逻辑上考虑,这些类解决的问题都是不同的。比如某些类解决了数据库访问问题,某些类解决了安全控制问题…就如同我们计算机硬盘上的文档,我们不会把它们都杂乱无章的放在某个硬盘的根目录下,而是按照个人习惯进行分类,放在不同的文件夹下。Java应用中的类也一样,也应该按照逻辑进行分类,放在不同的目录下,这就是包的概念。

虽然Java语法本身,不要求必须给某个类显式指明包名,可以使用默认包。但是,在开发Java项目的过程中,任何类都应该有包。对一个类指定包名,使用如下语法即可:

  1. package com.csst.db;  
  2.  
  3.  public class CustomerDAO {  
  4.  
  5.  }     

只要指定了package,编译CustomerDAO后,class文件就将存在于com/csst/db文件夹下。从物理上讲,包其实就是文件夹。但是需要注意的是:只要一个类指定了包名,那么包名就是名字空间的一部分,也就是说,CustomerDAO.class的名字其实是com.csst.db.CustomerDAO,而不是CustomerDAO。正因为如此,使用该类,就得指定完整的名字,如:

  1. package com.csst.service;  
  2.  
  3. class CustomerService {  
  4.  
  5.  private com.csst.db.CustomerDAO dao;  

注:如果CustomerService的包名与CustomerDAO包名相同,那么不需要指定包名。

而在实际应用中,没有人愿意写这样冗长的名字,一般都是使用import关键字,把不同包的类进行导入。

  1. package com.csst.service;  
  2.  
  3. import com.csst.db.CustomerDAO;  
  4.  
  5. public class CustomerService {  
  6.  
  7.         private CustomerDAO dao;  
  8.  

注:如果需要同时使用com.csst.db包中很多类,可以使用import com.csst.db.*语句导入多个类。

总之,包就是从逻辑上将类进行分离。当Java类有了Java类中的包后,不仅能很好的避免重名问题(包名就是类名的一部分,保证包名不同较容易),而且还能很好得使用Java语言的修饰符,进行权限控制。

【编辑推荐】

  1. 20个开发人员非常有用的Java功能代码
  2. 走进Java 7中的模块系统
  3. JavaFX 1.2 已经发布 主要新功能一览
  4. 2009年十大Java技术解决方案
  5. 2008最值得学习的五种JAVA技术
责任编辑:仲衡 来源: taomoon719的专栏
相关推荐

2009-06-12 12:56:29

Java类Java教程

2009-06-12 13:19:55

Java类的组成Java教程

2011-07-10 14:07:59

JAVA

2011-05-26 08:36:07

JDKJava

2012-04-05 13:37:10

JavaString

2009-03-24 08:35:57

AndroidGoogle移动os

2009-05-30 09:24:24

AndroidGoogle移动OS

2009-06-12 13:48:13

数据类型string类Java教程

2009-06-30 15:18:10

StringBuildJava

2020-03-02 14:55:02

JavaBigDecimalAPI

2018-09-12 15:38:42

Javaatomic编程

2012-03-07 15:13:07

PhoneGapmenu菜单

2009-06-22 08:39:27

Java常见错误Java类

2009-02-03 09:42:53

JAVA类JVM指令forName方法

2011-06-02 14:51:07

JAVA修饰符

2011-07-05 10:27:26

JAVA闭包

2009-06-23 14:08:00

Java Socket

2019-12-09 15:08:30

JavaTomcatWeb

2010-06-28 18:21:36

UML类图设计

2023-09-18 08:56:57

StringJava
点赞
收藏

51CTO技术栈公众号