目录
一、枚举
枚举指由一组固定常量组成的类型
例:枚举类
public enum Gender {
男,女,东方不败
}
测试类中:
//创建Student类对象
Student student = new Student();
//给student对象属性赋值
// student.sex = "男";
//性别定义的是枚举类型Gender,赋值为String类型,会报错,因为类型不匹配
// student.sex=Gender.男;
// student.sex=Gender.女;
student.sex=Gender.东方不败;
System.out.println("性别:"+student.sex);
二、包装类
1、8大基本数据类型
所有包装类都可将与之对应的基本数据类型作为参数,来构造它们的实例
byte num1 = 100;
Byte byte1 = new Byte(num1);
short num2 = 200;
Short short1 = new Short(num2);
int num3 =300;
Integer integer1 = new Integer(num3);
long num4 = 400L;
Long long1 = new Long(num4);
float num5 = 100.99F;
Float float1 = new Float(num5);
double num6 = 99.99;
Double double1 = new Double(num6);
boolean num7 = false;
Boolean boolean1 = new Boolean(num7);
char num8 = 'q';
Character character1 = new Character(num8);
除Character类外,其他包装类可将一个字符串作为参数构造它们的实例,注意:对于Number类,字符串必须是能够解析成数字的字符串
Byte byte2 = new Byte("123");
System.out.println(byte2);
// Byte byte3 = new Byte("abc");//NumberFormatException 数字格式化异常
// System.out.println(byte3);
使用字符串作为参数来创造Boolean类对象的时候,字符串参数是true(不管大小写),得到的结果就是true,其余情况都是false
Boolean boolean2 = new Boolean("true");
System.out.println("boolean2:"+boolean2);//true
Boolean boolean3 = new Boolean("tRue");
System.out.println("boolean3:"+boolean3);//true
Boolean boolean4 = new Boolean("false");
System.out.println("boolean4:"+boolean4);//false
Boolean boolean5 = new Boolean("dfgdg");
System.out.println("boolean5:"+boolean5);//false
包装类中有两个静态常量值可以输出基本数据类型的存储范围
System.out.println("byte类型数据范围:"+Byte.MIN_VALUE+"~"+Byte.MAX_VALUE);
System.out.println("short类型数据范围:"+ Short.MIN_VALUE+"~"+Short.MAX_VALUE);
System.out.println("int类型数据范围:"+Integer.MIN_VALUE+"~"+Integer.MAX_VALUE);
System.out.println("long类型数据范围:"+Long.MIN_VALUE+"~"+Long.MAX_VALUE);
System.out.println("float类型数据范围:"+Float.MIN_VALUE+"~"+Float.MAX_VALUE);
System.out.println("double类型数据范围:"+Double.MIN_VALUE+"~"+Double.MAX_VALUE);
System.out.println("char类型数据围:"+Character.MIN_VALUE+"~"+Character.MAX_VALUE);
2、包装类类型转换
// XXXValue():包装类转换成基本类型
Integer integer1 = new Integer("123");
int num1 = integer1.intValue();
System.out.println(num1);
// toString():以字符串形式返回包装对象表示的基本类型数据(基本类型->字符串)
int num2 = 200;
String string1 = Integer.toString(num2);
System.out.println(string1);
// parseXXX():把字符串转换为相应的基本数据类型数据(Character除外)(字符串->基本类型)
int num3 = Integer.parseInt("999");
System.out.println(num3);
// 所有包装类都有如下方法(基本类型->包装类):public static Type valueOf(type value)
int num4 = 400;
Integer integer2 = Integer.valueOf(num4);
System.out.println(integer2);
// 除Character类外,其他包装类都有如下方法(字符串->包装类):public static Type valueOf(String s)
Integer integer3 = Integer.valueOf("888");
System.out.println(integer3);
/*
* 刚才学习了包装类中的很多方法,可以实现基本数据类型和包装类类型相互转换,也可以实现字符串类型和包装类类型、字符串和基本数据类型的之间的相互转换
* 但是,方法比较多,我们容易记岔了,多以,有新的技术装箱和拆箱来实现基本数据类型和包装类型的转换
* 装箱:将基本数据类型直接赋值给包装类对象
* 拆箱:将包装类对象直接赋值给基本数据类型
* */
1>装箱
装箱:将基本数据类型直接赋值给包装类对象
int num1 =100;
Integer integer1=num1;
System.out.println(integer1);
2>拆箱
拆箱:将包装类对象直接赋值给基本数据类型
Long num2 = new Long("999");
long num3 =num2;
System.out.println(num3);
运算使用:
Integer integer3 = new Integer("333");
int num4 = 222;
int sum1 =integer3+num4;
Integer sum2 =integer3+num4;
System.out.println(sum1);
System.out.println(sum2);
三、Math类
Math类中的PI值
System.out.println("圆周率:"+Math.PI);
获取一个数的绝对值(正数的绝对值是它本身,负数的绝对值是它的相反数)
System.out.println(Math.abs(-20));
1、与近似数相关的方法
上舍入:static double ceil(double a):返回最小的(最接近负无穷大)double 值,该值大于等于参数,并等于某个整数。
System.out.println(Math.ceil(3.4));//4.0
System.out.println(Math.ceil(3.5));//4.0
System.out.println(Math.ceil(3.6));//4.0
System.out.println(Math.ceil(3.9));//4.0
System.out.println(Math.ceil(4.0));//4.0
下舍入:static double floor(double a):返回最大的(最接近正无穷大)double 值,该值小于等于参数,并等于某个整数。
System.out.println(Math.floor(5.9));//5.0
System.out.println(Math.floor(5.6));//5.0
System.out.println(Math.floor(5.5));//5.0
System.out.println(Math.floor(5.1));//5.0
System.out.println(Math.floor(5.0));//5.0
四舍五入:static int round(float a) :返回最接近参数的 int。
System.out.println(Math.round(6.0));//6
System.out.println(Math.round(6.1));//6
System.out.println(Math.round(6.4));//6
System.out.println(Math.round(6.5));//7
System.out.println(Math.round(6.6));//7
System.out.println(Math.round(6.9));//7
2、最大、最小值
System.out.println("最大值:"+Math.max(1000,200));
System.out.println("最小值:"+Math.min(1000,200));
3、随机数、幂函数、平方根
static double random() :返回带正号的 double 值,该值大于等于 0.0 且小于 1.0。
System.out.println("随机数:"+Math.random());
//经过层层变形后,得出一个结论:
//随机获取一个[num1,num2)(num2>num1)之间的int类型的数:
//int num = (int)(Math.random()*(num2-num1)+num1);
static double pow(double a, double b):返回第一个参数的第二个参数次幂的值。
System.out.println("2的10次方等于:"+Math.pow(2,10));
static double sqrt(double a):返回正确舍入的 double 值的正平方根。
System.out.println("81的算术平方根:"+Math.sqrt(81));
四、Random类
使用:
for(int i =1;i<=20;i++){
int num1 =random.nextInt();
System.out.println("int类型随机数:"+num1);
}
System.out.println("--------------------");
for(int i =1;i<=10;i++){
System.out.println("boolean类型的随机数:"+random.nextBoolean());
}
System.out.println("--------------------");
for(int i =1;i<=20;i++){
System.out.println("int类型的随机数:"+random.nextInt(10));
}
用同一个种子值来初始化两个Random 对象,然后用每个对象调用相同的方法,得到的随机数也是相同的。
Random random1 = new Random(100);
Random random2 = new Random(100);
int num1 =random1.nextInt();
int num2 =random2.nextInt();
System.out.println("num1:"+num1);
System.out.println("num2:"+num2);