包装类:八种基本数据类型对应着一个类,此类即为包装类,针对八种基本数据类型定义的相应的引用类型
注:boolean b ; system.out.println(b); //输出值为false
Boolean b; system.out.println(b); // 输出值为Null
当为boolean是,此时的b为一个基本数据类型,而当其定义为Boolean时即为一个类,返回的数值默认为空。
基本数据类型 | 包装类 |
boolean | Boolean |
byte | Byte |
short | Short |
int | Integer |
long | Long |
char | Character |
float | Float |
double | Double |
基本数据类型 包装类以及String类型之间的相互转换
1.基本数据类型转化为包装类时:只需要调用包装类的构造器
Integer i1 = new Integer(i);
System.out.println(i1.toString());
Float float1 = new Float(12.3F);
System.out.println(float1);
// //数值转换异常(此处将会抛出异常无法运行,此处运行会给出警告二无法向下进行)
// i1 = new Integer("12abc");
// System.out.println(i1);
boolean b1 = new Boolean(true);
System.out.println(b1);
//此处将不会抛出异常(boolean类型是不会出现上述的情况,比较特殊)
//对于boolean来讲,参数为“true”时为true,除此之外为false
boolean b2 = new Boolean("kjashfak");
System.out.println(b2);
2.包装类转化为基本数据类型:调用包装类的XxxValue()方法
int i2 = i1.intValue();
System.out.println(i2);
float f1 = float1.floatValue();
System.out.println(f1);
System.out.println(b1.booleanValue());
3.JDK5.0以后,自动拆箱和装箱(直接转化即可)
int i4 = 12;
Integer i3 = i4;//自动装箱
Boolean b = false;
int i5 = i3;//自动拆箱
4.基本数据类型+包装类----》String类:调用String类中的重载ValueOf(Xxx x)方法
int i1 = 10;
String str1 = i1 + ""; //"10"
System.out.println(str1);
Integer i2 = i1;
String str2 = String.valueOf(i1);
System.out.println(str2);
String str3 = String.valueOf(true);
System.out.println(str3);
5.String --->基本数据类型+包装类:调用包装类的Parsexxxx(字符串对象)
int i3 = Integer.parseInt(str2);
System.out.println("$" + i3);
boolean b3 = Boolean.parseBoolean(str3);
System.out.println("$" + b3);
包装类的练习
package day09;
import java.util.Scanner;
import java.util.Vector;
/*利用Vector代替数组处理:从键盘读入学生成绩(以负数代表输入结束),找出最高分,并输出学生成绩等级。
➢提示:数组一旦创建,长度就固定不变,所以在创建数组前就需要知道
它的长度。而向量类java.util.Vector可以根据需要动态伸缩。
➢创建Vector对象: Vector v=new Vector();
➢给向量添加元素: v.addElement(obi); //obj必须是对象
➢取出向量中的元素: 0bject obj=v.elementAt(0);
V注意第一个元素的下标是0,返回值是Object类型的。
➢计算向量的长度: v.size();
➢若与最高分相差10分内: A等; 20分内: B等;
30分内: C等;其它:D等I
*/
public class ExceWrapper {
@SuppressWarnings("resource")
public static void main(String[] args) {
//1.从键盘输入学生的成绩
Scanner scanner = new Scanner(System.in);
System.out.println("请输入学生的成绩:(当成绩为负值时结束)");
//2.将学生的成绩存入数组
Vector<Integer> v = new Vector<Integer>();
int maxScore = 0; //记录最高分
for(;;) {
int score = scanner.nextInt();
if(score < 0) {
break;
}
//3.获取成绩中的最高分
if(maxScore < score) {
maxScore = score;
}
//依次将学生成绩存入数组
v.addElement(score);
}
//4.将v.elementAt(i)依次获取填入v中的元素,同事判断一下各个分数的等级并输出
for (int i = 0; i < v.size(); i++) {
Integer score = (Integer)v.elementAt(i);
char level;
if(maxScore - score <= 10) {
level = 'A';
}else if (maxScore - score <= 20) {
level = 'B';
}else if (maxScore - score <= 30) {
level = 'C';
}else {
level = 'D';
}
System.out.println("学生的成绩为:" + score + ",等级为:" + level);
}
}
}