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命令中的参数及其含义:


使用jar命令的作用

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

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

(0)

相关推荐

  • Java+selenium自动化环境搭建(一)

    第一步:下载以下资源: 下载JDK: JDK使用1.8以上版本 下载eclipse 下载selenium相关服务以及jar包 下载selenium的服务及jar包的地址分别如下: https://ww ...

  • Java包(package)的命名规范

    原文地址:http://blog.csdn.net/kongjiea/article/details/45365753 Java的包名所有单词字母小写,类名首字母大写:包的路径符合所开发的 系统模块的 ...

  • Java包是什么?

    Java包是什么?在Java中的包是一种封装一组类.子包和接口的机制,可用于组织一组相关的类和接口.从概念上讲,我们可以将包视为类似与计算机上的不同文件夹:可以将HTML页面保留在一个文件夹中,将图像 ...

  • Java中常量定义的几种方式

    编程中使用常量的优点: 常量提取出来有利于代码阅读,而且下次再做这种判断不用手写或复制并且提高代码的复用率,方便修改,直接通过常量类就能得到.不过我觉得提取出来并不会有利于代码性能提升,因为常量分配在 ...

  • Java运算符及包机制

    算术运算符:+-*/%++-- 赋值运算符:=,+=,-=,*=,/= 关系运算符:>,<,>=,<=,==,!=,instanceof 逻辑运算符:&&,|| ...

  • Java定义

    多态的定义: 多态分为编译时多态和运行时多态. 编译时多态:方法的重载 运行时多态:定义的对象引用所指向的具体类型在运行期间才能确定 运行时多态的三个条件:继承.重写.向上转型 运行时多态就是子类继承 ...

  • 建设工程法律知识分享7-承包人的定义和特征

    建设工程法律知识分享7-承包人的定义和特征

  • Oracle中如何导出存储过程、函数、包和触发器的定义语句?如何导出表的结构?如何导出索引的创建语句?

    QQ群里有人问:如何导出一个用户下的存储过程?   麦苗答:方法有多种,可以使用DBMS_METADATA.GET_DDL包. 使用PL/SQL DEVELOPER工具 -- 下面的SQL语句,如果报 ...

  • java学习——53.网格包布局

    GridBagLayout网格包布局是比较灵活的布局,它将容器分成若干行和列网格,每个组件可占据其中的若干行或列的多个单元格. GridBagLayout类声明如下: public class Gri ...

  • JAVA中 ReentrantReadWriteLock读写锁详系教程,包会

    一.读写锁简介 现实中有这样一种场景:对共享资源有读和写的操作,且写操作没有读操作那么频繁.在没有写操作的时候,多个线程同时读一个资源没有任何问题,所以应该允许多个线程同时读取共享资源:但是如果一个线 ...