第十九课:实用类
一、能够定义并使用枚举类型
•基本数据类型:byte short int long float double boolean char
•引用数据类型:数组、类(String)、接口、枚举
switch(表达式) 支持int(byte short) String Enum枚举
案例演示:
/**
* 星期枚举类
* 枚举类型其实就是个已经将Java中被定义了父类的普通Class而已
* 它无法继承其它类,但是可以实现接口
* @author Raymond
* 2019年3月1日 下午5:45
*/
public enum DayOfWeek{
MONDAY,TUESDAY,WEDNESDAY,THURSDAY,FRIDAY,SATURDAY,SUNDAY;
/*private String name;
public void print() {
}*/
}
public class Test1{
public static void main(String[] args){
/*
* 需求:当今天是周一到周五时,我们要好好学习!当今天是周六到周日时,我们要好好休息!
*/
// 定义当前的星期
DayOfWeek dayofWeek = DayofWeek.MONDAY;
// 判断当前是要进行什么活动
switch(dayofWeek){
case MONDAY:
case TUESDAY:
case WEDNESDAY:
case THURSDAY:
case FRIDAY:
System.out.println(“好好学习!”);
break;
case SATURDAY:
case SUNDAY:
System.out.println(“好好休息!”);
break;
default:
break;
}
}
}
二、掌握包装类和自动拆箱 装箱
•包装类:引用数据类型
•基本数据类型 -> 引用数据类型
byte -> Byte
short -> Short
•int -> Integer
long -> Long
float -> Float
double -> Double
boolean -> Boolean
*char -> Character
•主要记住两个方法:
⑴字符串 -> 基本/包装
Integer parseInt(String str);
⑵包装/基本 -> 字符串
toString();
•Java中提供了一整套 自动 拆箱和装箱操作
⑴拆箱:将包装类型转换为基本类型 Interger i = new Integer(10); int a =i;
⑵装箱:将基本类型转换为包装类型 Integer i = 10;
•// 如果你需要直接拿一个数据去调用方法 可以直接用包装类型存储
Integer i =10;
i.xxxx
// 如果你需要将一个包装类型传入到一个需要对应基本类型的方法中 不需要任何考虑 是可以直接传入的
print(i);
public void print(int xxx){
}
•提醒:未来我们有些值需要定义为包装类型!因为它可以接受Null值
Integer i =null; (对的)
int a = null; // (X)
三、会使用Math类型进行数学运算
math.random(); 生成[0,1.0]之间的小数
•生成随机整数[min,max] : (int)(Math.random()*(max-min))+min
// 求绝对值
int abs = Math.abs(-1);
System.out.println(abs);
// 求两个数的最大值max() min()
int max = Math.max(10,20);
System.out.println(max);
// 求几的几次方
double pow = Math.Pow(3,24);
System.out.println(pow);
// 求平方根
double sqrt = Math,sqrt(16);
System.out.println(sqrt);
// 四舍五入
long round = Math.round(21.5);
System.out.println(round);
long round2 = Math.round(21.3);
System.out.println(round2);
// 向下取整 floor地板
double floor = Math.floor(21.6);
System.out.println(floor);
// ceil 天花板
double ceil = Math.ceil(21.2);
System.out.println(ceil);
四、会使用Random类获取随机数
Random random = new Random();
random nextInt(int bound); //[0,bound]
五、会使用String类操作字符串(重要)
1.常用的API
⑴int length(); 获取字符串长度
⑵boolean equals(String str); 判断字符串是否相同
⑶boolean equalsIgnoreCase(String str); 不区分大小写进行相同比较
⑷String toUpperCase(); 转换为大写
⑸String toLowerCase(); 转换为小写
⑹String concat(String str); 拼接字符串
⑺int indexOf(String str); 获取从左到右中该字符/字符串第一次出现的位置
⑻int lastIndexOf(String str); 同上 反之
⑼String substring(int beginIndex); 从指定位置开始 截取到末尾
⑽String substring(int beginIndex,int endIndex); 从指定位置开始,指定位置结束
[beginIndex,endIndex]
⑾String trim(); 去除两端空格
⑿char charAt(int index); 获取指定索引的字符
⒀String[] split(String regex); 根据指定的正则表达式 截取成字符串数组
⒁char[] toCharArray(); 转换为字符数组
⒂boolean startsWith(String str); 判断是否以指定前缀开头
⒃boolean endsWith(String str); 同上
⒄String replace(String old,String new)替换字符串;
⒅boolean contains(String str); 判断是否包含指定字符串
六、会使用StringBuffer拼接字符串
•StringBuffer和String的区别:
⑴String是不可变字符串,在内容和长度发生改变时,将会产生新的字符串,所以在进
行字符串拼接是,容易引发性能损耗
⑵StringBuffer(StringBulider)是可变字符串,它内置了字符串缓冲区,在这一个对象
里可以实现字符串的追加等操作,如果涉及到比较高频的字符串拼接推荐采用它
•构造:
StringBuffer(String str);
StringBuffer();
•常用方法:
append(任何类型);
insert(int index,任何类型值);
七、会使用Date类和Calendar类
•java.util包 因为后面经常容易混淆另一个包中的java.sql
•Date它的好多方法在JDK1.1时代被废弃 转换为使用Calendar类中的方法
•new Date() 它会自动获取当前的系统时间
•Calendar:
○伪构造:
static Calendar getInstance();
○常用方法:
get(int 时间组成的代号); 这些代号可以用常量来表示 例如:Calendar.YEAR表
示年
八、会使用SimpleDateFormat解析/转换时间
java.text.SimpleDateFormat
•构造:
SimpleDateFormat(String pattern); 使用y m d h/H m s等来指定格式规则
例如:new SimpleDateFormat(”yyyy-MM-dd HH:mm:ss”)
•常用方法:
Date parse(String dateStr); 将符合格式的时间字符串转换为时间类型
String format(Date date); 将时间转换为指定格式的字符串