package、import和import static

来源:互联网 发布:网络信息安全小组 编辑:程序博客网 时间:2024/05/08 06:04

1、Java允许将一组功能相关的类放在同一个package下,从而组成逻辑上的类库单元。如果希望吧一个类放在指定的包结构下,应该在Java源程序的第一个非注释行放置如下格式的代码:

 package packageName;

例子:

package lee;public class Hello{    public static void main(String[] args)     {        System.out.println("Hello World!");    }}

上面程序中package lee;表明把Hello类放在lee包空间下。

javac -d . Hello.java 编译源文件;

-d用于设置编译生成class文件的保存位置, .表示生成的class文件放在当前路径。编译后,当前路径没有Hello.class 文件,而是在当前路径多了名为lee的文件夹,该文件夹下则有一个Hello.class 文件。

    执行时的命令应为java lee.Hello(在当前目录使用该命令执行) ,而不是使用   java  Hello执行;    虚拟机在装载带包名的类时,会先搜索CLASSPATH环境变量指定的目录,然后在这些目录中与包层次对应的目录结构去查找class文件。    同一个中的类不必位于相同的目录下,虚拟机会自动搜索classpath下的子路径,把他们当成同一个包下的类来处理。

这里写图片描述

package语句必须做为源文件的第一条非注释性语句,一个源文件只能指定一个包,即只能包含一条package语句,该源文件可以定义多个类,则这些类将全部位于该包下。

2、import

为了简化编程,java引入了import关键字,import可以向某个java文件中导入指定包层次下某个类或者全部类,import语句应该出现在package语句后、类定义之前。一个java源文件只能包含一个package语句,但可以包含多个import语句,多个import语句用户导入多个包层次下的类。
使用impor语句导入单个类的用法如下:

import package.subpackage...ClassName;
使用impor语句导入指定包下全部类的用法如下:
import package.subpackage...*;
上面import语句中的星号(*)只能代表类,不能代表包。因此使用import lee.*;语句时,它表明导入lee包下的所有类,而lee包下子包内的类则不会被导入。注意:java默认为所有源文件导入java.lang包下的所有类,因此在java程序中使用String、System类时都无需使用import语句来导入这些类。

3、import static
import语句可以简化编程,可以导入指定包下某个类或者所有类。

JDK1.5以 后更是增加了一种静态导入的语法,它用于导入指定类的某个静态成员变量、方法或者全部的静态成员变量、方法。
导入指定类的单个静态成员变量、方法的语法格式:

import static package.subpackage...ClassName.filedName|methodName;
filedName:静态成员变量methodName静态成员方法导入指定类的全部静态成员变量、方法的语法格式:import static package.subpackage...ClassName.*;上面语法中的星号只能代表静态成员变量或者方法名。所谓的静态成员变量、静态方法其实就是前面介绍的类变量、类方法。他们都需要使用static修饰,其实可以使用一句话来归纳import和import static的作用,使用import可以省略写包名;而使用import static可以连类名都省略
0 0
原创粉丝点击