JavaSE入门级-第九课-工具包
前言
接受面向对象的思想,接受java的开源思想,java提供了大量的工具包,都是线程的,你只需要了解就可以用,实在没有或者不满意,我们可以创造或者重写
java.util.*
util 译为工具,java默认导入语言包,所以使用工具包的时候需要 import
l 常规 import
在类文件的头部 import 导入包,因为包名也是类名的一部分,不同的包表示不同的功能,类也不一样,所以要指明包,import 可以直接使用类
如果没有它就需要: java.util.Date 打全类名
l static import
静态导入,静态导入可以直接使用被导入类的静态成员,包括属性和方法
java.util.Scanner
一个简单的文本扫描器,可以使用正则表达式解析基本类型 和 字符串
l 允许用户进行输入
Scanner sc = new Scanner(System.in); // 扫描用户输入
l sc.next() 方法
获取用户输入,回车结束,可多个赋值
java.util.Date
jdk1.8以前日期类用来处理时间格式的唯一方式,配合SimpleDateFormat,表示特定的时间,或者格式化的时间,现在有很多的弃用方法
构造器部分
获取系统当前时间,欧洲风格格式
方法部分
从上图中可以看到这些方法都弃用了
java.util.Calendar
日历类,替代了日期中大多数的方法,能够获取格式化的时间,它以多个维度去定义时间:
MONTH: 从 0 到 11 表示一年的 1到12月
DAY_OF_WEEK:从1到7 表示 星期日到星期六,注意一周的第一天是星期日
构造器部分
Calendar 是一个抽象类,抽象类是不能直接调用构造器的
l 抽象类如何构造自己
首先需要一个子类去继承它,实现它的抽象方法部分,在通过向上转型获取对象
l 日期类构造对象
方法部分
常用方法,获取各个部分的时间
(注意:在jdk1.8之后提供了新的时间工具类,可以更方便的获取和操作事件)
Date 和 Calendar的转换
l Date 转 Calendar
l Calendar 转 Date
l String 转 Date (常用)
练习
l 打印今天的日历
l 按需求设计实现,用户输入日期,输出当月的日历
java.util.Random
伪随机数,获取的随机数更方便,单概率问题比较坑爹
构造器部分
无参构造器获取对象
方法部分
半开半闭区间
java.math.BigDecimal
任意精度带符号的十进制数,在金额中经常性使用
常用方法
l 创建一个数
l 运算方法
l 保留精度方法
使用 setScale(); 方法
参数1位保留位数,参数2位精度保留 策略
java.text.*
文本格式化工具包
l 数字格式化
l 自定义格式化
使用DecimalFormat,需要使用字符串模版去匹配
转换规则:
0:表示一位任意阿拉伯数字,如果不存在补0
#:表示一位任意阿拉伯数字,如果不存在不显示
. :表示小数点 或 金额分隔符
- :表示负号
, :表示分组分隔符
E:表示可续计数法中的位数和指数
%:放在数字的前缀后者后缀,表示百分比显示数字
java.math.BigInteger
如果需要比int范围更大的整数运算可以使用它
练习
l 输入你的生日,提示还有多少天,并且输出生日当天是星期几
l 实现一个java闹钟