javaSE_day11
1. Math类
final修饰
构造方法是私有的
方法由static修饰
1.1 常用方法
练习:猜数游戏
//练习:随机数int , 猜数游戏
public class Demo {
public static void test4() {
Scanner scanner = new Scanner(System.in);
Random random = new Random();
int x = random.nextInt(10)+1;
while(true){
System.out.println("input num:");
int num = scanner.nextInt();
if (num<x) {
System.out.println("猜小了");
System.out.println("请继续猜:");
}else if(num>x) {
System.out.println("猜大了");
System.out.println("请继续猜:");
}else if(num == x) {
System.out.println("猜对了");
break;
}
}
}
public static void main(String[] args) {
test4();
}
}
2. 和日期相关的类
2.1 Date类
- SimpleDateFormat:
- format() : date -> 字符串
- parse() : 字符串 -> date
2.2 Calendar类
- Calendar是抽象类
- 由子类创建对象 Calendar.getInstance()
- getTime():Date
2.3 LocalTime,LocalDate,LocalDateTime类
- 由final修饰,构造方法创建对象
- LocalTime.now()
3. 异常类
3.1 继承关系
父类:Throwable
子类:
- Error: 通过代码不能处理的。 xxxError
- Exception: 通过代码能处理的错误。 xxxException
- RuntimeException:运行时异常。
- 整数/0异常 (ArithmeticException)
- 数组越界异常(StringIndexOfBoundsException)
- 字符串索引越界
- 类型强制转换异常
- 空指针异常。
- 编译时异常:
- IOException
- FileNotFoundException
- InterruptedException
- RuntimeException:运行时异常。
eg:
3.2 处理异常
- 运行时异常不强制处理,如果代码写的严谨,可以避免运行时异常的产生
- 编译时异常必须处理
3.3 异常处理的两种方式
- (1)throws抛出异常(声明异常)
不处理异常,是半成品的异常处理 - (2)try-catch块捕获异常
异常代码块: - 在日志文件中保存堆栈信息
- 对于外行,翻译异常信息
- 检查代码:直接打印堆栈信息
3.4 异常块的正确使用语法
- try-catch
- try-catch-finally
- try-catch-catch-…-finally
- try-finally 语法正确,但不能捕获异常
- try-catch可以嵌套使用try-catch块
public static void test8() {//可以嵌套try
try {
try {
}finally {
}
} catch (Exception e) {
}
}
3.5 执行过程
- 如果try中有异常,从异常语句开始不再执行后边的语句,跳到catch执行。
- 不管有无异常,finally块都会执行
3.6 自定义异常类
-
标识异常类:继承现有的异常类
-
异常信息:super(异常信息) //调用父类带参的构造方法
-
使用格式:if() throw new 异常类()
3.7 方法重写异常(编译时异常)
子类方法重写父类的方法的异常规则:
子类异常要<=父类异常(指编译时异常,和运行时异常没有关系)
<= 指的是:个数、继承关系
3.8 throw 和 throws 的区别
throw | throws |
---|---|
抛出异常 | 声明异常 |
在方法内 | 方法声明 |
后面跟着异常类的对象 | 后面跟着异常类的类型 |
只能有一个异常类的对象 | 多个异常类型,用“,”隔开 |