12/100发布文章 博文管理我的博客退出 Trash Temp java高级特性-集合框架(一) java高级特性-集合框架(一) java高级特性-集合框架(一) Java高级特性-实用类 Java面向对象三大特性之一 多态 抽象和接口 集合框架(二) 数组 循环结构 循环结构 循环结构 循环结构 循环结构 异常(exception) 添加摘要 ## 认识枚举
1.枚举概述
从Java SE 5.0 开始,Java程序设计与要引入了一种新的类型——枚举(Enum)。
枚举是由一组常量组成的类型,使用关键字enum定义。
定义枚举语法格式:
[Modifier] enum enumName{
enumContantName1[,enumConstatName2…[;]]
//[field, method]
}
其中:
Modifier是访问修饰符,如public等;
enum是关键字。
enumContsantName1[,enumColnstantName2…[;]]
表示枚举常量列表,枚举常量之间用逗号隔开。
//[field,method]表示其他成员,
包括构造方法,置于枚举常量的后面。
在枚举中,如果除了定义枚举常量,还定义了其他成员,则 枚举常量列表必须以分号(;)结尾。
例:
public enumGenders{//定义表示性别的枚举
Male,Female//两个枚举常量代表“男”和“女”
}
枚举其实就是一种类型,是Java.lang.Enum类的子类,继承了Enum类许多有用的方法。
枚举的使用
枚举是一种引用数据类型只不过这种数据类型只包含自定义的特定数据,它是一组有共同特性的数据的集合。比如,颜色也可以定义成枚举类型等等。
例:使用枚举实现输出每周日程信息。
定义一个枚举,其中包含7个枚举常量,代表一周中的7天,
1.定义枚举。
2.定义枚举变量
3.查看一周中每天的日程安排
public enum Week{
MON,TUE,WDD,THU,FRI,SAT,SUN
}
/**
*查看日程安排
*星期几
*/
publiic void do What(week day){
swithc(day)
case MON:
case TUE:
case WED:
case THU:
case FRI:
syso("工作日,努力写代码")
break;
case:SAT:
syso("星期六,休息!!")
break;
caseSUN:
syso("星期日,休息!打篮球!")
break;
default:
syso("地球上一个星期就7天");
}
}
public static main(String[] args){
WeekDemo wd = new WddkDemo();
wd.doWhat(Week.THU);
Week sat = Week.SAT;
wd.doWhat(sat);
}
}
掌握包装类的使用
1.基本数据类型没有函数,所以在当你需要对基本数据类型进行函数操作时,那么可以使用对应的包装类型。
2.集合泛型要求数据类型必须是包装类。
包装类都是在java.lang包中。
包装类和基本数据类型的对应关系
byte Byte
short Short
int Integer
long Long
float Float
double Double
boolean Boolean
char Character
包装类型的常用API
1.包装类的创建
// 给构造传输一个对应的基本数据类型值
Integer integer = new Integer(10);
// 给构造传输一个字符串类型的值 但是字符串中的内容必须能够转换为对应的包装类
Integer integer2 = new Integer("10");
System.out.prinbatln(integer);
System.out.println(integer2);
2.包装类型的转换(直接利用函数将基本数据类型值 转换为 包装类型)
// 可以通过静态函数 valueOf 将基本数据类型值转换为包装类型
Integer valueOf = Integer.valueOf(10);
Character valueOf2 = Character.valueOf('h');
3.包装类型转换->基本数据
Integer integer = Integer.valueOf(10);
// 利用xxxValue() 可以将包装类型转换为对应的基本数据类型
int intValue = integer.intValue();
4.字符串 -> 基本数据类型/包装类型 (我们在网络数据传输中,你的数据表层会转换为字符串,服务器在接收时就是一些字符串而已,但是你也知道字符串对于有些数据的操控并不是太方便,所以需要进行转换)
String value = "10";
// 可以将字符串转换为对应的基本数据类型
int parseInt = Integer.parseInt(value); // 【常用】
// 可以将字符串转换为对应的包装类型
Integer valueOf = Integer.valueOf(value); // 【常用】
5.基本/包装类型 -> 字符串
int a = 10;
// 凡是与字符串用+号拼接的都成为了字符串
String b = a +"";
// 将基本数据类型转换为字符串
Integer c = Integer.valueOf(a);
// 将包装类型转换为字符串
Integer c = Integer.valueOf(a);
String string2 = c.toString(); // 【常用】
拆箱和装箱
“拆箱”:包装类型转换为基本数据类型
“装箱”:基本数据类型转换为包装类型
Integer a = 10; // 装箱
int b = a; // 拆箱
包装类和基本数据类型的使用注意事项
1.包装类是引用数据类型 所以它可以接收null值,而基本数据类型不可以。
public class Student{
// private Integer id;
private Long id;
}
2.包装类型不是用来替代基本数据类型的,而是用来弥补基本数据类型无法使用函数的问题。
基本数据类型可以用==比较值内容。
包装类型默认值为null,而基本数据类型默认值为0 false等等。
3.但是在数据参数传递时,大多数情况基本和包装可以混淆使用。
Math和Random类
Math数学类
// 圆周率 自然底数
// 求两者中的最小值
int min = Math.min(10, 9);
System.out.println(min); // 9
int max = Math.max(10, 9);
System.out.println(max); // 10
// 求绝对值
int abs = Math.abs(-10);
System.out.println(abs); // 10
// 求幂运算 2的3次方
double pow = Math.pow(2, 3);
System.out.println(pow); // 8
// 四舍五入
long round = Math.round(10.5);
System.out.println(round); // 11
// 向上取整
double ceil = Math.ceil(10.2);
System.out.println(ceil); // 11
// 向下取整
double floor = Math.floor(10.8);
System.out.println(floor); // 10
// 开平方
double sqrt = Math.sqrt(4);
System.out.println(sqrt); // 2
// 求随机数 [0.0,1.0)
double random = Math.random();
// 求范围内的随机整数[min,max)
// (int)(Math.random() * (max - min)) + min