15.java 包的定义和使用

概念

包指的是一个程序的目录。在最先的时候若是要开发一个程序,只须要定义个*.java文件,而后再该文件中编写所需的类,编译以后程序将直接保存在当前目录下,而利用包能够实现同一个程序的拆分。java

为了更好地组织类,Java 提供了包机制,用于区别类名的命名空间。sql

Java 使用包(package)这种机制是为了防止命名冲突,访问控制,提供搜索和定位类(class)、接口、枚举(enumerations)和注释(annotation)等。为这些类型提供访问保护和命名空间管理的功能。数据库

包语句的语法格式为:编程

package pkg1[.pkg2[.pkg3…]];

示例:windows

package net.java.util;
public class hello{
    public static void main(String args[]){
        System.out.println("hello world");
    }
}

那么它的路径应该是 net/java/util/hello.java 这样保存的。 package(包) 的做用是把不一样的 java 程序分类保存,更方便的被其余 java 程序调用。api

最好不要本身手工建立这些目录,应该使用命令自动生成,以下:网络

  • 编译: javac -d . hello.java

    “-d”:表示生成目录,根据package的定义生成。app

    “.” :表示保存的路径,若是为"."表示在固然所在的路径下生成。工具

类都应当定义在包中,那么完整的类名就是:"包.类"。.net

包的做用

  1. 把功能类似或相关的类或接口组织在同一个包中,方便类的查找和使用。
  2. 如同文件夹同样,包也采用了树形目录的存储方式。同一个包中的类名字是不一样的,不一样的包中的类的名字是能够相同的,当同时调用两个不一样包中相同类名的类时,应该加上包名加以区别。所以,包能够避免名字冲突。
  3. 包也限定了访问权限,拥有包访问权限的类才能访问某个包中的类。

包的导入

为了可以使用某一个包的成员,咱们须要在 Java 程序中明确导入该包。使用 import 语句可完成此功能。

在 java 源文件中 import 语句应位于 package 语句以后,全部类的定义以前,能够没有,也能够有多条,其语法格式为:

import package1[.package2…].(classname|*);

使用“包.*”通配符,表示导入程序里面所须要的类,而不是所有导入。

若是在一个包中,一个类想要使用本包中的另外一个类,那么该包名能够省略。

经常使用系统包

  1. java.lang: 包含了String、object、Interger等类。从jdk1.1以后,此包会自动导入。
  2. java.lang.reflect:反射包;
  3. java.util: java的工具包,提供了大量工具类。
  4. java.util.regex: 正则工具包。
  5. java.text: 国际化处理包。
  6. java.io: 进行输入、输出处理,以及文件处理。
  7. java.net: 网络编程开发包。
  8. java.sql: 数据库程序开发包。
  9. java.applet: Applet程序开发包,已废弃。Applet是嵌套在网页上的java程序,采用绘图的方式完成网页的显示,实现一些动态效果,随着时间的发展已经再也不使用了。
  10. java.awt、javax.swing:图形界面开发包。主要进行单机版程序界面开发。

    • jdk1.0的时候推出了awt开发包,可是该包大量使用了windows api,致使程序缺少可移植性。
    • jdk1.2的时候推出了javax.swing开发包,采用了java本身编写的api,是一个轻量级的GUI工具包。

jar 命令

在任何一个项目中确定会存在大量的.class文件,若是将这些.class文件直接交付,会致使文件过多,并且程序很是没有结果,因此在交付用户使用以前,会使用jar命令将包中的class文件压缩成一个文件。

生成的jar文件不能直接使用,须要将其文件路径配置到CLASSPATH中,若是使用第三方jar文件,也必须配置。

补充:CLASSPATH是java程序解释类文件时所使用的加载路径。

相关文章
相关标签/搜索