API概述
概述:API(Application Programming Interface) 应用程序编程接口。Java的API对于程序员来说就是一本可以检索查找的字典,是JDK官方提供给程序开发者使用类的说明文档,这些类将底层的代码封装起来,我们不需要关注这些类底层是如何实现的,只需要知道这些类是如何使用的。平常开发使用JDK类库的时候,通过查阅API的方式进行的。
API的使用步骤
- 打开帮助文档
- 点击显示,找到索引,找到输入框
- 在输入框中输入要查找的类,然后回车
- 看该类所在的包,对于java.lang包下面的类不需要导包,其他都需要
- 看该类的解释说明和类结构
- 学习该类的构造方法和成员方法
Scanner类
什么是Scanner类
一个可以使用正则表达式来解析基本数据类型和字符串类型的简单文本扫描器。
例如:让系统扫描用户输入的int类型的值
Scanner sc = new scanner(System.in);
int num = sc.nextInt();
备注:System.in 系统输入 指的是通过键盘录入数据
引用类型使用的步骤
导包
使用import关键字导包,在类的所有代码之前导包,引入要使用的类型,java.lang包下的所有类不需要导入。
导入格式
import 包名.类名;
如:import java.util.Scanner;
创建对象
数据类型 变量名 = new 数据类型(参数列表);
调用方法
变量名.方法名();
Scanner类的使用步骤
- 查看类
java.util.Scanner 需要导入java.util包 - 查看构造方法
public Scanner(inputStream source):构造一个新的Scanner对象,他生成的值是从指定的输入流中扫描的。 - 查看成员方法
public int nextInt(); 将输入的信息的下一个标记扫描为一个int类型值。
练习:通过键盘录入两个int类型的数值,进行累加和
import java.util.Scanner;
public class ScannerDemo{
public static void main(String[] args) {
//创建对象
Scanner sc = new Scanner(System.in);
//接受系统录入的数据
int num01 = sc.nextInt();
int num02 = sc.nextInt();
int sum = num01 + num02;
System.out.println(sum);
}
}
练习:录入三个数据,展示三个数据中的最大值
import java.util.Scanner;
public class ScannerDemo {
public static void main(String[] args) {
//创建对象
Scanner sc = new Scanner(System.in);
//调用方法 进行系统录入int类型值 nextInt
int num01 = sc.nextInt();
int num02 = sc.nextInt();
int num03 = sc.nextInt();
int max;
//判读三个数据的最大值
if (num01 > num02){
max = num01;
}else {
max = num02;
}
if (max > num03){
max = max;
}else {
max = num03;
}
System.out.println(max);
}
}
常用方法
int nextInt() 录入一个文本内容,进行录入信息的完整标记
double nextDouble() 录入一个double类型的数
String nextLine() 可以录入文本内容, 会查找行分隔符 换行动作
String next() 录入一个文本内容,进行录入信息的完整标记
void close() 关闭此扫描器。流的操作,如果程序开启一个流对象,当该流不再使用时,需要关闭(释放)
匿名对象【了解】
概念:匿名对象是没有变量名的对象
格式:
数据类型 变量名 = new 数据类型(参数列表);//有名对象
new 数据类型(参数列表);//匿名对象
举例:
public class AnonymityDemo {
public static void main(String[] args) {
//传统写法
Scanner sc = new Scanner(System.in);
int num = sc.nextInt();
//匿名对象的方式
int num02 = new Scanner(System.in).nextInt();
System.out.println(num02);
//开发中 使用匿名对象进行参数的传递
checkInput(new Scanner(System.in));
//获取一个Scanner类对象
Scanner sc02 = getScanner();
}
public static void checkInput(Scanner sc){
int num = sc.nextInt();
System.out.println(num);
}
public static Scanner getScanner() {
return new Scanner(System.in);
}
}
备注:匿名对象只能使用唯一的一次,下次再使用需要再次创建
使用建议:如果在程序当中你确定有一个对象只会使用唯一的一次,建议使用匿名对象。
Random类
什么是Random类
此类的实例主要是用于生成伪随机数
例如:使用户能够得到一个随机整数
Random ran = new Random();
int i = ran.nextInt();//int的取值范围
Random的使用步骤
-
查看类
java.util.Random :该类在java.util包下,需要导包 -
查看构造方法
public Random() :创建一个新的随机数生成器。 -
常用的成员方法
public int nextInt(int n) 返回一个伪随机数,范围[0,n)。 public double nextDouble() 返回一个伪随机小数,范围在[0.0,1.0)。
练习:使用Random类,随机生成10个10以内的随机整数。[0,9]
//1.导包
import java.util.Random;
public class RandomDemo{
public static void main(String[] args) {
//2.创建Random类对象
Random ran = new Random();
//3.调用类中的方法 nextInt(int n)
for (int i = 0; i < 10; i++) {
int num = ran.nextInt(10);
System.out.println(num);
}
}
}
练习:获取1~n之间的随机数,包含n
//1.导包
import java.util.Random;
public class RandomDemo{
public static void main(String[] args) {
int n = 50;//构建n的范围为
//2.创建Random类对象
Random ran = new Random();
//3.调用类中的方法
int num = ran.nextInt(n)+1;
System.out.println(num);
}
}
ArrayList类
引入—对象数组
//需求:把三个People类型的对象存入到容器当中。数组...
public static void main(String[] args){
//创建对象数组
People arr = new People[3];
//创建三个people对象
People p1 = new People("小明",20);
People p2 = new People("小刘",21);
People p3 = new People("小花",19);
arr[0] = p1;
arr[1] = p2;
arr[2] = p3;
//遍历学生数组 展示对象中的成员变量信息 name age
for(int i = 0; i < arr.length; i++){
System.out.println(arr[i].getName + "," + arr[i].getAge);
}
}
备注:对象数组长度是固定的,如果在程序中需要对对象进行增加或者删除等数量操作时,非常不方便。
Java又提供了一个容器java.util.ArrayList集合类。这个类可以让我们的存储和操作对象更方便。
什么是Arraylist类
java.util.ArrayList类是一个大小可变的数组的实现,里面存储的数据称为元素,该类提供了一些常用的API方法,来操作内部存储的元素
ArrayList类的使用步骤
-
查看类
java.util.ArrayList :该类也是需要导入后才能使用
表示一种指定的数据类型,叫做泛型。E,取自Element(元素)的首字母。在程序中遇到E的地方,我们需要使用一种引用的数据类型将其替换掉即可,表示我们将存储那种数据类型的元素。
例如:EArrayList<People> list; ArrayList<String> strs; ArrayList<int> nums;//不正确的写法
-
查看构造方法
public ArrayList() 构造一个初始容量为10的空列表 public Arraylist(int initialCapacity) 构造一个具有指定初始容量的空列表
基本格式
ArrayList<引用的数据类型> 变量名 = new ArrayList<引用的数据类型>()
在JDK1.7之后,右侧的泛型尖括号里面的数据类型可以选择省略不写,但<>要保留
-
成员方法
public boolean add(E e) 将指定的元素添加到此列表的尾部 public void add(int index,E element) 将指定的元素插入此列表中的指定位置 public void clear() 移除此列表中的所有元素 public boolean contains(Object o) 判断是否包含指定的元素,包含返回 true,否则返回 false public E get(int index) 返回指定位置上的元素 public int indexOf(Object o) 返回此列表中首次出现的指定元素的索引,或如果此列表不包含元素,则返回 -1 public boolean isEmpty() 如果此列表中没有元素,则返回 true public E remove(int index) 移除此列表中指定位置上的元素,并把移除的元素返回 public E set(int index, E element) 用指定的元素替代此列表中指定位置上的元素 public int size() 返回此列表中的元素数
遍历 【重点】
使用for循环,定义的循环变量就是ArrayList容器中的索引,循环的次数就是容器的元素个数size()
//需求:往ArrayList容器当中存入五个学生对象,查找小丽这位同学,如果查到就把小丽的信息输出,之后把小丽删除
//学生包含姓名,年龄,学号
import java.util.ArrayList;
public class StudentDemo {
public static void main(String[] args) {
Student p1 = new Student("小丽",18,001);
Student p2 = new Student("小明",19,002);
Student p3 = new Student("小刘",21,003);
Student p4 = new Student("小孙",20,004);
Student p5 = new Student("小李",22,005);
//创建ArrayList对象
ArrayList<Student> list = new ArrayList<>();
//存入学生信息
list.add(p1);
list.add(p2);
list.add(p3);
list.add(p4);
list.add(p5);
//遍历list容器
//添加开关
boolean flag = false;
for (int i = 0; i < list.size(); i++) {
//判断list容器中是否含有小丽
if (list.get(i).getName().equals("小丽")){
Student remove = list.remove(i);
System.out.println(remove);
flag = true;
}
}
if (flag == false){
System.out.println("没有找到小丽信息");
}
System.out.println("-------------------------");
//查看删除后的信息
for (int i = 0; i < list.size(); i++) {
Student student = list.get(i);
System.out.println(student);
}
}
}
如何存储基本类型值
ArrayList类对象不能存储基本类型,只能存储引用类型的数据,类似 ArrayList是不支持的,但是Java中提供了基本数据类型对应的包装类型,包装类型是可以在ArrayList容器中指定,所以我们如果想要存储基本数据类型,首先需要把基本数据类型转换成包装类型
基本类型 | 基本类型包装类 |
---|---|
byte | Byte |
short | Short |
int | Integer |
long | Long |
float | Float |
double | Double |
char | Character |
boolean | Boolean |
备注:我们需要对int和char进行特殊记忆,其他类型只需要记住首字母大写即可。
。