实用类(一)
一、掌握枚举的使用
引用数据类型:数组、 类(String)、接口、枚举
switch支持 int String 枚举(enum)
枚举:
public class Student{
private String name;
private int age;
private String gender;
public void setAge(int age){
if(age < 0 || age > 100){
syso("年龄非法!.....");
this.age = 60;
}else{
this.age = age;
}
}
public void setGender(String gender){
if(gender.equals("男") || gender.equals("女")){
this.gender = gender;
}else{
syso(xxxx);
}
}
}
public class Test{
main(){
Student stu = new Student();
// stu.age = -1000;(采用封装解决) 为了解决不合理赋值
stu.gender = "呵呵"; // 男 女 xx String类型 -> 性别类型呢?
}
}
二、掌握包装类的使用
1、集合泛型要求数据类型必须是包装类型。
包装类都是在java.lang包中
byte Byte
short Short
int Integer
long Long
float Float
double Double
boolean Boolean
char Character
2、基本数据类型没有函数,所以在当你需要对基本数据类进行函数操作时,那么可以使用对应的包装类型
包装类型的常用API
1、包装类型的创建(了解就可,在JDk10作废)
// 给构造传输一个对应的基本数据类型值
Integer integer = new Integer(10);
// 给构造传输一个字符串类型的值 但是字符串中的内容必须能够转换为对应的包装类
Integer integer2 = new Integer("10");
System.out.println(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 +"";
// 将基本数据类型转换为字符串
String string = Integer.toString(a);
// 将包装类型转换为字符串
Integer c = Integer.valueOf(a);
String string2 = c.toString(); // 【常用】
拆箱和装箱
**“拆箱”:**包装类型转换为基本数据类型
**“拆箱”:**基本数据类型转换为包装类型
在JDK5之后,java支持了自动拆箱和装箱。
Integer a = 10; // 装箱
int b = 10; // 拆箱
包装类和基本数据类型的使用注意事项
1、包装类是引用数据类型, 所以它可以接收null值,而基本数据类型不可以。
public class Student{
// private Integer id;
private Long id;
}
2、包装类型不是用来替代基本数据类型的,而是用来弥补基本数据类型无法使用函数的问题。
基本数据类型可以用==比较值内容。
包装类型默认值为null,而基本数据类型默认值为0/false等等
3、但是在数据参数传递时,大多数情况,基本和包装可以混淆使用
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
java.util.Random类
Random rand = new Random();// 创建一个Random对象
// 随机生成20个随机整数
for(int i = 0; i < 20;i ++){
//返回下一个伪随机,整型的
int num = rand.nextInt(10);
syso("第"+(i+1)+"个随机数是:"+num);
}
注意:
用同一个种子值来初始化两个Random对象,然后用每个对象调用相同的方法,得到的随机数也是相同的