通过在同一程序包中声明它们,可以自动在一个文件夹中创建彼此相关的所有Java类和接口的.class文件。包不过是一个目录,用于存储特定概念的类和接口。
您可以创建一个包并在其中添加所需的类/接口,只需使用关键字package声明为Class / Interface文件顶部的包-
Package package_name;
下面的Java程序演示Java中包的声明。
package com.tutorialspoint.samplePackage; public class PackageExample{ public void display(){ System.out.println("Welcome to www.nhooo.com"); } }
要编译该程序(带有程序包的程序),需要使用javac命令的–d选项。此时,您需要指定创建包的路径。
javac -d E:\ Sample.java
如果要将软件包放在当前目录中,请使用“.” 而不是-
javac -d . Sample.java
Java提供了在程序包下组织的各种预定义的类和接口(API)。这些称为预定义软件包,以下是Java中预定义软件包的列表-
java.lang - 这个包提供了语言基础。
java.util - 该包提供与集合框架工作,事件,数据结构和其他实用程序类(例如日期)相关的类和接口(API)。
java.io - 该软件包提供用于文件操作以及其他输入和输出操作的类和接口。
java.math - 该软件包提供了用于多精度算术的类和接口。
java.nio - 此软件包提供了Java的非阻塞I / O框架的类和接口
java.net - 该软件包提供与网络相关的类和接口。
java.security - 此软件包提供了属于安全框架的类和接口,例如键生成,加密和解密。
java.sql - 该包提供用于访问/操作存储在数据库和数据源中的数据的类和接口。
java.awt - 这个包提供了类和接口来用Java创建GUI组件。
java.text - 该包提供用于处理文本,日期,数字和消息的类和接口。
java.rmi - 提供RMI包。
java.time - 日期,时间,瞬间和持续时间的主要API。
java.beans - java.beans包包含与JavaBeans组件相关的类和接口。
所有这些软件包都位于JRE(Java运行时环境)的bin文件夹中的 rt.jar 文件中。就像普通软件包一样,要使用特定的类,您需要导入其各自的软件包。
在以下Java示例中,我们尝试使用java.util包的Scanner类从键盘读取数据。由于它不属于默认软件包,因此我们将使用import语句导入所需的软件包。
import java.util.Scanner; class Student2{ String name; int age; float percent; boolean isLocal; Student2(String name, int age, float percent, boolean isLocal){ this.name = name; this.age = age; this.percent = percent; this.isLocal = isLocal; } public void displayDetails(){ System.out.println("详情.............."); System.out.println("Name: "+this.name); System.out.println("Age: "+this.age); System.out.println("Percent: "+this.percent); if(this.isLocal) { System.out.println("国籍: Indian"); } else { System.out.println("国籍: Foreigner"); } } } public class ReadData2 { public static void main(String args[]){ //实例化Scanner类 Scanner sc = new Scanner(System.in); System.out.println("输入你的名字: "); String name = sc.next(); System.out.println("输入您的年龄: "); int age = sc.nextInt(); System.out.println("Percent: "); float percent = sc.nextFloat(); System.out.println("您是本地人吗(请输入TRUE或FALSE): "); boolean isLocal = sc.nextBoolean(); Student2 std = new Student2(name, age, percent, isLocal); std.displayDetails(); } }
输出结果
输入你的名字: Krishna 输入您的年龄: 26 输入您的百分比: 86 您是本地人吗(请输入TRUE或FALSE): true 详情.............. Name: Krishna Age: 26 Percent: 86.0 国籍: Indian