首页 > 编程语言 >Java 包和 API 深度解析:组织代码,避免命名冲突

Java 包和 API 深度解析:组织代码,避免命名冲突

时间:2024-02-28 21:44:08浏览次数:16  
标签:API java Scanner util 导入 import Java 解析

Java 包和 API

Java 中的包 用于将相关的类分组在一起。可以将其视为文件目录中的一个文件夹。我们使用包来避免名称冲突,并编写更易于维护的代码。

包分为两类:

  1. 内置包(来自 Java API 的包)
  2. 用户定义的包(创建自己的包)

内置包

Java API 是一个预先编写的类库,可以在 Java 开发环境中免费使用。

该库包含用于管理输入、数据库编程等等的组件。完整的列表可以在 Oracle 的网站上找到:

该库分为包和类。这意味着您可以导入单个类(以及其方法和属性),或者导入包含属于指定包的所有类的整个包。

要使用库中的类或包,您需要使用import关键字:

// 导入单个类
import package.name.Class;
// 导入整个包
import package.name.*;

导入类

如果找到要使用的类,例如Scanner类(用于获取用户输入),请编写以下代码:

// 导入 Scanner 类
import java.util.Scanner;

在上面的示例中,java.util 是一个包,而 Scanner 是 java.util 包的一个类。

要使用 Scanner 类,请创建该类的对象,并使用 Scanner 类文档中提供的任何可用方法。在我们的例子中,我们将使用 nextLine() 方法,该方法用于读取一整行:

// 使用 Scanner 类获取用户输入
import java.util.Scanner;

class MyClass {
  public static void main(String[] args) {
    Scanner myObj = new Scanner(System.in);
    System.out.println("Enter username");

    String userName = myObj.nextLine();
    System.out.println("Username is: " + userName);
  }
}

导入包

有许多包可供选择。在前面的例子中,我们使用了 java.util 包中的 Scanner 类。该包还包含日期和时间设施、随机数生成器和其他实用类。

要导入整个包,请以星号(*)结束句子。以下示例将导入 java.util 包中的所有类:

// 导入整个 java.util 包
import java.util.*;

用户定义的包

要创建自己的包,您需要了解 Java 使用文件系统目录来存储它们。就像计算机上的文件夹一样:

└── root
  └── mypack
    └── MyPackageClass.java

要创建一个包,请使用 package 关键字:

// MyPackageClass.java
package mypack;
class MyPackageClass {
  public static void main(String[] args) {
    System.out.println("This is my package!");
  }
}

将文件保存为 MyPackageClass.java,并编译它:

C:\Users\Your Name>javac MyPackageClass.java

然后编译包:

C:\Users\Your Name>javac -d . MyPackageClass.java

这会强制编译器创建“mypack”包。

  • -d 关键字指定了保存类文件的目标位置。您可以使用任何目录名称,例如 c:/user(Windows),或者如果要将包保留在同一目录中,可以使用点号“.”,就像上面的例子一样。

注意:包名应以小写字母写入,以避免与类名冲突。

在上面的例子中编译包时,将创建一个名为“mypack”的新文件夹。

要运行 MyPackageClass.java 文件,请写入以下内容:

C:\Users\Your Name>java mypack.MyPackageClass

输出将是:

This is my package!

一些额外的说明:

  • 可以使用多个 import 语句来导入多个类或包。
  • 可以使用 static import 语句导入静态方法和变量。
  • 可以使用包名来组织代码,例如将所有与数据库相关的类放在一个包中,将所有与 GUI 相关的类放在另一个包中。
  • 使用包可以提高代码的清晰度和可维护性。

最后

为了方便其他设备和平台的小伙伴观看往期文章:

微信公众号搜索:Let us Coding,关注后即可获取最新文章推送

看完如果觉得有帮助,欢迎 点赞、收藏、关注

标签:API,java,Scanner,util,导入,import,Java,解析
From: https://www.cnblogs.com/xiaowange/p/18041980

相关文章

  • JAVA基础:数组在计算机中的执行原理 多个变量指向一个数组
    程序都是在计算机中的内存中执行的,java程序编译之后会产生一个class文件,这个class文件是提取到内存中的JVM虚拟机中执行的。java为了便于虚拟机这个java程序,也即这个class文件。将虚拟机这块内存区域进行了划分:方法区,栈,堆,  本地方法栈,程序计数器方法区:放编译后的class文件的......
  • Java_常见报错&解决
    平时Java开发中常见的报错:SQLExceptionSQL异常,常见于操作数据库时的SQL语句错误。404错误:这是常见的页面不存在错误,建议仔细核查显示的网页是否存在(在运行的浏览器地址框中仔细查看当前路径,核实该路径是否正确,是否有路径错误,当前网页名字名字错误,使用了相对路径导致跳转出......
  • java启动参考
    启动参数 mvncleanpackage-Dmaven.test.skip=true-Ptest-java--server--Xms2G--Xmx2G--Xss256K--XX:+UseConcMarkSweepGC--XX:CMSFullGCsBeforeCompaction=5......
  • JAVA基础:数组遍历
    遍历:一个一个访问 packagecom.itheima.arry;publicclassArryDemo2{publicstaticvoidmain(String[]args){//掌握数组遍历int[]ages=newint[]{12,24,36};//System.out.println(ages[0]);//System.out.println(ages[1]);......
  • JAVA基础:数组访问
     packagecom.itheima.arry;publicclassArryDemo1{publicstaticvoidmain(String[]args){//掌握数组访问int[]ages=newint[]{12,52,630};//修改数组中数据ages[0]=66;ages[1]=100;System.out.println(......
  • Java数组声明和初始化
    Java数组声明和初始化//数组的声明和初始化double[]prices;//静态初始化,数组变量的赋值和数组元素的赋值操作同时进行prices=newdouble[]{1,2.1,3.22};//动态初始化,数组变量的赋值和数组元素的赋值操作分开进行String[]foods=newString[......
  • Java基础语法
    前言创建Java文件注意事项运行IntelliJIEDA点击空项目创建JavaSE点击导航栏>文件>新建>类模块>创建名:基础语法(不支持中文可以展开下面的高级栏输入,直接英文也可以不影响)创建完成后直接多次点击基础语法打开项目结构选中项目(也就是第一项),看到SDK栏目报红需......
  • FastAPI系列:HttpBasic基本认证
    HttpBasic基本认证fromfastapiimportFastAPI,Dependsfromfastapi.securityimportHTTPBasic,HTTPBasicCredentialsfromfastapi.exceptionsimportHTTPExceptionfromfastapi.responsesimportPlainTextResponsefromstarlette.statusimportHTTP_401_UNAUTHORIZE......
  • FastAPI系列:jwt认证
    jwt认证1.头部Header,主要是对jwt元数据的描述{'alg':'HS256','typ':'JWT'}2.载荷playload,主要包含jwt信息需要传递的主体数据{'iss':'jack',#由jwt签发'sub':'jack',#该jwt面向的用户组,也称为主题......
  • FastAPI系列:异步redis
    aioredisofficialwebsiteInstallpipinstallaioredisConnecttoredisfromfastapiimportFastAPIimportaioredisapp=FastAPI()@app.on_event('startup')asyncdefstartup_event():#创建的是线程池对象,默认返回的结果为bytes类型,设置decode_responses表......