Java基础常用API(1)

文章目录

    • 1:API 概述
      • 1.1 API概述和课程安排
      • 1.2 包和导包
    • 2:Scanner
      • 2.1 Scanner基本使用
      • 2.2 练习(数据求和)
    • 3:Random
      • 3.1 Random基本使用
      • 3.2 练习(猜数字游戏)


在这里插入图片描述

1:API 概述

1.1 API概述和课程安排

我们在讲解面向对象的时候,提到了学习面向对象重点就是学习两块内容:

  1. 学习如何自己设计对象并使用
  2. 学习获取已有对象并使用

第一块:学习如何自己设计对象并使用

第二块:学习获取已有对象并使用

而关于第一块知识:学习如何自己设计对象并使用,我们现在已经有一些基础了。

通过前面的学习呢,我们知道了如何定义类,并通过构造方法创建对象,然后通过对象使用成员变量和成员方法。

接下来,我们要学习的是第二块知识:获取已有对象并使用。而获取已有对象并使用呢,在Java中我们习惯称之为常用API的学习。

所以下面我们来学习常用API。首先,我们来说一下什么是API:

  • API(Application Programming Interface) :应用程序编程接口

那如何理解应用程序编程接口呢?这里我们通过下面的场景给大家解释一下。

看这里,我想编写一个机器人踢足球的程序,那么程序就要向机器人发出向前跑、向后跑、射门、抢球等各种命令。
在这里插入图片描述

如果我自己来编写呢,就会比较麻烦,因为机器人不是我设计的。所以,为了方便其他的开发者使用机器人,

机器人厂商会提供一些用于控制机器人的类,这些类中会定义好操作机器人各种动作的方法。

有了这些类之后,开发一个机器人踢足球的程序就会非常的方便了。

其实,这些类就是机器人厂商提供给开发者的应用程序编程接口,而这些类我们称之为:API

知道了什么是API之后呢,我们来说一下,JavaAPI

  • Java API :指的就是 JDK 中提供的各种功能的 Java类。

这些类将底层的实现封装了起来,我们不需要关心这些类是如何实现的,只需要学习这些类如何使用即可,

为了帮助我们使用这些类,Java 还提供了对应的帮助文档。我们可以通过帮助文档来学习这些API如何使用

下面呢,我们一起来学习一下帮助文档的使用

要想使用帮助文档,首先我们得有一个帮助文档:我们这里有一个帮助文档。
在这里插入图片描述

这个文档对应的是 JDK11 版本的,是目前比较新的中文版的帮助文档。

有了文档之后呢,我们来打开帮助文档。

文档打开后,找到索引这里,下面有一个输入框,在这个框框里输入我们要学习的API。
在这里插入图片描述

这里,我们拿字符串类做一个说明:在这个框框里面我们输入:String,然后一回车,看到一个新的界面

这个界面中,就是关于String相关的知识了。
在这里插入图片描述

接着,我们来说一下,在学习一个API的时候,我们重点要看四个地方:

第一个地方:看类所在的包

为什么要看这里呢,因为java.lang包下的类,我们是可以直接使用的,不需要导包。

其他包下的类,我们都是要导包后才能使用的,至于如何导包,下个知识我们会讲解。

很明显,String类在使用的时候,我们是不需要导包的。

第二个地方:看类的描述

也就是看这里,这里一般描述了类是干什么的。

比如说:String类表示字符串。 Java程序中的所有字符串文字(例如"abc" )都实现为此类的实例。

告诉了我们String就是用来表示字符串的类,直接写一个字符串数据:abc就是String类的一个对象。

第三个地方:看类的构造方法

往下滑,这就是String类的构造方法,为什么要看构造方法呢?因为我们在使用一个类的时候,其实使用的是该类的对象,

而创建对象,我们是需要通过构造方法实现的,所以,我们得看看它提供了哪些构造方法。

这里的构造方法提供的比较多,至于用哪个,后面我们用到的时候再讲解,目前知道看哪里就行了

第四个地方:看类的成员方法

这是我们学习一个API的重点,我们之所以学习一个API,重点就是为了使用该API来完成某些功能。

而API的功能,都是通过一个个方法实现的,所以我们重点得看看类的成员方法。往下滑,这就是String提供的成员方法,有很多。

而一个方法,我们重点又看什么呢?回到第一个方法,我们说一下:

返回值类型 方法名和参数 方法功能的描述

先看描述,通过描述,我们就知道了方法是干什么的。

再看方法名和参数,这样我们就知道调用哪个方法,以及参数的类型和个数。

最后,我们看返回值类型,这样我们就知道调用该方法后,最终给我们返回了一个什么类型结果

通过这些步骤,我们就知道了所学习的API该如何使用了,然后就可以到IDEA中去使用API了。

知道了帮助文档的使用步骤后,回到资料我们总结一下帮助文档的使用流程:

① 打开帮助文档

② 找到索引选项,输入要学习的API,然后回车

③ 看类所在包:因为java.lang包下的类在使用的时候不需要导包

④ 看类的描述:这样我们就知道了类是干什么的

⑤ 看类的构造方法:这样我们就可以创建对象了

⑥ 看类的成员方法:这样我们就可以通过这些方法完成某些功能了

首先,我们学习一下包和导包的基本概念和操作,为API的使用做一个基础铺垫

接着我们来学习两个API:ScannerRandom

Scanner:是用来实现键盘录入数据的

Random:是用来产生随机数的

通过这两个 API 的学习,可以让我们熟悉帮助文档的使用


1.2 包和导包

来,继续啊,下面我们来学习一下,包和导包。

那什么是包呢?

  • 包其实就是文件夹
  • 作用:对类进行分类管理

包的定义格式:

  • 格式:package 包名;
  • 注意:包名一般是公司域名反写,并且多级包用.分开
  • 举例:www.csdn.com
  • 范例:package com.csdn;

知道了如何定义包之后,下面我们来定义两个包,并且在不同包下定义同名的类。

package com.csdn;
public class Student {
    public void study() {
        System.out.println("好好学习天天向上");
    }
}

package com.csdn;
public class StudentTest {
    public static void main(String[] args) {
        Student s = new Student();
        s.study();
    }
}
package com.csdn;
public class StudentTest {
    public static void main(String[] args) {
        com.csdn.Student s = new com.csdn.Student();
        s.study();

        com.csdn.Student s2 = new com.csdn.Student();
        s2.study();
    }
}

在这里我们讲解了同一个包下类的使用,以及不同包下类的使用。发现不同包下类的使用太麻烦了,所以,这个时候,我们就要学习一下导包了。

使用不同包下的类时,使用的时候要写类的全路径,写起来太麻烦了。

为了简化带包的操作,Java就提供了导包的功能。

导包的格式:

  • 格式:import 包名;
  • 范例:import com.itheima.Student;

知道了如何导包后,我们再来修改一下不同包下类的使用代码:

package com.csdn;

import com.csdn.Student;
//Alt+Enter 快捷键导包

public class StudentTest {
    public static void main(String[] args) {
        Student s = new Student();
        s.study();

        Student s2 = new Student();
        s2.study();


//        com.csdn.Student s = new com.csdn.Student();
//        s.study();
//
//        com.csdn.Student s2 = new com.csdn.Student();
//        s2.study();
    }
}

在这里我们讲解了导包的三种方式:

  1. 手动导包
  2. 快捷键导包
  3. 写一个类,写一部分的时候,如果给出了对应的提示,回车后会自动导包

2:Scanner

2.1 Scanner基本使用

了解了API相关的知识后,下面我们来学习一下Scanner的使用。

通过查看帮助文档,我们知道了如下的信息:

Scanner:

  • 一个简单的文本扫描程序,可以获取基本类型数据和字符串数据

构造方法:

  • Scanner(InputStream source):创建 Scanner 对象
  • System.in:对应的是InputStream类型,可以表示键盘输入
  • Scanner sc = new Scanner(System.in);

成员方法:

  • int nextInt():获取一个int类型的数据
  • int i = sc.nextInt();

知道了Scanner的构造方法和成员方法后,我们到IDEA中去使用一下:

import java.util.Scanner;

/*
    Scanner的基本使用
 */
public class ScannerDemo {
    public static void main(String[] args) {
        //Scanner(InputStream source):创建 Scanner 对象
        Scanner sc = new Scanner(System.in);

        //int nextInt():获取一个int类型的数据
        System.out.println("请输入一个整数:");
        int i = sc.nextInt();

        //输出获取到的数据
        System.out.println("你输入的数据是:" + i);
    }
}

2.2 练习(数据求和)

需求:键盘录入两个整数,求两个数据和,并在控制台输出求和结果

首先,我们来简单的分析一下:

分析:

① 创建键盘录入数据对象

② 通过键盘录入数据对象调用 nextInt() 方法获取数据

③ 对获取的两个整数求和

④ 在控制台输出求和结果

分析完毕后,我们到 IDEA 中去实现一下:

/*
    需求:键盘录入两个整数,求两个数据和,并在控制台输出求和结果
    分析:
        1:创建键盘录入数据对象
        2:通过键盘录入数据对象调用nextInt()方法获取数据
        3:对获取的两个整数求和
        4:在控制台输出求和结果
 */
public class ScannerTest {
    public static void main(String[] args) {
        //创建键盘录入数据对象
        Scanner sc = new Scanner(System.in);

        //通过键盘录入数据对象调用nextInt()方法获取数据
        System.out.println("请输入第一个整数:");
        int firstNumber = sc.nextInt();

        System.out.println("请输入第二个整数:");
        int secondNumber = sc.nextInt();

        //对获取的两个整数求和
        int sum = firstNumber + secondNumber;

        //在控制台输出求和结果
        System.out.println("求和结果是:" + sum);
    }
}

3:Random

3.1 Random基本使用

来,继续啊,下面我们来学习一下Random的使用。

通过查看帮助文档,我们知道了如下的信息:

Random:

  • 该类的实例用于生成随机数

构造方法:

  • Random():创建一个新的随机数生成器

成员方法:

  • int nextInt(int bound):获取一个int类型的随机数,参数bound表示获取到的随机数在[0,bound)之间

知道了Random的构造方法和成员方法后,我们到IDEA中去使用一下:

import java.util.Random;

/*
    Random的基本使用
 */
public class RandomDemo {
    public static void main(String[] args) {
        //Random():创建一个新的随机数生成器
        Random r = new Random();

        //int nextInt(int bound):获取一个int类型的随机数,参数bound表示获取到的随机数在[0,bound)之间
//        int i = r.nextInt(10);
//        System.out.println(i);

//        for (int i=1; i<=10; i++) {
//            int j = r.nextInt(10);
//            System.out.println(j);
//        }

        //需求:如何获取1-100之间的随机数呢?
//        int number = r.nextInt(100);//0-99
//        int number = r.nextInt(101);//0-100
        int number = r.nextInt(100) + 1;
        System.out.println(number);
    }
}

3.2 练习(猜数字游戏)

需求:系统自动产生一个1-100之间的整数,使用程序实现猜这个数字是多少?

猜的时候根据不同情况给出相应的提示

如果猜的数字比真实数字大,提示你猜的数据大了

如果猜的数字比真实数字小,提示你猜的数据小了

如果猜的数字与真实数字相等,提示恭喜你猜中了

首先,我们来简单的分析一下:

分析:

① 使用Random获取一个1-100之间的整数

② 使用Scanner实现键盘录入猜的数据值

③ 使用if…else if…else 的格式实现猜数字,并给出对应的提示

分析完毕后,我们到IDEA中去实现一下:

import java.util.Random;
import java.util.Scanner;

/*
    需求:系统自动产生一个1-100之间的整数,使用程序实现猜这个数字是多少?
        猜的时候根据不同情况给出相应的提示
        如果猜的数字比真实数字大,提示你猜的数据大了
        如果猜的数字比真实数字小,提示你猜的数据小了
        如果猜的数字与真实数字相等,提示恭喜你猜中了
    分析:
        1:使用Random获取一个1-100之间的整数
        2:使用Scanner实现键盘录入猜的数据值
        3:使用if…else if…else 的格式实现猜数字,并给出对应的提示
 */
public class RandomTest {
    public static void main(String[] args) {
        //使用Random获取一个1-100之间的整数
        Random r = new Random();
        int number = r.nextInt(100) + 1;
        System.out.println("系统已经产生了一个1-100之间的整数");

        while (true) {
            //使用Scanner实现键盘录入猜的数据值
            Scanner sc = new Scanner(System.in);
            System.out.println("请输入你要猜的数字:");
            int guessNumber = sc.nextInt();

            //使用if…else if…else 的格式实现猜数字,并给出对应的提示
            if (guessNumber > number) {
                System.out.println("你猜的数据" + guessNumber + "大了");
            } else if (guessNumber < number) {
                System.out.println("你猜的数据" + guessNumber + "小了");
            } else {
                System.out.println("恭喜你猜中了");
                break;
            }
        }
    }
}

本篇文章就到这里了,我们下篇文章见.



在这里插入图片描述



本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/398935.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

NestJS入门6:日志中间件

前文参考&#xff1a; NestJS入门1 NestJS入门2&#xff1a;创建模块 NestJS入门3&#xff1a;不同请求方式前后端写法 NestJS入门4&#xff1a;MySQL typeorm 增删改查 NestJS入门5&#xff1a;加入Swagger 1. 安装 nest g middleware logger middleware​ ​ ​ 2. lo…

嵌入式linux开发之LAN8720A网络驱动

网络硬件组成 OSI模型和TCP/IP模型的对比 嵌入式网络硬件分为两部分&#xff1a;MAC 和 PHY。 MAC&#xff08;Medium Access Control&#xff09;和PHY&#xff08;Physical Layer&#xff09;是计算机网络领域中常见的术语&#xff0c;通常用于描述数据链路层&#xff08;…

java数据结构与算法刷题-----LeetCode503. 下一个更大元素 II

java数据结构与算法刷题目录&#xff08;剑指Offer、LeetCode、ACM&#xff09;-----主目录-----持续更新(进不去说明我没写完)&#xff1a;https://blog.csdn.net/grd_java/article/details/123063846 解题思路&#xff1a;时间复杂度和空间复杂度都是O(n) 此题是739题的衍生题…

Python学习-流程图、分支与循环(branch and loop)

十、流程图 1、流程图&#xff08;Flowchart&#xff09; 流程图是一种用于表示算法或代码流程的框图组合&#xff0c;它以不同类型的框框代表不同种类的程序步骤&#xff0c;每两个步骤之间以箭头连接起来。 好处&#xff1a; 1&#xff09;代码的指导文档 2&#xff09;有助…

Mountain Environment - Dynamic Nature

包含超过470个环境预制件,要运行HD或URP,将包导入到HD或URP项目中,然后在“HD和URP支持”文件夹中的资源中导入支持包。它将替换着色器、预制件和网格,以便它们可以与RP一起使用。另请检查该文件夹中的自述文件。 此包是: 100%扫描资产的大型图书馆,经过精心优化、分类和…

读书笔记之《查理芒格的智慧》:如何建立跨学科的思维模型?

《查理芒格的智慧—投资的格栅理论》作者是[美] 罗伯特哈格斯特朗Robert G. Hagstrom&#xff0c; 原作名: Investing: The Last Liberal Art&#xff0c;于2015年出版。 罗伯特哈格斯特朗Robert G. Hagstrom&#xff1a;美盛投资顾问公司首席投资策略师、董事总经理。本科与硕…

vue 常用库

vue-cropper 一个优雅的图片裁剪插件 dayjs Day.js 是一个轻量的处理时间和日期的 JavaScript 库&#xff0c;和 Moment.js 的 API 设计保持完全一样 NutUI-Bingo 基于 NutUI 的抽奖组件库&#xff0c;助力营销活动和小游戏场景。

”戏说“ 交换机 与 路由器

一般意义上说 老哥 这文章发表 的 东一榔头 西一锤 呵呵&#xff0c; 想到哪里就啰嗦到哪里 。 交换机&#xff1a; 其实就是在通道交换 路由器&#xff1a; 不光是在通道交换还要在协议上交换 下图你看懂了吗&#xff1f; &#xff08;仅仅数据交换-交换机 协议…

实习日志20

1.找了很多sm3、sm4加密算法相关的库 1.1.sm4算法编码和解码可以在webstorm中直接执行 1.2.封装的真好&#xff0c;活字格里用不了一点 1.3.把sm3和sm4加密算法源码读透后剥离出来加入到活字格的资源管理器中即可使用 把调用函数改为活字格支持的普通函数 2.sm3加密改法 2.…

vue3组件通信方式汇总

前言&#xff1a;本文默认读者有JS基础和Vue基础&#xff0c;如果没有这个两个基础&#xff0c;可能阅读比较困难&#xff0c;建议先看下官方文档&#xff0c;当然&#xff0c;也欢迎评论交流&#x1f601; 通信方式总结 常见搭配形式 一、props&#xff08;使用频率最高&#…

PNPM 批量检查和更新项目依赖

&#x1f680; 作者主页&#xff1a; 有来技术 &#x1f525; 开源项目&#xff1a; youlai-mall &#x1f343; vue3-element-admin &#x1f343; youlai-boot &#x1f33a; 仓库主页&#xff1a; Gitee &#x1f4ab; Github &#x1f4ab; GitCode &#x1f496; 欢迎点赞…

LabVIEW声速测定实验数据处理

LabVIEW声速测定实验数据处理 介绍了一个基于LabVIEW的声速测定实验数据处理系统的应用。该系统利用LabVIEW的强大数据处理和分析能力&#xff0c;通过设计友好的用户界面和高效的算法&#xff0c;有效提高了声速测定实验的数据处理效率和准确性。通过这个案例&#xff0c;可以…

P6354 [COCI2007-2008#3] TAJNA

题目传送门 题目描述 使用一种加密算法。 设字符串的长度为 n&#xff0c;则构造一个矩阵&#xff0c;使得 rcn 且在 r≤c 的情况下使得 r 尽量大。 然后把给定的明文按照由上到下&#xff0c;从左到右的顺序填充这个 rc 的矩阵。 得到的密文就是把矩阵按照从左到右&#…

pytorch数学运算

目录 1. pytorch的数学运算包括2. 基本运算3. matmul4. power sqrt rsqrt5. exp log6. 近似值7. clamp 1. pytorch的数学运算包括 ▪Add/minus/multiply/divide ▪Matmul ▪Pow ▪Sqrt/rsqrt ▪Round 2. 基本运算 、-、*、/ 也可以使用函数add sub mul div 3. matmul 矩阵…

Excel练习:双层图表

Excel练习&#xff1a;双层图表 学习视频Excel制作双层图表&#xff0c;很多人都不会&#xff0c;其实只需1步操作就够了&#xff01;_哔哩哔哩_bilibili ​​ 通过调整两个图形的显示范围实现 增加折现图的负数显示范围&#xff0c;使折现图仅出现在整体图形的上方增加柱形…

VSCODE使用Django 页面和渲染

https://code.visualstudio.com/docs/python/tutorial-django#_use-a-template-to-render-a-page 通过模板渲染页面 文件 实现步骤 1&#xff0c; 修改代码&#xff0c;hello的App名字增加到installed_apps表中。 2&#xff0c; hello子目录下&#xff0c;创建 .\templates\…

什么是矩阵的秩?如何计算矩阵的秩?(done)

什么是矩阵的秩&#xff1f;https://search.bilibili.com/all?vt21986927&keyword%E4%BB%80%E4%B9%88%E6%98%AF%E7%9F%A9%E9%98%B5%E7%9A%84%E7%A7%A9%EF%BC%9F&from_sourcewebtop_search&spm_id_from333.1007&search_source5 矩阵本质上是线性方程组。但是方…

dockerfile文件书写

1.dockerfile构建nginx镜像 1.1书写dockerfile文件 mkdir nginx #创建nginx目录 cd nginx vim dockerfile # 修改文件FROM centos # 基础镜像&#xff0c;默认最新的centos8操作系统 MAINTAINER xianchao # 指定镜像的作者信息 RUN rm -rf /etc/yum.repos.d/* # centos8默认…

【label studio 升级记录】

label studio 版本升级记录 label studio 从1.8.1 升级到1.11.0 过程记录启动后遇到问题1:解决方法: 遇到问题2 安装版本与启动显示的版本不一致解决方法: label studio 从1.8.1 升级到1.11.0 过程记录 # 当前(2024-02)最新版是1.11.0 pip install -U label-studio启动后遇到…

【Python】OpenCV-图片添加水印处理

图片添加水印处理 1. 引言 图像处理中的水印添加是一种常见的操作&#xff0c;用于在图片上叠加一些信息或标识。本文将介绍如何使用OpenCV库在图片上添加水印&#xff0c;并通过详细的代码注释来解释每一步的操作。 2. 代码示例 以下是一个使用OpenCV库的简单代码示例&…