在Java中使用包是为了防止命名冲突。
创建包时,应为包选择一个名称,并在每个源文件的顶部包含Package语句以及该名称。
要使用Package语句编译Java程序,必须使用-d选项,如下所示
javac -d Destination_folder file_name.java
然后在指定的目标中创建具有给定包名的文件夹,并且编译的类文件将放置在该文件夹中。
让无涯教程看一个创建Animals包的示例,使用小写字母的包名是一种很好的做法,以避免与类和接口的名称发生任何冲突。
以下包示例包含名为Animals的接口
/* File name : Animal.java */ package animals; interface Animal { public void eat(); public void travel(); }
现在在相同的包Animals-中实现上述接口
链接:https://www.learnfk.comhttps://www.learnfk.com/java/java-packages.html
来源:LearnFk无涯教程网
package animals; /* File name : MammalInt.java */ public class MammalInt implements Animal { public void eat() { System.out.println("Mammal eats"); } public void travel() { System.out.println("Mammal travels"); } public int noOfLegs() { return 0; } public static void main(String args[]) { MammalInt m = new MammalInt(); m.eat(); m.travel(); } }
现在编译Java文件,如下所示-
$javac -d . Animal.java $javac -d . MammalInt.java
现在,将在当前目录中创建名为Animals的包/文件夹,并将这些类文件放入其中,如下所示。
可以在包中执行类文件并获得如下所示的输出。
Mammal eats Mammal travels
如果一个类想使用另一个包里面的方法,则需要使用import关键词导入包中的方法
package payroll; public class Boss { public void payEmployee(Employee e) { e.mailCheck(); } }
Boss类必须使用以下技术之一来引用不同包中的类。
payroll.Employee
可以使用import关键字和通配符(*)导入包。例如-
import payroll.*;
import payroll.Employee;
注意-类文件可以包含任意数量的导入语句。import语句必须出现在package语句之后和类声明之前。
将类、接口、枚举或注释类型的源代码放在文本文件中,该文本文件的名称是类型的简单名称,扩展名为.java。
//File Name : Car.java package vehicle; public class Car { //Class implementation. }
现在,将源文件放在一个目录中,该目录的名称反映了该类所属的包的名称-
....\vehicle\Car.java
现在,限定类名和路径名将如下所示:-
通常,公司使用其反向域名作为其包名称。
....\com\apple\computers\Dell.java
在编译时,编译器为其中定义的每个类、接口和枚举创建不同的输出文件。输出文件的基名称是类型的名称,其扩展名为.class。
//File Name: Dell.java package com.apple.computers; public class Dell { } class Ups { }
现在,使用-d选项编译
$javac -d . Dell.java
这些文件将按如下方式编译:-
.\com\apple\computers\Dell.class .\com\apple\computers\Ups.class
您可以按照以下方式导入\com\apple\computers\中定义的所有类或接口-
import com.apple.computers.*;
祝学习愉快!(内容编辑有误?请选中要编辑内容 -> 右键 -> 修改 -> 提交!)