1、package
Java中的软件包用于区别类名的命名空间。可以理解为就是文件夹,并且使用了树形目录的存储方式。 我们使用软件包来避免名称冲突,并编写更好的可维护代码。 软件包分为两类:
1)内置软件包(来自Java API的软件包)
2)用户定义的软件包(创建自己的软件包)
编写代码时,要使用一个类要将多个包名.类名完全写出,会让代码变得很长,如下,
java.io.InputStream is = java.lang.System.in;
java.io.InputStreamReader isr= new java.io.InputStreamReader(is);
java.io.BufferedReader br = new java.io.BufferedReader(isr);
为了使用代码简洁,编写代码更方便,就需要使用import关键字。
2、import
import
关键字用于导入包,类或接口。也就是在java文件的头部位置,导入用到的引用。之后使用就可以在代码中,
直接使用类名,而不需要所在的包名。相当于使用类简称。加上包名的就是类的全称。可以更好地限定一个类,避免重名等问题。
java文件开头使用import导入:
import java.lang.System;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.BufferedReader;
程序中使用就可以直接使用类名:
InputStream = System.in;
InputStreamReader isr = new InputStreamReader(is);
BufferedReader br = new BufferedReader(isr);
import导入有两种方式:
1)单类型导入(single-type-import)
import java.io.File
此种方式比较容易理解,而且大部分时候都是这种方式。通过明确指明类和接口路径,将他们导入进来。
2)按需类型导入(type-import-on-demand)
import java.io.*
通过通配符*
定义导入方式,不是直接导入这个包下的所有类,而是可以导入所有类。但按照需要导入,不需要就不会导入。
注意:多次导入,也可编译通过。编译器会将多次重复导入声明忽略。
3、import static
import static
是静态导入,导入的是静态成员,而import导入的是类或接口类型。JDK 1.5里引入了“Static Import”机制,使用这个机制可以用略掉所在的类或接口名的方式,来使用静态成员。
package com.cjavapy.staticimport;
public class staticFieldsClass {
static int staticNoPublicField = 0;
public static int staticField = 1;
public static void staticFunction(){}
}
引用上面的staticFieldsClass:
//直接导入具体的静态变量、常量、方法 import static com.cjavapy.staticimport.StaticFieldsClass.staticField; import static com.cjavapy.staticimport.StaticFieldsClass.staticFunction; //**按需导入** //import static com.cjavapy.staticimport.StaticFieldsClass.*; public class StaticImport { public static void main(String[] args) { //可以直接写静态成员而不需要通过类名调用 System.out.println(staticField); staticFunction(); } }