文章目录
1.API
概述
API(Application Programming Interface),应用程序编程接口。Java API是一本程序员的 字典 ,是JDK中提供给
我们使用的类的说明文档。这些类将底层的代码实现封装了起来,我们不需要关心这些类是如何实现的,只需要学
习这些类如何使用即可。所以我们可以通过查询API的方式,来学习Java提供的类,并得知如何使用它们。
API使用步骤
- 打开帮助文档。
- 点击显示,找到索引,看到输入框。
- 你要找谁?在输入框里输入,然后回车。
- 看包。java.lang下的类不需要导包,其他需要。
- 看类的解释和说明。
- 学习构造方法。
- 使用成员方法。
2.Scanner类
了解了API的使用方式,我们通过Scanner类,熟悉一下查询API,并使用类的步骤。
2.1什么是Scanner类
一个可以解析基本类型和字符串的简单文本扫描器。 例如,以下代码使用户能够从 System.in 中读取一个数:
Scanner sc = new Scanner(System.in);
int i = sc.nextInt();
备注:System.in 系统输入指的是通过键盘录入数据。
2.2 引用类型使用步骤
1.导包
使用import关键字导包,在类的所有代码之前导包,引入要使用的类型,java.lang包下的所有类无需导入。 格
式:
import 包名.类名;
- 举例:
java.util.Scanner;
2.创建对象
3.调用方法
2.3 Scanner使用步骤
1. 查看类
java.util.Scanner :该类需要import导入后使用。
2. 查看构造方法
public Scanner(InputStream source) : 构造一个新的 Scanner ,它生成的值是从指定的输入流扫描的。
3. 查看成员方法
public int nextInt() :将输入信息的下一个标记扫描为一个 int 值。
2.4 Scanner使用举例
/**
*题目:
*键盘输入三个int数字,然后求出其中的最大值。
*
*思路:
*1. 既然是键盘输入,肯定需要用到Scanner
*2. Scanner三个步骤:导包、创建、使用nextInt()方法
*3. 既然是三个数字,那么调用三次nextInt()方法,得到三个int变量
*4. 无法同时判断三个数字谁最大,应该转换成为两个步骤:
* 4.1 首先判断前两个当中谁最大,拿到前两个的最大值
* 4.2 拿着前两个中的最大值,再和第三个数字比较,得到三个数字当中的最大值
*5. 打印最终结果
*/
public class ScannerDemo {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入第一个数字:");
int a = scanner.nextInt();
System.out.println("请输入第二个数字:");
int b = scanner.nextInt();
System.out.println("请输入第三个数字:");
int c = scanner.nextInt();
int max = getMax(a, b, c);
System.out.println(max);
}
public static int getMax(int a,int b,int c){
int max = a;
if(b > max){
max = b;
}
if (c > max){
max = c;
}
return max;
}
}
2.5 匿名对象【了解】
概念
创建对象时,只有创建对象的语句,却没有把对象地址值赋值给某个变量。虽然是创建对象的简化写法,但是应用
场景非常有限。
- 匿名对象 :没有变量名的对象。
- 使用建议:如果确定有一个对象只需要使用唯一的一次,就可以用匿名对象。
1.匿名对象的创建
先创建一个Person类:
public class Person {
String name;
public void showName() {
System.out.println("我叫:" + name);
}
}
然后使用该类,创建匿名对象:
/*
创建对象的标准格式:
类名称 对象名 = new 类名称();
匿名对象就是只有右边的对象,没有左边的名字和赋值运算符。
new 类名称();
注意事项:匿名对象只能使用唯一的一次,下次再用不得不再创建一个新对象。
使用建议:如果确定有一个对象只需要使用唯一的一次,就可以用匿名对象。
*/
public class Demo01Anonymous {
public static void main(String[] args) {
// 左边的one就是对象的名字
Person one = new Person();
one.name = "高圆圆";
one.showName(); // 我叫高圆圆
System.out.println("===============");
// 匿名对象
new Person().name = "赵又廷";
new Person().showName(); // 我叫:null
}
}
2.匿名对象作为传入参数或者返回值
public class Demo02Anonymous {
public static void main(String[] args) {
// 普通使用方式
// Scanner sc = new Scanner(System.in);
// int num = sc.nextInt();
// 匿名对象的方式
// int num = new Scanner(System.in).nextInt();
// System.out.println("输入的是:" + num);
// 使用一般写法传入参数
// Scanner sc = new Scanner(System.in);
// methodParam(sc);
// 使用匿名对象来进行传参
// methodParam(new Scanner(System.in));
Scanner sc = methodReturn();
int num = sc.nextInt();
System.out.println("输入的是:" + num);
}
public static void methodParam(Scanner sc) {
int num = sc.nextInt();
System.out.println("输入的是:" + num);
}
public static Scanner methodReturn() {
// Scanner sc = new Scanner(System.in);
// return sc;
return new Scanner(System.in);
}
}
3.Random类
使用就三个步骤,导包,创建对象,使用(就是查API文档的时候要查找的包,构造方法,成员方法)
Random类的关键方法:
Random random = new Random();
random.nextInt();//产生的是一个int范围内的随机数(正负2的31次方)
random.nextInt(10);//产生的是一个左闭右开的[0,10)的范围内的随机数
random.nextInt(10)+1;//产生的是一个在[1,11)或者说是[1,10]之间的随机整数
来一个猜数字的案例:
/*
题目:
用代码模拟猜数字的小游戏。
思路:
1. 首先需要产生一个随机数字,并且一旦产生不再变化。用Random的nextInt方法
2. 需要键盘输入,所以用到了Scanner
3. 获取键盘输入的数字,用Scanner当中的nextInt方法
4. 已经得到了两个数字,判断(if)一下:
如果太大了,提示太大,并且重试;
如果太小了,提示太小,并且重试;
如果猜中了,游戏结束。
5. 重试就是再来一次,循环次数不确定,用while(true)。
*/
public class RandomGame {
public static void main(String[] args) {
//获取到随机数
Random r = new Random();
int result = r.nextInt(100) + 1;//[1,100]
//开始进行猜数字
while(true){
//收集键盘输入的猜到的数字
System.out.println("请输入你想要猜的数字:");
int guess = new Scanner(System.in).nextInt();
if(guess == result){
System.out.println("恭喜你才对了!");
break;
}else if(guess < result){
System.out.println("你猜的数字小了");
}else if (guess > result){
System.out.println("你猜的数字大了");
}
}
System.out.println("游戏结束!");
}
}
4.ArrayList类
4.1为什么需要这个类
普通的数组定义的时候,长度都是固定的,不能够变化的,但是有时候需要新增一些数据的时候,需要数组变大,这时候就需要用到ArrayList这个类了。
4.2使用ArrayList
对于集合类的使用,无非就是增删改查这几个操作:
- 增(添加一个元素到集合中):
public boolean add(E e)
boolean returnPara = ArrayList.add(1);
ArrayList.add(xxx);
此外还有:
void add(int index, E element)
将指定的元素插入此列表中的指定位置。
boolean addAll(int index, Collection<? extends E> c)
从指定的位置开始,将指定 collection 中的所有元素插入到此列表中。
- 删(从集合中删除一个元素):
public E remove(int index)
删除所有的:clear(),
ArrayList<Student> list = new ArrayList<Student>();
list.add("zhangsan");
list.add("lisi")
Student s = list.remove(0);
- 改:E
set(int index, E element)
用指定的元素替代此列表中指定位置上的元素。 - 查
返回值类型 | 方法名称 | 说明 |
---|---|---|
boolean | isEmpty() | 如果此列表中没有元素,则返回 true |
int | lastIndexOf(Object o) | 返回此列表中最后一次出现的指定元素的索引,或如果此列表不包含索引,则返回 -1。 |
int | indexOf(Object o) | 返回此列表中首次出现的指定元素的索引,或如果此列表不包含元素,则返回 -1。 |
int | size() | 返回此列表中的元素数。 |
E | get(int index) | 返回此列表中指定位置上的元素。 |
boolean | contains(Object o) | 如果此列表中包含指定的元素,则返回 true。 |
最后来个案例(找出一个随机数组中的所有偶数):
public class ArraysListDemo {
//产生一个随机数的集合,然后收集其中的偶数
public static void main(String[] args) {
Random random = new Random();
ArrayList<Integer> list = new ArrayList<Integer>();
//往集合中添加元素
for (int i = 0; i < 10; i++) {
int num = random.nextInt(100)+1;//[1,100]
list.add(num);
}
System.out.println("所有的元素:");
System.out.println(list);
System.out.println("======================");
System.out.println("所有的偶数:");
System.out.println(getArrayList(list));
}
public static ArrayList<Integer> getArrayList(ArrayList<Integer> list){
ArrayList<Integer> smallList = new ArrayList<Integer>();
for(int i = 0;i < list.size();i++){
if(list.get(i) % 2 == 0){//是偶数
smallList.add(list.get(i));
}
}
return smallList;
}
}