趣文网 > 作文大全

跟我学java编程—理解Java包的概念

2020-12-02 04:10:01
相关推荐

前面讲到Java项目可以管理几十个甚至更多的类文件,不同功能的类文件被组织到不同的包中,包类似于文件系统中的文件夹,它可以允许类组成较小的类文件夹,易于找到和使用相应的文件。

如同文件夹一样,包也采用了树形目录的存储方式。同一个包中类名字是不同的,不同包中类的名字可以相同,当同时调用两个不同包中相同类名的类时,应该加上包名加以区别。因此,包可以避免名字冲突。

JDK中定义的类就采用了“包”机制进行层次式管理。例如,下图显示了其组织结构的一部分。

图 10-26 Java包逻辑结构

从上图可以看出,一个名为Java的包中又包含了两个子包:io包和lang包。lang包中包含了System、String、Object这三个类的定义。事实上,Java包中既可以包含类的定义,也可以包含子包,或同时包含两者。从逻辑上讲,包是一组相关类的集合,从物理上讲,同包即同目录。

在java中用关键字“package”来创建包,HelloWorld项目HelloWorld.java给出了包创建代码样例:

HelloWorld项目包逻辑结构如下图所示:

图 10-27 HelloWorld项目包逻辑结构

HelloWorld项目包逻辑结构对应的物理目录结构如下图所示:

图 10-28 HelloWorld项目物理目录结构

其中,逻辑结构图中的项目节点HelloWorld对应文件目录HelloWorld,逻辑结构图中的目录节点src对应文件目录src,逻辑结构图中的包节点hello对应文件目录hello,逻辑结构图中的HelloWorld.java对应文件目录hello下的HelloWorld.java。

创建包时需要注意如下几点:

(1)创建包时用package关键字;

(2)如果有包声明,包声明一定作为源代码的第一行;

(3)包的名称一般为小写,包名要有意义。例如:数学计算包名可以命名“math”,再如,绘图包可以命名“drawing”;

为了使用不在同一个包中的类,需要在java程序使用import关键字导入这个类,前面的例子经常使用Scanner类获取用户的输入,Scanner类包含在Java 核心类库util包中,因此程序要使用Scanner类,就需要导入util包,导入util包语句如下:

import java.util.*;

该条语句意思是导入Java核心类库util包中的所有类,其中import是导入包关键字,Java.util是指Java核心类库中的util包,*是导入util包中的所有类。

使用实例如下:

//导入Java.util包中的Scanner类

import Java.util.Scanner;

//导入Java.util包中的Date类

import Java.util.Date;

//导入Java.net包中的所有类

import Java.net.*;

在Java代码中,import语句应位于package语句之后,类定义之前,可以有多条import语句。

JDK中常用包介绍

JDK提供了丰富的类库,借助它提供的说明文档,可以方便地解决编程过程中的很多问题。JDK常用的包提供的主要功能如下:

● Java.lang:包含一些Java语言的核心类库,如String、Math、Interger、System和Thread。

● Java.util:包含一些实用工具类,如定义系统特性、日期时间、日历、集合类等。

● Java.io:包含能提供多种输入输出的文件读写类。

● Java.net:包含执行网络相关操作的类。

● Java.sql:Java操作数据库的一些API。

● Java.text:包含了一些用来处理文本、数字和消息的类和接口。

● java.awt:用来构建和管理Java程序图形用户的界面的类。

● Javax.swing:在awt基础上构建的一套新的图形界面类。

■ 知识点拨

同一个包中的类不需要被导入,当代码使用外部包中的类时,需要用import语句导入包含该类的包。

代码使用外部包中的类,另外一个方法是在代码中使用类的完全限定名称。例如,在使用Scanner的代码中,如果省略了导入Scanner的语句,则需要在使用Scanner类的位置使用Java.util.Scanner。

Java编译器默认为所有的Java程序引入了JDK的Java.lang 包中的所有的类。其中定义了一些常用类:System、String、Object、Math等。因此我们可以直接使用这些类,而不必显式引入。但使用其他包中的类时,则必须先引入、后使用。

阅读剩余内容
网友评论
相关内容
延伸阅读
小编推荐

大家都在看

学校过六一儿童节作文 读书类作文600字初中 种玉米作文200字 值得我尊敬的一个人作文 三年级书信作文300字 一件有趣的事作文450字 湖南语文高考作文题目 我学会了煮方便面作文 写事的作文100字左右 我想对老师说作文400字 蓝天保卫战英语作文 男朋友打女朋友屁股作文 我渴望时光倒流作文 我会做家务作文300字 中考作文没写完扣几分 online shopping 英语作文 八年级上册英语第五单元作文 我最喜欢的动物作文400字 我的理想作文500字医生 以方法为话题的作文 这也是课堂作文400字 粽叶飘香作文600字 红楼梦读后感作文500字 以成长为话题写一篇作文 作文快乐的端午节300字 以变为题的作文600字 从不同角度看问题的作文 自考大学语文作文范文 最美的行囊作文800字 我的端午假期英语作文