一、枚举
1.枚举是指由一组固定的常量组成的类型。使用关键字enum定义。
枚举其实是一种类型, 是java.lang.Enum类的子类,继承了于Enum类。
2.定义枚举的语法:
访问修饰符 enum 类名{
Male,Female
}
//enum是定义枚举类的关键字,可以定义常量,还可以定义其他成员,但是常量后面必须使用分号(;)结束
3.枚举的使用
在java中,通常使用枚举表示一组个数有限的值,用于实现对输入的值进行约束检查,保证数据的安全性!
代码如下:
//定义枚举类
public enum Stage {
L1,L2,L3 //定义的常量,表示阶段。
}
//定义的实现类
public class Target {
//显示学习目标方法
public void showInfo(Stage stage) { //传入的是枚举类型的对象
switch(stage) {
case L1:
System.out.println("java初级程序员");
break;
case L2:
System.out.println("java高级程序员");
break;
case L3:
System.out.println("java架构师");
break;
}
}
}
//测试类
public class Test {
public static void main(String[] args) {
Target t=new Target(); //实例化对象
t.showInfo(Stage.L3); //调用方法,传参
}
}
4.使用枚举的好处
- 枚举可以使代码更容易维护,确保数据的安全性,也就是必须要指定合法的值。
- 枚举易于编程时的输入,方便使用,只需输入枚举名点出来
- 枚举是代码更清晰,允许用描述性的名称来表示数据,使用是方便直观。
二、包装类
1.什么是包装类?
java语言是面向对象的,但是java中的基本数据类型不是面型对象的,这使得在开发中很多的不便,也正是这个原因,在设计类的时候为每个基本数据类型设计了一个对应的类,就是包装类!
2.包装类都是位于java.lang包中,下面是包装类和基本数据类型对应的关系。
基本数据类型 | 包装类 |
byte | Byte |
boolean | Boolean |
short | Short |
char | Character |
int | Integer |
long | Long |
float | Float |
double | Double |
2.包装类的作用:
- 包装类作用和基本数据类型对应的类存在,方便对象的操作
- 包装类包含每种数据类型的相关属性,最大值,最小值等,以及相关的操作方法。
3.基本数据类型转换成包装类
(一)使用包装类构造方法的形式
Inteage v=new Inteage(22);
或者 Inteage v2=new Inteage("23");
注意:Inteage包装类里面的数据必须要和int类型的数据对应,不然在编译时会发生异常。
Character类型的包装类对象。只能以:
Character ch=new Character('a'); 这种形式创建!!!
(二)使用包装类的valueOf()方法
包装类中一般包含静态的重载valueOf()方法,它可以接受基本数据类型和字符串作为参数并返回包装类的对象。
Integer va=Integer.valueOf("21");
注意:Character 类的valueOf()方法只有一种形式。就是valueOf(char c),它返回的是指定char值的Character对象。
3.包装类转换成基本数据类型
Inteager id=new Inteager(34);
int id2=id.intValue(); //通过调用方法进行类型转换
Boolean b1=Boolena.valueOf(true);
boolean b2=b1.booleanValue();
4.装箱和拆箱
在javaSE5.0版本以后,就不需要程序员编码实现基本数据类型和包装类之间的类型转换,编译器会进行自动完成。
如下代码:
Integer it=78; //基本数据类型转换成包装类,也就是装箱
int va=it; //包装类转换成基本数据类型,拆箱
注意:在java中,虽然包装类和基本数据类型可以自动类型转换,但是在使用时还是要根据实际情况去使用。
包装类对象只有在基本数据类型需要用对象时才使用。
三、Math类
java中,Math类提供了一些基本数学运算和几何运算的方法。
- static double abs(double a):返回double 值的绝对值,如 Math.abs(-49),返回的是49.
- static double max(double a,double b):返回的是两个double值中最大的那个!
- static double random():返回的是一个随机的double值,这个值大于等于0.0并且小于1.0.
产生随机数的方法:
//产生随机数0~9中任意整数的方法
int random=(int)(Math.random()*10);
//注意该返回产生的是0.1~0.9之间的随机数,乘10那么就可以产生0~9之间的随机数,但是必须要进行强制类型转换。
int max=10000;
int min=1000;
//可以获得min~max之间的数,但是不包括max,也就是1000~9999之间的随机数
int num=(int)(Math.random()*(max-min))+min;