Java基础 第二节 第四课

举报
我是小白呀iamarookie 发表于 2021/09/10 00:43:23 2021/09/10
【摘要】 Scanner 类 概述引用类型使用步骤导包创建对象调用方法 Scanner 使用步骤练习求和取最值 匿名对象概念应用场景作为参数和返回值 概述 了解 API 的使用方式...

概述

了解 API 的使用方式, 我们通过 Scanner 类, 熟悉一下查询 API, 并使用类的步骤.

Scanner 类: 一个可以解析基本类型和字符串的简单文本扫描器. 例如, 一下代码能够从 System.in 中读取一个数:

Scanner sc = new Scanner(System.in);
int i = sc.nextInt();

  
 
  • 1
  • 2

注: System.in 系统输入指的是通过键盘录入数据.

引用类型使用步骤

导包

使用 import 关键字导包. 在类的所有代码之前导包, 引入要使用的类型. java.lang 包下的所有类无需导入. 格式:

import 包名.类名;

  
 
  • 1

举例:

java.util.Scanner;

  
 
  • 1

创建对象

使用该类的构造方法, 创建一个该类的对象. 格式:

数据类型 变量名 = new 数据类型(参数列表);

  
 
  • 1

举例:

Scanner sc = new Scanner(System.in);

  
 
  • 1

调用方法

调用该类成员方法, 完成指定功能. 格式:

变量名.方法名();

  
 
  • 1

举例:

int i = sc.nextInt();  // 接收一个键盘录入的整数

  
 
  • 1

Scanner 使用步骤

查看类

  • java.util.Scanner: 该类需要 import 导入后使用

查看构造方法

  • public Scanner(InputStream source): 构造一个新的 Scanner, 它生成的值是从指定的输入流扫描的

查看成员方法

  • public int nextInt(): 将输入信息的下一个信息扫描为一个 int 值

使用 Scanner 类, 完成接收键盘录入数据的操作, 代码如下:

import java.util.Scanner;

public class Demo_Scanner {
    public static void main(String[] args) {
        
        // 2. 创建键盘录入数据的对象
        Scanner sc = new Scanner(System.in);
        
        // 3. 接收数据
        System.out.println("请录入一个整数:");
        int i = sc.nextInt();
        
        // 4. 输出数据
        System.out.println("i:" + i);
    }
}

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16

练习

求和

键盘录入两个数据并求和, 代码如下:

import java.util.Scanner;

public class Test52 {
    public static void main(String[] args) {
        // 创建对象
        Scanner sc = new Scanner(System.in);
        // 接收数据
        System.out.println("请输入第一个数据:");
        int a = sc.nextInt();
        System.out.println("请输入第二个数据");
        int b = sc.nextInt();
        
        // 对数据进行求和
        int sum = a + b;
        System.out.println("sum:" + sum);
    }
}

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17

取最值

键盘录入三个数据并获得最大值, 代码如下:

import java.util.Scanner;

public class Test53 {
    public static void main(String[] args) {
        // 创建对象
        Scanner sc = new Scanner(System.in);
        // 接收数据
        System.out.println("请输入第一个:");
        int a = sc.nextInt();
        System.out.println("请输入第二个:");
        int b = sc.nextInt();
        System.out.println("请输入第三个:");
        int c = sc.nextInt();
        
        // 如何获取三个数据的最大值
        int temp = (a > b ? a : b);
        int max = (temp > c ? temp : c);

        System.out.println("max:" + max);
    }
}

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21

匿名对象

概念

创建对象时, 只有创建对象的语句, 却没有把对象地址赋值给某个变量. 虽然是创建对象的简化写法, 但是应用场景非常有限.

匿名对象: 没有变量名的对象.

格式:

new 类名(参数列表);

  
 
  • 1

应用场景

创建匿名对象直接调用方法, 没有变量名.

new Scanner(System.in).nextInt();

  
 
  • 1

一旦调用两次方法, 就是创建了两个对象, 造成浪费. 请看如下代码:

newScanner(System.in).nextInt();
newcanner(System.in).nextInt();

  
 
  • 1
  • 2

注: 一个匿名对象, 只能使用一次.

作为参数和返回值

作为参数:

import java.util.Scanner;

class Test54 {
    public static void main(String[] args) {
        // 普通方式
        Scanner sc = new Scanner(System.in);
        input(sc);

        // 匿名对象作为方法接收的参数
        input(new Scanner(System.in));
    }
    public static void input(Scanner sc){
        System.out.println(sc);
    }
}

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15

作为返回值:

import java.util.Scanner;

class Test55 {
    public static void main(String[] args) {
        // 普通方式
        Scanner sc = getScanner();
    }

    public static Scanner getScanner(){
        // 普通方式
        // Scanner sc = new Scanner(System.in);  
        // return sc;

        // 匿名对象作为方法返回值
        return new Scanner(System.in);
    }
}

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17

文章来源: iamarookie.blog.csdn.net,作者:我是小白呀,版权归原作者所有,如需转载,请联系作者。

原文链接:iamarookie.blog.csdn.net/article/details/110037603

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。