2019-2-26
一、枚举:是由一组固定的常量组成的类型
二、使用枚举的意义:
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);
}
}
结果示例:


浙公网安备 33010602011771号