一、枚举:是由一组固定的常量组成的类型
二、使用枚举的意义:
1、类型安全
2、易于输入
3、代码清晰
三、包装类
1、包装类把基本类型数据转换为对象
每个基本类型在java.lang包中都有一个相应的包装类
2、包装类的作用:
A、提供了一系列实用的方法
B、集合不允许存放基本数据类型数据,存放数字时,要用包装类型
3、八大基本数据类型对应的包装类
int:Integer 整型
byte:Byte 字节型
long:Long 长整型
float:Float 浮点型
short:Short 短整型
double:Double 浮点型
boolean:Boolean 布尔型
char:Character 字符合
四、包装类的构造方法
1、所有包装类都可将与之对应的基本数据类型作为参数,来构造它们的实例
如:Integer i = new Integer(1);
2、除Character类外,其它包装类可将一个字符串作为参数构造它们的实例
如:Integer i = new Integer("123");
PS:1、Boolean类构造方法参数为String类型时,若该字符串内容为true(不考虑大小写),则该Boolean对象表示true,否则表示false
2、当Number包装类构造方法参数为String类型时,字符串不能为null,且该字符串必须可解析为相应的基本数据类型的数据,否编译通过,运行时 NumberFormatException异常
五、包装类的常用方法
1、装箱:基本类型转换为包装类的对象
方法一:包装类的构造方法
方法二:使用valueoff()方法
2、拆箱:包装类对象转换为基本类型的值
方法一:使用XXXValue()方法;
方法二:使用parseXXX()方法
3、toString():以字符串形式返回包装对象表示的基本类型数据(基本类型->字符串)
4、包装类的特点
1、JDK1.5后,允许基本数据类型和包装类型进行混合数学运算
2、包装类并不是用来取代基本数据类型的,在基本数据类型需要用对象表示时使用
六、Math类
作业:
1、随机9个手机号码,第一位为1,第二位不为0、1、2
package com.java_zuoye; /** * 随机9个手机号码,第一位为1,第二位不为0、1、2 */ import java.util.Random; public class OneJob { public String haoma() { Random rand = new Random(); String phone = null; for(int i=1;i<12;i++) { if(i==1) { phone = "1"; }else if(i==2) { phone = phone + (rand.nextInt(7)+3); }else { phone = phone + rand.nextInt(10); } } return phone; } public static void main(String[] args) { OneJob oj = new OneJob(); for(int i = 1;i<10;i++) { System.out.println("第"+i+"个手机号码是:"+oj.haoma()); } /* Random rand = new Random(); for(int i = 1;i<10;i++) { int num1 = 1; int num2 = rand.nextInt(7)+3; int num3 = rand.nextInt(10); int num4 = rand.nextInt(10); int num5 = rand.nextInt(10); int num6 = rand.nextInt(10); int num7 = rand.nextInt(10); int num8 = rand.nextInt(10); int num9 = rand.nextInt(10); int num10 = rand.nextInt(10); int num11 = rand.nextInt(10); System.out.println("第"+i+"个手机号码是:"+num1+num2+num3+num4+num5+num6+num7+num8+num9+num10+num11); }*/ } }
结果示例:
2、随机一个6位的验证码,要求要有大小写字母与数字
package com.java_zuoye; /** * 随机6位验证码,要求包含大小写字母与数字 */ import java.util.Random; public class TwoJob { public static void main(String[] args) { Random rand = new Random(); int b = 0;//判断是否有数字出现 int c = 0;//判断是否有大写字母出现 int d = 0;//判断是否有小写字母出现 String k;//记录验证码 char code; do { int a = 0; //初始化验证码字符串 k = ""; do { int num = rand.nextInt(123); if(num>=48&&num<=57) { code = (char)num; k += code; b++; // System.out.print(code); a++; }else if(num>=65&&num<=90) { code = (char)num; k += code; c++; // System.out.print(code); a++; }else if(num>=97&&num<=122) { code = (char)num; k += code; d++; // System.out.print(code); a++; } }while(a<6); //若随机后没有包含大小写与数字,则继续随机 }while(!(b>=1&&c>=1&&d>=1)); System.out.println(k); } }
结果示例: