文章目录
关于包装类
包装类是针对于8中基本类型的一种相应的引用类型。Java作为一种面向对象的语言,基本数据类型自然也要有自己相应的一种包装类,方便某些对基本数据的引用得以成功。一、经典题目
Object o1 = true ? new Integer(1) : new Double(2.0);
System.out.println(o1);
二、相互之间的转换
1.基本数据类性---->包装类
jdk 1.5之前
@Test
public void testA() {
int x=1;
Integer int1 = new Integer(x);
System.out.println(int1);
double y=3.2;
Double dou = new Double(y);
System.out.println(dou);
boolean bool = true;
Boolean boolean1 = new Boolean(bool);
System.out.println(boolean1);
}
2.包装类---->基本数据类性
@Test
public void testB() {
Integer int1 = new Integer(1);
System.out.println(int1.intValue());
Double dou = new Double(3.2);
System.out.println(dou.doubleValue());
Boolean boolean1 = new Boolean(true);
System.out.println(boolean1.booleanValue());
}
3.在jdk 1.5 以后有自动装箱和拆箱 方便很多
Integer int1 = 1;
System.out.println(int1);
三、基本数据类型和String类之间的转换
因为基本数据类型和包装类之间存在自动装箱和拆箱的特性,可以将它们看成一体。只讨论如下2种方法。
1.基本数据类型---->String类
1.String类的valueOf()方法,根据相对应的参数选择构造方法
2.强制类型转换 如 5+“”;
int a =10;
String a1 = new String();
System.out.println(a1.valueOf(a));
System.out.println(10+"");
2.String类---->基本数据类型
1.通过包装类的构造器实现
2. 通过包装类的parseXxx(String s)静态方法
int a =new Integer("10");
System.out.println(a);
Float b =Float.parseFloat("3.2");
System.out.println(b);
补充
String类也可以和包装类进行转换
Float f = new Float("32.1F");
包装类调用toString方法到String类
基于包装类的一个学生成绩显示程序
// 1.从键盘输入一个值
Scanner scanner = new Scanner(System.in);
// 2.创建Vector对象:Vector v=new Vector();
Vector v = new Vector();
// 3.输入数字
int grade;
int maxGrade=0;
for (;;) {
System.out.println("请输入成绩:(以负数代表输入结束)");
grade = scanner.nextInt();
if (grade<0) {
break;
}
if (grade>100) {
System.out.println("输入的成绩不合法,请重新输入!");
continue;
}
//自动装箱 grade是int,自动装箱成Integer的类
v.addElement(grade);
//获取最大值
if (grade>maxGrade) {
maxGrade=grade;
}
}
char level;
for (int i = 0; i < v.size(); i++) {
Object obj=v.elementAt(i);
Integer inGrade=(int)obj;
if (maxGrade-inGrade<=10) {
level= 'A';
}else if(maxGrade-inGrade<=20) {
level= 'B';
}else if(maxGrade-inGrade<=30) {
level= 'C';
}else {
level= 'D';
}
System.out.println("student "+i+" grade is "+inGrade+" level is"+level);
}
}