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

20.import语句

 
阅读更多

这次来讲讲import的作用以及用法。

 

package的应用使得Java开发大型的软件成为可能。package可以把大量的class类按照业务功能、功能类型等标准,进行分门别类的放置管理。但是同时也带来了一个问题:不在同一个包里面的类,怎样互相引用?

 

 

这种情况是会不断经常出现的。比如,开发一个学校校务管理系统,对学生成绩进行管理,学生成绩相关的信息有:学生信息、课程信息、授课老师信息等等。这几个业务功能类,很有可能放在不同的package里面,而学生成绩信息功能类要使用这些类怎么来找到它们?

 

自动根据类名,由Java编译器来自动检索整个代码库,这显然是不可能的,更何况还有同名的类!

 

实际上,在编译器定位你所创建的类所访问的其他类的过程中,包(package)扮演了重要的角色。当编译器碰到一个类对另一个类的引用时,它会在当前的包中和设置的CLASSPATH中寻找这个类,以检查这个类是否能在这些路径中找到。

 

解决办法就是再使用的时候,不仅要告诉Java编译器你要调用的类名,还得描述清楚这个类它所处的包路径,Java编译器就会按照包路径,在相应的目录中查找到该类,完成该类的引用。

 

但是这样使用起来太麻烦了,如果你每次使用学生类都得这么引用:cn.edu.university.Student,估计写不了10次,就得崩溃了,更何况一个类里面不会只引用一个其他package的类,你的代码里面充斥着这样的引用,该是多么抓狂的一件事。

 

import就是解决这个问题的。你只要在类声明之前,告诉Java编译器,将我要使用的类实现引入类里面,这样在你的代码里面,你只需要写类名,Java编译器会拿着类名,在你指定的package中去查找匹配。

 

mport语句应该出现在package语句(如果有的话)之后,类的定义之前。package语句只能有一个,但是import语句可以有任意多个。

 

import语句的基本语法如下:
import  <pkg_name>[.<sub_pkg_name>].<class_name>;

import <pkg_name>[.<sub_pkg_name>].*;

 


引入一个类:
import cn.edu.tsinghua.college.Student

 

引入指定包中的所有类使用通配符“*”:
import cn.edu.tsinghua.college.*

 

这两种方式对于引入相应的类并没有什么区别。但是,如果只是需要一个包中有限的几个类,建议采用第一种方式(写明引入的类名)会比较让人一目了然。更多的时候,使用一个package里面不止一个类,所以通配符的用法更常用一些。不用担心使用通配符会在一个类中导入过多无用的类。在进行编译的时候,Java编译器会进行筛选的。代码是给人来阅读的。

 

另外,需要注意的是,通过import引入包中的类的时候,它并不会递归的去执行引入动作

 

比如在cn.edu.university包下面还有子包,在你通过import语句导入这个包之后,这个包的子包的类,Java编译器是不会自动去进行分析导入的,如果你要引用的话,必须再写一个import,完成子包类的导入。

 

另外,细心的读者可能发现,在前面的类中,我们使用了String这个Java字符串类,但是并没有对这个类进行import导入操作。这里先解释一下。

 

Java平台并不只是提供了一个Java代码的编译和运行功能,它是一个完整的Java代码开发环境。并且已经提供了大量编写好的Java功能类,我们可以直接拿来使用,比如String这个字符串类,代表一系列字符的存储对象,要实现所有的String功能,并不是一件容易的事情,但是幸好这类大量的工作Java已经做好了。我们要做的就是“坐享其成”。

 

另外,为了方便Java程序员进行Java程序的开发,Java编译器默认将java.lang这个核心包里面的类已经全部引入了你编写的类里面。这个包是Java核心包,你的类里面基本不可能绕开这个包里面的类,所以。。。就是默认引用了。就像你的类里面,即使你没有写一个import语句,最后Java编译器在编译的时候,就在相应的位置增加一个import语句:import java.lang.*;

 

既然说到了Java平台里面JDK中的类,下一篇就先简单说一下Java开发平台中常用的java类库。

 

 

分享到:
评论
1 楼 yitian_web 2014-04-18  
静态引入 import

相关推荐

    详解Python中的from..import绝对导入语句

    绝对导入其实非常简单,即是用from语句在import前指明顶层package名,下面我们通过两个例子来详解Python中的from..import绝对导入语句

    Java中import语句.pdf

    Java中import语句.pdf 学习资料 复习资料 教学资源

    postcss-partial-import, 在CSS中,inline sugar @import 语句.zip

    postcss-partial-import, 在CSS中,inline sugar @import 语句 部分导入 部分导入允许你在CSS中使用 sugar @import 语句,包括 glob -like和 Sass -like行为。 它甚至允许你将导入作为脚手架工具生成。/* before: ...

    Kotlin 包和 import 语句

    填坑:Kotlin 包和 import 语句需要注意的几点

    Python 模块 3_模块导入_import和from_import语句详解和区别.mp4

    Python 模块 3_模块导入_import和from_import语句详解和区别.mp4

    Java中import语句的测试代码清单.pdf

    Java中import语句的测试代码清单.pdf 学习资料 复习资料 教学资源

    Python-使用一个import语句破坏Python程序

    使用一个import语句破坏Python程序! 听起来很有趣,不是吗?

    python聊天.docx

    发布一个用Python实现的一个在线聊天,主要功能是实现客户端与服务器端的双向通信,这个小东西用到的主要知识点: 发布一个用Python实现的一个在线聊天,主要功能是... 5.import Tkinter 6.import tkFont 7.import so

    简明 Python 教程.rar

    from..import语句54 模块的__name__54 制造你自己的模块.........55 dir()函数57 概括.......59 第9章数据结构..60 简介.......60 列表.......60 元组.......63 字典.......66 序列.......68 参考..........

    python-import的规则.docx

    在Python中,import语句用于导入模块或包,以便在当前代码中使用其中的函数、类和变量。本文将介绍Python中import的规则。 1. 模块搜索路径 在Python中,当我们使用import语句导入模块时,Python会按照一定的顺序...

    大学计算机python选择填空题库及答案.doc

    def B(): print('BBB') def A(): print('AAA') 为了调用模块中的A()函数应先使用语句【from a import A】 5. 执行循环语句for i in range(1,5,2):print(i),循环体执行的次数是【2】 6. 函数定义以【def】开始,最后...

    Java程序设计复习题.doc

    在Java程序中import语句可以有多个 B.在Java程序中import语句可以没有 C.在Java程序中import语句必须有一个 D.在Java程序中import语句引入在所有类定义之前 5. 在编译Java程序时,用于指定生成.class文件位置的...

    1Java程序设计复习题.doc

    在Java程序中import语句可以有多个 B.在Java程序中import语句可以没有 C.在Java程序中import语句必须有一个 D.在Java程序中import语句引入在所有类定义之前 5. 在编译Java程序时,用于指定生成.class文件位置的...

    大学计算机python选择填空题库及答案(1).doc

    def B(): print('BBB') def A(): print('AAA') 为了调用模块中的A()函数应先使用语句【from a import A】 5. 执行循环语句for i in range(1,5,2):print(i),循环体执行的次数是【2】 6. 函数定义以【def】开始,最后...

    babel-plugin-dotenv-import:使用import语句加载环境变量

    babel-plugin-dotenv-import 使用import语句加载环境变量。安装$ npm install babel-plugin-dotenv-import用法.babelrc { " plugins " : [ [ " dotenv-import " , { " moduleName " : " @env " , " path " : " .env ...

    Python简明教程

    from..import语句 模块的__name__ 使用模块的__name__ 制造你自己的模块 创建你自己的模块 from..import dir()函数 使用dir函数 概括 9. 数据结构 简介 列表 对象与类的快速入门 使用列表 元组 使用元组 ...

    cjs2es6import:将 CommonJS require 表达式转换为 ES6 模块导入语句

    cjs2es6import 将 CommonJS/NodeJS 模块表达式的子集转换为... require()调用是静态分析的,类似于 (在),以便转换为import语句。 ES6 导入旨在强制执行静态模块结构,因此并非所有需求都被翻译。 执照 麻省理工学院

    gulp-less-import:为每个提供的文件创建更少的 @import 语句

    少进口为每个提供的文件创建更少的 @import 语句。 深受 Steve Lacy 的启发例子 var gulp = require('gulp');var lessImport = require('gulp-less-import');var less = require('gulp-less');gulp .src('**.less') ...

    指标项目.docx

    import语句按顺序分三部分,分别代表标准库模块、第三方模块及自用模块,在每一部分中,各import语句应该按模块的字母顺序来排序。 5、实现接受str或unicode,并总返回unicode: ———————————————— ...

Global site tag (gtag.js) - Google Analytics