这次来讲讲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类库。
分享到:
相关推荐
本文将详细解释在Python中使用import语句导入模块的几种不同方式,包括直接导入(import)、从模块中导入特定部分(from...import)以及导入模块时为其设置别名(import...as)的区别和用法。 首先,直接使用import...
- `from...import` 和 `from...import *` 语句可能会导致命名空间污染,增加代码的维护难度。 3. **性能影响**: - 在导入单个模块时,两者性能差异不大; - 当导入大量对象时,`from...import *` 可能会稍微快...
Java中的`import`语句是编程过程中的一个重要组成部分,它被用来引入程序中需要使用的类或整个包。本文将详细探讨`import`语句的基本语法、使用场景以及可能遇到的问题。 1. `import`语句的基本语法 在Java中,`...
`import`语句是Java中用于引入库或包的机制,以便能够使用其中的类和方法。在给定的描述中,没有更多的具体信息,所以我们将基于这两个导入语句来探讨相关的Java知识点。 1. **Java Applet**: `java.applet.*` 指的...
import`绝对导入语句 #### 概述 在Python编程中,模块(module)和包(package)是组织代码的重要方式。为了在不同的模块或包之间共享代码,Python提供了导入(import)机制。导入机制支持两种主要类型的导入:**...
### Kotlin 包和 import 语句详解 #### 一、Kotlin 包的理解与使用 在 Kotlin 中,**包**(Package)的概念与 Java 十分相似,它们都是用来组织和管理程序中的类、接口以及其他代码实体的重要工具。通过合理地使用...
在Java编程语言中,`import`语句是一个至关重要的部分,它允许我们引用其他类、接口或包,以便在我们的程序中使用它们。这个过程被称为“导入”或“导包”,使得代码更加简洁且易于管理。以下是关于Java `import`...
通过`Source > Format`可以快速对当前选定的代码进行格式化,而`Source > Organize Imports`则会自动整理import语句,确保它们符合设定的顺序。 总结来说,Eclipse的Formatter和importorder功能是提高代码质量和...
postcss-partial-import, 在CSS中,inline sugar @import 语句 部分导入 部分导入允许你在CSS中使用 sugar @import 语句,包括 glob -like和 Sass -like行为。 它甚至允许你将导入作为脚手架工具生成。/* before: ...
函数语法,函数调用、参数传递、必需参数、关键字参数、默认参数、不定长参数、匿名函数、return语句)、模块(import语句、from....import语句、from...import*语句、_name_属性、dir函数)、reload函数等
Python 模块 3_模块导入_import和from_import语句详解和区别.mp4
Python提供了多种方式来导入模块和包中的内容,例如使用import语句和from...import语句。 1. 使用import语句导入模块或包 在Python中,最基本的导入模块的方式是使用import语句。例如,如果你想导入一个名为math的...
在Python编程中,`import`语句用于引入模块或包,以便使用它们的功能。然而,如果使用不当,`import`语句可能会导致程序出现问题,甚至可能导致整个程序的破坏。让我们深入探讨这个主题,理解其中的风险并学习如何...
Java 中的 import 语句是让编译器帮我们打字,让我们在编程时不需要每次都输入完整的类名。import 语句可以将类的名称简写成简称,提高编程效率。 Java 中的 package 机制可以避免类名冲突问题。package 名称就像...
在 Node.js 中,我们使用 require 函数来导入模块,而在 ES6 中,我们使用 import 语句来导入模块。这两种方式有着不同的语法和使用场景。 CommonJS 规范 在 Node.js 中,我们使用 require 函数来导入模块。...
本文将深入探讨在使用PL/SQL进行表导入(import table)以及通过LOAD语句加载外部文件时出现乱码的常见原因及解决方案。这不仅适用于Oracle数据库环境,也对其他支持类似功能的数据库系统有所启示。 ### 一、理解...
在Python中,`import` 语句有多种形式: 1. **基本导入**:`import module_name`,这会将整个模块导入,并允许通过 `module_name` 访问其所有公开属性(即非下划线开头的变量和函数)。 2. **别名导入**:`import ...
import java.util.Scanner; public class MultipleCheck { public static void main(String[] args) { Scanner sc = new Scanner(System.in); System.out.println("请输入一个整数:"); int number = sc....
Java语言的基本语法结构包括六类语句:方法调用语句、表达式语句、复合语句、空语句、控制语句和package语句、import语句。 2. 控制语句: 控制语句分为条件分支语句、开关语句和循环语句三个大类。其中,条件分支...