包的概念
在一个java源程序文件(*.java)中可以声明多个类。每个类编译之后均生成一个字节码文件。程序运行时,java虚拟机默认在当前文件夹中寻找指定类的字节码文件。当需要访问其他文件夹中的类时,不仅要指定文件路径,还要在程序中指定包名。
从逻辑概念看,包(package)是类的集合,一个包中包含多个类;
从存储概念看,包是类的组织方式,一个包就是一个文件夹,一个文件夹包含多个字节码文件;
包与类的关系就像文件夹与文件的关系一样,文件是信息集合,文件夹是文件的组织方式。
包中可以有子包,子包对应一个子文件夹,由此构成嵌套结构,称为包等级。子包引用格式为“包.子包”,包等级之间使用点运算符“.”分隔。
包是java区别类名字空间的机制。一个包中的多个类不能重名,不同包中的类名则可以相同。
包的作用
1、区分相同名字的类
2、当类很多的时候,可以很好的管理类
3、控制访问范围
如何使用Java包
1、带包名的类或接口的语法格式为
包{.子包}.类|接口
// 语法定义中,“[]”表示可以重复0~1次,“{}”表示可以重复 “|”表示或者
2、导入包
java.lang语言包由java自动导入,课省略包名,如Math.PI、Math.sqrt()等。
如果要使用其他包中的类,必须使用import语句导入。使用import语句可以声明使用一个包中的类或接口,语法格式如下,其中,import是关键字,“*”表示包中的所有类或接口。
import 包{.子包}.类|接口|*;
import语句必须写在类声明之前
例如:import java.util.Date*;
3、声明类所在包
package语句指定源程序中的类或接口所在的包或子包,语法格式如下:
package 包{.子包};
其中,package是关键字
在源程序文件中,package语句只能写一次,且必须写在程序的第一行,即写在类声明之前。多个类可以属于同一个包。
例如 程序第一行package com.mypackage;
4、创建并使用包
//声明Point类在mypackage包中
package mypackage
//类声明,点类
public class Point
{
public int x;
publix int y;
//构造方法,以(x,y)构造point对象
public Point(int x,int y)
{
this.x = x;
this.y = y;
}
//构造方法,重载,默认值是(0,0)
public Point()
{
this(0,0);
}
//成员方法,Point对象的描述字符串,形式为(x,y)
public String toString()
{
return "Point("+this.x+","+this.y+")";
}
}
//引用mypackage包中的Point类
import mypackage.Point;
//直线类
public class Line
{
/* 直线类的起点和终点 */
public Point start;
public Point end;
/* 对象的描述字符串 */
public Line(Point start, Point end)
{
this.start = start;
this.end = end;
}
public String toString()
{
return this.getClass().getName()+"("+this.start.toString()+","+this.end.toString()+")";
}
public static void main(String [] args)
{
Point start = new Point(100,100); //直线的起点
Point end = new Point(100,200); //直线的终点
System.out.println(new Line(start, end).toString());
}
}
5、默认包路径
当源程序中没有使用package声明类所在的包时,java默认包路径为当前文件夹,没有包名。引用同一个包中的其他类时,包名可以省略,import 语句也可以省略
6、包可以压缩成.jar文件
在实际应用中,通常将一个包、包中的类文件、子包及子包中的类文件压缩成Java的压缩文件(.jar),JDK提供的文件压缩命令是jar.exe,在classpath环境变量中需要设置包压缩文件的路径。
Java API的常用包
API(Application Programming Interface,应用程序接口)定义了许多通用的常量、函数、类、接口等共功能,提供给应用程序使用,每种程序设计语言都有各自的API。
Java API 提供了java应用程序所需要的常量、类、接口等。统称为类库,按照功能,类库可以划分成java、javax等包。java包有lang、util等子包。Java API常用包说明如下表
包名 | 功能 |
---|---|
java.lang语言包 | java语言的核心类库,包含Java语言必不可少的系统类定义,包括Object类,基本数据类型封装类、数学运算、字符串、线程、异常处理等 |
java.util实用包 | 工具类库,包含日期类,集合类库等 |
java.awt抽象窗口工具包 | 提供构建图形用户界面的类库,包含组件、事件及绘图功能 |
java.applet | 实现Applet应用程序 |
java.text文本包 | 体重各种文本或日期格式 |
java.io输入输出包 | 提供表中输入输出流及文件操作的类库 |
java.net网络包 | 提供与网络编程有关的类库,包括socket通信支持、Internet访问支持 |
java.sql | 提供数据库应用功能的类库 |
java.swing | 扩充和增强图形用户界面功能的类库 |
希望可以帮助到你!!