java 包的定义与使用

包的定义与使用

在开发过程中,会定义很多类,为了避免相同类名称出现而发生覆盖的情况,把所有java程序保存在各自的目录里面,而该目录就是包的本质实际上就是一个文件夹

一、包的定义

  • java程序是由一个public类和众多非public的类组成,在java程序的第一行加入“package 包名称;”,就可以把*.class文件保存在相应的包内;当需要调用此包中的类时,用“包名称.类名称”的格式调用,这样可以避免相同类名的冲突。
    注:在命名包名称时,尽量避开与系统冲突的名字,例如java.lang等;同时包名一般都采用小写形式。
  • 一旦程序类中出现了包名称之后,在执行程序使用类名称时,应尽量带上包名称,而不是进入包内执行。
    注:在以后进行项目开发中,所有.java文件一定要使用package定义包。

二、包的导入

  • 因为包之间会存在相互调用的情况,一个包不但会调用本包中类,还会调用其他包中的类,所以需要用关键词“import”进行导入包中的类,格式:import 包名称.类名称;
  • 当需要导入其他包中的若干类,如果一个一个的写比较麻烦,可以用格式:import 包名称.*;来完成导入。
    注:使用通配符 “ * ” 并不意味着将包内的类全部导入,而是按照需求导入,需要什么类就导入什么类。
  • 如果在不同的包中包含有相同名称的类名,可以采用“包名称.类名称”加以区分。
    例如:
cn.aaa.www.Demo  demo=new  cn.bbb.www.Demo();

注:该句代码表示产生cn.bbb.www包内中Demo类的一个实例化对象,赋给cn.aaa.www包中的Demo类,对象引用为demo。

代码示例:

package cn.aaa.www;
public class Hello{
	public void print() {
		System.out.println("cn.aaa.www包内的Hello类!");
	}
}

package cn.bbb;
import cn.aaa.www.Hello;//导入程序类
public class World{
	public static void main(String[] args) {
		Hello hello=new Hello();
		hello.print();
	}
}

运行结果

cn.aaa.www包内的Hello类!

三、系统常用包

  • java.lang :系统的常用基础类,例如String,Object类等。
  • java.lang.reflect
  • java.math
  • java.util
  • java.io :io编程的开发包。
  • java.applet
  • java.awt.javax.swing等等,可以查看文档。

注意:

包也限定了访问权限,只有具有访问权限的类才能访问某个包中的类。

No 范围 private default protected public
1 同一个包中的同一个类
2 同一包中的不同类 -
3 在不同包中的子类 - -
4 在不同包中的非子类 - - -

<基于访问权限问题,在开发过程中,一般属性都用private封装,方法的权限用public>

四、jar命令(开发中会大量使用)

jar相当于一种压缩文件,里面保存的是“*.class”文件。即生成了一个用package关键字打包的内容的压缩文件。

下图是jar命令中的参数及其含义:
java 包的定义与使用_第1张图片
使用jar命令的作用

  • 在一个java程序中会存在很多“*.class”文件,将其压缩可以节省空间;
  • 压缩生成jar文件之后,在调用jar文件中文件夹中的类时,不能像标题“二、包的导入”那样直接导入了,需要配置CLASSPATH,设置jar的加载路径;
  • 在实际的开发中,因为会用到第三方程序包,所以会用到jar文件,所以开发包必须在CLASSPATH中配置后才能使用。

<具体的配置与java开发环境配置CLASSPATH方法相同,不在这赘述。>

你可能感兴趣的:(Java基础,java,包,包的定义与使用,jar命令)