为了更好地组织类, Java 提供了一种包机制,今天小编将为大家带来大数据编程入门:Java包(Package)这篇文章。
一、包的概念
包是类的容器,用于分隔类名空间。如果未指定包名,则所有示例都属于默认的匿名包。
1、包的作用:
A. 相似或相关的类或接口组织在同一个包中,以便于类的搜索和使用。
B. 与文件夹一样,包也存储在树目录中。同一包中的类的名称不同,不同包中的类的名称可以相同。在两个不同的包中同时调用同名类时,应添加包名称来区分它们。因此,包可以避免名称冲突。
C. 该包还限制了访问权限。只有具有包访问权限的类才能访问包中的类。
Java使用包( Package )来防止命名冲突、访问控制,并提供搜索和定位类(class)、接口、枚举(enumerations)和注释(annotation)等。
2、以下是包语句语法格式:
package pkg1[.pkg2[.pkg3…]];
例如,一个Something.java 文件的内容
package net.java.util;
public class Something{
…
}
那么它的路径应该是net/java/util/Something.java。Package(包)的功能是对不同的Java程序进行分类和保存,方便其他Java程序调用。
包(package)可以定义为一组相互关联的类型(类、接口、枚举和注释),这些类型为这些类型提供访问保护和命名空间管理功能。
3、以下是一些Java中的包:
A. Java.lang-打包基础的类
B. Java.io—含有输入和输出函数的函数
开发人员可以打包一组类和接口,并定义自己的包。而在实际发展中,这样做是值得提倡的。完成类的实现后,可以对相关的类进行分组,以便于其他程序员确定哪些类、接口、枚举和注释是相关的。
因为包创建了一个新的名称空间(namespace),所以与其他包中的任何名称都没有命名冲突。使用包机制,可以更容易地实现访问控制和定位相关类。
二、创建包
创建包时,需要给它起一个正确的名称。稍后,如果另一个 源文件 包含包提供的类、接口、枚举或注释类型,则包声明必须放在源文件的开头。
包声明应该在源文件的第一行,每个源文件只能有一个包声明,并且该文件中的每个类型都应用于它。
如果源文件中未使用包声明,则其中的类、函数、枚举、注释等将放置在未命名的包(unnamed package)中。
实例
让我们来看一个例子,它创建了一个称为fruits的包。通常使用小写字母命名,避免与类和接口名称冲突。
向fruits包添加接口(interface):
接下来,在同一个包中加入该接口的实现:
运行结果:
三、import关键字
为了使用包的成员,我们需要显式地将包导入Java程序。使用“import”语句完成此函数。
在Java源文件中,import语句应该位于package语句之后,所有类的定义之前,不能有导入语句或多个导入语句。语法格式如下:
import package 1[.package2…].(classname|*);
如果包中的类要使用包中的另一个类,则可以省略包名。
例子
以下payroll包已包含Employee类,接下来,在payroll包中添加一个Boss类,当Boss类引用Employee类时,不必使用payroll前缀,Boss类的示例如下。
如果Boss类不在payroll包中怎么办?Boss类必须引用使用以下方法之一的其他包中的类。
使用类的全名,例如:
payroll.Employee
用 import 关键字引入,使用 通配符 *:
import payroll.*;
使用 import 关键字引入 Employee 类:
import payroll.Employee;
注意:类文件可以包含任意数量的导入声明。导入声明必须在包声明之后和类声明之前。
四、package的目录结构
包中的类有两个主要结果:
A. 正如我们前面讨论的那样,包名成为类名的一部分。
B. 包名称必须与相应字节码的目录结构匹配。
以下是管理自己的java文件的简单方法:
将类、接口和其他类型的源代码放在文本中。此文件的名称是此类型的名称,以.Java作为扩展,例如:
接下来,将源文件放在与类所在的包的名称对应的目录中.
….vehicleCar.java
正确的类名和路径将会是如下样子:
类名 -> vehicle.Car
路径名 -> vehicleCar.java (在 windows 系统中)
通常,一家公司使用其互联网域名的反向形式作为其 软件包 名称。例如,Internet域名是miuku.com,所有包名都以com.miuku开头。包名称的每一部分都对应于一个子目录。
例如,如果有一个com.miuku.test包,其中包含一个名为Miuku.java的源文件,那么应该有一系列子目录,如下所示:
….commiukutestMiuku.java
编译时,编译器为包中定义的每个类、接口和其他类型创建不同的输出文件。输出文件的名称是类型的名称,并且.class作为扩展后缀添加。
编译的,class文件应与.java源文件及其目录应与包名称相对应。然而.class文件的路径不要求与相应的.java的路径相同。您可以单独排列源代码和类目录。
这样,您就可以与其他程序员共享您的类目录,而不必公开您的源代码。以这种方式管理源代码和类文件允许编译器和Java虚拟机(JVM)查找程序中使用的所有类型。
类目录的绝对路径称为class path。在系统变量CLASSPATH中设置。编译器和java虚拟机构成了编译的路径。通过将package名添加到class path来初始化.class文件。
<path-two><classes是类路径,包名是 com.miuku.test, 编译器和JVM将找到.class文件在<path-two>classescommiukutest中。
一个类路径可以包含多个路径,多个路径应该用分隔符分隔。默认情况下,编译器和JVM查找当前目录。 JAR 文件包含与Java平台相关的类,因此它们的目录默认放置在class path中。
五、设置 CLASSPATH 系统变量
1、用下面的命令显示当前的CLASSPATH变量:
Windows 平台(DOS 命令行下):C:> set CLASSPATH
UNIX 平台(Bourne shell 下):# echo $CLASSPATH
2、删除当前CLASSPATH变量内容:
Windows 平台(DOS 命令行下):C:> set CLASSPATH=
UNIX 平台(Bourne shell 下):# unset CLASSPATH; export CLASSPATH
3、设置CLASSPATH变量:
Windows 平台(DOS 命令行下): C:> set CLASSPATH=C:usersjackjavaclasses
UNIX 平台(Bourne shell 下):# CLASSPATH=/home/jack/java/classes; export CLASSPATH
以上就是关于大数据编程入门:Java包的全部内容了,希望这篇文章能够帮助到大家~