1. API概述和使用步骤
Application Programming Interface,应用程序编程接口



?
?主要看三点:包路径、构造方法摘要、方法摘要
String类在java.lang包下
2. Scanner
2.1 Scanner基本使用
盘输入类;
导包语句在package下面,public class上面写。

package Demo05;
// 1.导包
import java.util.Scanner;
/*
使用方法:
获取键盘输入的一个int数字:int num = sc.nextInt();
获取键盘输入的一个字符串:String str = sc.next();
*/
public class Demo01Scanner {
public static void main(String[] args) {
// 2.创建Scanner类
// 备注:System.in代表从键盘进行输入
Scanner sc = new Scanner(System.in);
// 3.获取键盘输入的int数字
int num = sc.nextInt();
System.out.println("输入的int数字是:" + num);
// 4.获取键盘输入的字符串
String str = sc.next();
System.out.println("输入的字符串是:" + str);
}
}
?
?2.2 键盘输入两个数字求和
package Demo05;
import java.util.Scanner;
public class Demo02ScannerSum {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入第1个整数:");
int num1 = sc.nextInt();
System.out.println("请输入第2个整数:");
int num2 = sc.nextInt();
System.out.println("求和结果是:" + (num1 + num2));
}
}
?
2.3 键盘输入的三个数字的最大值
package Demo05;
import java.util.Scanner;
public class Demo03SannerMax {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入第1个整数:");
int num1 = sc.nextInt();
System.out.println("请输入第2个整数:");
int num2 = sc.nextInt();
System.out.println("请输入第3个整数:");
int num3 = sc.nextInt();
int max = num3 > (num1 > num2 ? num1 : num2) ? num3 : (num1 > num2 ? num1 : num2);
System.out.println("最大的数是:" + max);
}
}
?
3. 匿名对象
3.1 匿名对象介绍
package Demo06;
/*
创建对象的标准格式:
类名称 对象名 = new 类名称();
匿名对象就是只有右边的对象,没有左边的名字和赋值运算符:
new 类名称();
注意事项:匿名对象只能使用唯一的一次,下次再用不得不再创建一个新对象。
使用建议:如果确定有一个对象只需要使用唯一的一次,就可以用匿名对象。
*/
public class Demo01Annoymous {
public static void main(String[] args) {
Person one = new Person();
one.name = "哈哈哈";
one.showName();
System.out.println("================");
// 匿名对象
new Person().name = "嘿嘿嘿";
new Person().showName(); // 我叫:null
}
}
?
?3.2 匿名对象作为方法的参数和返回值
ALT + ENTER可以直接设置一个变量:?


package Demo06;
import java.sql.SQLOutput;
import java.util.Scanner;
public class Demo02Annoymous {
public static void main(String[] args) {
// 普通使用方式
// Scanner sc = new Scanner(System.in);
// int num1 = sc.nextInt();
//
// //匿名对象方式
// int num2 = new Scanner(System.in).nextInt();
// System.out.println("输入的是:" + num2);
// 使用匿名对象来进行传参
methodParam(new Scanner(System.in));
// 使用匿名对象作为返回值
Scanner sc = methodReturn();
System.out.println("请输入一个整数:");
System.out.println("输入的是:" + sc.nextInt());
}
public static void methodParam(Scanner sc){
System.out.println("请输入一个整数:");
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);
}
}
?
4. Random
4.1 Random概述和基本使用
用来产生随机数字

package Demo07;
import java.util.Random;
public class Demo01Random {
public static void main(String[] args) {
Random r = new Random();
int num = r.nextInt();
System.out.println("随机数是:" + num);
}
}
?
?4.2 Random生成指定范围内的随机数

package Demo07;
import java.util.Random;
public class Demo02Random {
public static void main(String[] args) {
Random r = new Random();
for (int i = 0; i < 5; i++) {
// 范围实际上是0-4
int num = r.nextInt(5);
System.out.println(num);
}
}
}
?
4.3 生成1-n 之间的随机数

4.4 猜数字小游戏

?
package Demo07;
import java.util.Random;
import java.util.Scanner;
public class RandomGame {
public static void main(String[] args) {
Random r = new Random();
int randomNum = r.nextInt(100) + 1;
Scanner sc = new Scanner(System.in);
while (true){
System.out.println("请输入你猜测的数字:");
int guessNum = sc.nextInt();
if (guessNum < randomNum){
System.out.println("猜小了,请重试!");
} else if (guessNum > randomNum){
System.out.println("猜大了,请重试!");
} else {
System.out.println("恭喜你,猜中啦!");
break;
}
}
}
}

5. 对象数组
package Demo08;
/*
题目:
定义一个数组,用来存储3个Person对象
数组有一个缺点,一旦创建,程序运行期间长度不可以发生改变
*/
public class Demo01Array {
public static void main(String[] args) {
Person[] array = new Person[3];
Person one = new Person("哈哈哈",10);
Person two = new Person("嘿嘿嘿",20);
Person three = new Person("呵呵呵",30);
array[0] = one;
array[1] = two;
array[2] = three;
System.out.println(array[0]); // 输出地址值
System.out.println(array[1]); // 输出地址值
System.out.println(array[2]); // 输出地址值
System.out.println(array[1].getName());
}
}
?Demo08.Person@75412c2f Demo08.Person@282ba1e Demo08.Person@13b6d03 嘿嘿嘿
Process finished with exit code 0
6. Arraylist集合
6.1 Arraylist概述和基本使用

?
package Demo08;
import java.util.ArrayList;
public class Demo02ArrayList {
public static void main(String[] args) {
ArrayList<String> list = new ArrayList<>();
System.out.println(list); // []
// 向集合添加一些数据
list.add("哈哈哈");
System.out.println(list); // [哈哈哈]
list.add("嘿嘿嘿");
list.add("呵呵呵");
list.add("吼吼吼");
System.out.println(list); // [哈哈哈, 嘿嘿嘿, 呵呵呵, 吼吼吼]
}
}
[] [哈哈哈] [哈哈哈, 嘿嘿嘿, 呵呵呵, 吼吼吼]
Process finished with exit code 0
?6.2?Arraylist常用方法和遍历

?
package Demo08;
import java.util.ArrayList;
public class Demo03ArrayMethod {
public static void main(String[] args) {
ArrayList<String> list = new ArrayList<>();
System.out.println(list); // []
// 向集合中添加元素:add
boolean success = list.add("hhh");
System.out.println(list);
System.out.println("添加的动作是否成功:" + success);
list.add("aaa");
list.add("bbb");
list.add("ccc");
list.add("ddd");
System.out.println(list); // [hhh, aaa, bbb, ccc, ddd]
// 从集合中删除元素:remove。索引值从0开始。
String whoRemoved = list.remove(2);
System.out.println("被删除的是:" + whoRemoved); // bbb
System.out.println(list);
// 获取集合的长度尺寸,也就是其中的元素个数
int size = list.size();
System.out.println("集合的长度是:" + size);
// 遍历集合
for (int i = 0; i < list.size(); i++) {
System.out.println(list.get(i));
}
}
}
[] [hhh] 添加的动作是否成功:true [hhh, aaa, bbb, ccc, ddd] 被删除的是:bbb [hhh, aaa, ccc, ddd] 集合的长度是:4 hhh aaa ccc ddd
Process finished with exit code 0
?6.3 ArrayList集合存储基本数据类型
泛型必须是引用类型,不能是基本类型

?
package Demo08;
import java.util.ArrayList;
public class Demo04ArrayListBasic {
public static void main(String[] args) {
ArrayList<String> listA = new ArrayList<>();
// // 错误写法,泛型只能是引用类型,不能是基本类型
// ArrayList<int> listB = new ArrayList<int>();
ArrayList<Integer> listC = new ArrayList<>();
listC.add(100);
listC.add(200);
System.out.println(listC);
int num = listC.get(1);
System.out.println("第1号元素是:" + num);
}
}
[100, 200] 第1号元素是:200
Process finished with exit code 0
?6.4 ArrayList练习1 - 存储随机数字

package Demo08;
import java.util.ArrayList;
import java.util.Random;
public class Demo05ArrayListRandom {
public static void main(String[] args) {
ArrayList<Integer> list = new ArrayList<>();
Random r = new Random();
for (int i = 0; i < 6; i++) {
list.add(r.nextInt(33) + 1);
}
for (int i = 0; i < list.size(); i++) {
System.out.println("list 第" + i + "号元素是:" + list.get(i));
}
}
}
?list 第0号元素是:22 list 第1号元素是:15 list 第2号元素是:9 list 第3号元素是:33 list 第4号元素是:20 list 第5号元素是:8
Process finished with exit code 0
6.5?ArrayList练习2 - 存储自定义对象

?
?
package Demo08;
import java.util.ArrayList;
public class ArrayListStudemt {
public static void main(String[] args) {
ArrayList<Student> list = new ArrayList<>();
Student one = new Student("aaa",18);
Student two = new Student("bbb",19);
Student three = new Student("ccc",17);
Student four = new Student("ddd",20);
list.add(one);
list.add(two);
list.add(three);
list.add(four);
for (int i = 0; i < list.size(); i++) {
// System.out.println(list.get(i)); // 输出地址
System.out.println("姓名:" + list.get(i).getName() + ",年龄:" + list.get(i).getAge());
}
}
}
?姓名:aaa,年龄:18 姓名:bbb,年龄:19 姓名:ccc,年龄:17 姓名:ddd,年龄:20
Process finished with exit code 0
6.6 ArrayList练习3 - 按指定格式遍历集合字符串
package Demo08;
import java.util.ArrayList;
/*
题目:定义指定格式打印集合的方法(ArrayList类型作为参数),使用()括起集合,使用@分隔每个元素。
格式参照(元素@元素@元素)
ArrayList集合作为方法参数
*/
public class Demo06ArrayListPrint {
public static void main(String[] args) {
ArrayList<String> list = new ArrayList<>();
list.add("aaa");
list.add("bbb");
list.add("ccc");
System.out.println("普通打印list集合:");
System.out.println(list);
System.out.println("特殊格式打印List集合:");
listPrint(list);
}
public static void listPrint(ArrayList<String> list){
System.out.print("{");
for (int i = 0; i < list.size(); i++) {
if (i != list.size() - 1){
System.out.print(list.get(i) + "@");
}else {
System.out.println(list.get(i) + "}");
}
}
}
}
?普通打印list集合: [aaa, bbb, ccc] 特殊格式打印List集合: {aaa@bbb@ccc}
Process finished with exit code 0
???????6.7 ArrayList练习4 - 筛选集合中的随机数

?
package Demo08;
import java.util.ArrayList;
import java.util.Random;
/*
ArrayList集合方法返回值
*/
public class Demo07ArrayListReturn {
public static void main(String[] args) {
ArrayList<Integer> bigList = new ArrayList<>();
ArrayList<Integer> smallList = new ArrayList<>();
Random r = new Random();
for (int i = 0; i < 20; i++) {
bigList.add(r.nextInt(20) + 1);
}
System.out.println("大集合元素:" + bigList);
smallList = returnSmallList(bigList);
System.out.println("小集合元素:" + smallList);
System.out.println("偶数元素个数:" + smallList.size());
}
public static ArrayList<Integer> returnSmallList(ArrayList<Integer> bigList){
ArrayList<Integer> smallList = new ArrayList<>();
for (int i = 0; i < bigList.size(); i++) {
if (bigList.get(i) % 2 == 0){
smallList.add(bigList.get(i));
}
}
return smallList;
}
}
大集合元素:[18, 13, 1, 2, 14, 10, 5, 2, 18, 10, 19, 10, 9, 6, 11, 18, 8, 19, 12, 13] 小集合元素:[18, 2, 14, 10, 2, 18, 10, 10, 6, 18, 8, 12] 偶数元素个数:12
Process finished with exit code 0
|