fl今日内容
- API概述
- Scanner类
- Random类
- ArrayList类
- static关键字
- String类
- Arrays类
- Math类
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 num01 = sc.nextInt();
int num02 = sc.nextInt();
int num03 = sc.nextInt();
// 判断获取三个数据的最大值
int three = num01 > num02 ? num01 : num02;
int max = three > num03 ? three : num03;
System.out.println(max);
}
}
匿名对象【了解】
概念
匿名对象:没有变量名的对象
格式:
数据类型 变量名 = new 数据类型(参数列表); // 有名对象
new 数据类型(参数列表);// 匿名对象
使用情况:当这个对象只使用一次的时候。 举例:
public class AnonymousDemo{
public static void main(String[] args){
// 传统写法
Scanner sc = new Scanner(System.in);
int num01 = sc.nextInt();
// 匿名对象的方式
int num02 = new Scanner(System.in)
}
}
备注:匿名对象只能使用唯一的一次,下次再使用再次创建
使用建议:如果在程序当中你确定有一个对象只会使用唯一的一次,建议使用匿名对象。
Random类
什么时Random类
此类的实例主要用于生成伪随机数
例如:使用户能够得到一个随机整数
Random ran = new Random();
int i = ran.nextInt(); // int的取值范围
Random类的使用步骤
-
查看类
java.util.Random:该类需要导入后才能使用
-
查看构造方法
public Random(): 创建一个新的随机数生成器
-
查看成员方法
public int nextInt(int n): 返回一个伪随机数,范围在[0,n-1]。
public double nextDouble(): 返回一个伪随机小数,范围在[0.0,1.0)。
练习:使用Random类,随机生成10个以内的随机整数。【0.9】
2// 导包 import java.util.Random; public class RandomDemo02{ 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。
// 导包 import java.util.Random; public class RandomDemo03{ public static void main(String[] args){ // 构建一个n的反问 int n = 50; // 构建一个Random类对象 Random ran = new Random(); // 调用类中的方法 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(); People p2 = new People(); People p3 = new People(); arr[0] = p1; arr[1] = p2; arr[2] = p3; // 使用循环 //for(int i = 0; i < 3; i++){ // arr[i] = new People(); //} // 遍历学生数组, 展示对象中的成员变量信息 name age for(int i = 0;i<=arr.length-1;i++){ People p = arr[i]; System.out.println(p.getName()+","+p.getAge()); } }
备注:对象数组,长度是固定的,如果在程序中需要对对象进行增加或者删除等数量操作时,非常不方便。
java又提供了一个容器java.util.ArrayList集合类。这个类可以让我们的存储和操作对象更方便。
什么是ArrayList类
java.util.ArrayList类是一个【大小可变的数组】的实现,里面存储的数据称为元素,该类提供了一些常用的api方法来操作内部存储的元素。
ArrayList类的使用步骤
-
查看类
java.util.ArrayList
: 该类也是需要import导入后才能使用 , 表示一种指定的数据类型,叫做【泛型】。E,取自Elemen(元素)的首字母。在程序中遇到【E】的地方,我们需要使用一种【引用的数据类型】将其替换掉即可。表示我们将存储那种数据类型的元素 例如:
ArrayList<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 e):用指定的元素替代此列表中指定位置上的元素。
public int size():返回此列表中的元素个数。
遍历【重点】
使用for循环,定义的循环变量就是ArrayList容器中的索引,循环的次数就是容器的元素个数size()
// 需求:往ArrayList容器当中存入5个学生对象,查找小丽的这位同学,如果查到就把小丽的信息输出,把小丽删除
// 学生对象包含姓名、年龄、学号。
如何存储基本数据类型值
ArrayList类对象不能存储基本数据类型,只能存储引用类型的数据,类似
基本类型 | 基本类型包装类 |
---|---|
byte | Byte |
short | Short |
int | Integer |
long | Long |
float | Float |
double | Double |
char | Character 【重点】 |
boolean | Boolean |
备注:我们需要对int和char进行特殊记忆,其他类型只需要记住首字母大写即可。
练习:存储基本数据类型
// 需求1: 存入5个人的考试成绩到ArrayList容器中,如果成绩低于60,就额外奖励4000行代码抄写。
// 需求2: 存入5个人的身高到ArrayList容器中,如果身高大于1.80,就踢出去。
String类
String类的概述
概述:
java.lang.String类代表字符串,java程序中的所有的字符串文字,如“abc”都可以看做是String类的实例。
程序当中的所有双引号字符串,都是String类的对象。没有new ,也是对象
字符串的特点
-
字符串的内容永远不可改变。【重点】
-
正是因为字符串的内容永远不可改变,所以字符串是可以共享使用的。
-
字符串效果上相当于是char[]字符数组,但是底层原理是byte[]字节数组。
// 第二点 String str1 = "abc";// 存放在字符串常量池 String str2 = "abc"; // 内存中“abc”,“abc”对象会被创建出来,而且“abc”对象只会被创建一次,内存当中只有一个“abc”对象被创建 //此时str1和str2可以共享同一个“abc”对象
备注:JDK1.7之后的JVM将【运行时常量池】从方法区移除了,在Java 堆(heap)中开辟空间用来存储运行时常量池。
JDK1.8开始,取消了Java方法区(method area),取而代之的是元空间(metaspace)
JDK1.8中字符串常量池和运行时常量池逻辑上属于方法区,实际上存储在堆内存当中。
static关键字
public class Student{
}