P25 Scanner类
- 1.什么是Scanner类
- 2.引用类型使用步骤
- 2.1 导包
- 2.2 创建对象
- 2.3 调用方法
- 3.Scanner使用步骤
- 4.练习
- 4.1 求和
- 4.2 取最值
- 5.匿名对象【了解】
- 5.1 概念
- 5.2 应用场景
系统:Win10
Java:1.8.0_333
IDEA:2020.3.4
了解了 API 的使用方法,我们通过 Scanner 类,熟悉一下查询 API,并使用类的步骤
1.什么是Scanner类
一个可以解析基本类型和字符串的简单文本扫描器。例如,以下代码使用户从
System.in 中读取一个数
Scanner sc = new Scanner(System.in);
int i = sc.nextInt();
提示:System.in 系统输入值的是通过键盘录入数据
2.引用类型使用步骤
2.1 导包
使用 import 关键字导包,在类的所有代码之前导包,引入要使用的类型,java.lang 包下的所有类无需导入,格式如下
import 包名.类名;
举例
import java.util.Scanner;
2.2 创建对象
使用该类的构造方法,创建爱你一个该类的对象,格式如下
数据类型 变量名 = new 数据类型(参数列表);
举例
Scanner sc = new Scanner(System.in);
2.3 调用方法
调用该类的成员方法,完成指定功能,格式如下
变量名.方法名();
举例
int i = sc.nextInt(); // 接收一个键盘导入的数据
3.Scanner使用步骤
查看类
java.util.Scanner:该类需要 import 导入后使用
查看构造方法
public Scanner(InputStream source):构造一个新的 Scanner,它生成的值是从指定的输入流扫描的
查看成员方法
public int nextInt():将输入信息的下一个标记扫描为一个 int 值
使用 Scanner 类,完成接收键盘录入数据的操作,代码如下
// 1.导包
import java.util.Scanner;public class ScannerDemo01 {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);}
}
4.练习
4.1 求和
键盘输入两个int数字,并且求出和值
public class ScannerDemo02 {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("结果是:" + (a + b));}
}
4.2 取最值
键盘输入三个数据并获取最大值
public class ScannerDemo03 {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);}
}
5.匿名对象【了解】
5.1 概念
创建对象时,只有创建对象的语句,却没有把对象地址赋值给某个变量。虽然是创建对象的简化写法,但是应用场景非常有限
匿名对象:没有变量名的对象
格式
new 类名(参数列表);
举例
new Scanner(System.in);
5.2 应用场景
1.创建匿名对象直接调用方法,没有变量名
new Scanner(System.in).nextInt;
2.一旦调用两次方法,就是创建了两个对象,造成浪费,请看如下代码
new Scanner(System.in).nextInt;
new Scanner(System.in).nextInt;
提示:一个匿名对象,只能使用一次
3.匿名对象可以作为方法的参数和返回值
作为参数
public class Test01 {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:" + sc.nextInt());}
}
作为返回值
public class Test02 {public static void main(String[] args) {Scanner sc = getScanner();System.out.println("sc:" + sc.nextInt());}public static Scanner getScanner() {// 普通方式// Scanner sc = new Scanner(System.in);// return sc;// 匿名对象作为方法的返回值return new Scanner(System.in);}
}