Java-“基本数据”类型和“类”类型的转换
2021-05-19 本文已影响0人
a半亩方塘
1. 知识点
1.1 基本数据类型与包装类(Wrapper)
基本数据类型与包装类(Wrapper)1.2 不同类型之间的转换
- 基本数据类型<--->包装类:JDK5.0以后支持自动装箱和拆箱,就不用自己特意转啦
- 基本数据类型/包装类--->Object:int类型自动装箱后为Interger对象,根据多态性可直接传参
- Object--->基本数据类型/包装类:int i=(Integer)obj;
1.3 自动装箱与拆箱
JDK5.0新特性:自动装箱和拆箱
自动装箱:(基本类型转为包装类可以不需要调用包装类的构造器)
int num = 10;
Integer in1 = num;
自动拆箱:(包装类转换为基本数据类型可以不需要调用包装类的xxxValue()方法)
Integer in1 = 100;
int num = in1;
2. 练习题目:
利用Vector代替数组处理:从键盘读入学生成绩(以负数代表输入结束),找出最高分,并输出学生成绩等级。
要求:若与最高分相差10分内,A等;20分内,B等;30分内,C等;其它,D等。
提示:数组一旦创建,长度就固定不变,所以在创建数组前就需要知道它的长度。而向量类Vector可以根据需要动态伸缩。
3. 代码实现
import java.util.Scanner;
import java.util.Vector;
public class ScoreTest {
public static void main(String[] args){
//1.从键盘输入学生成绩
Scanner scanner = new Scanner(System.in);
//2.创建Vector对象来处理数据
Vector v = new Vector();
//3.收集学生成绩
for(;;){
System.out.println("请输入学生成绩(负数结束输入):");
int score = scanner.nextInt();
if(score>=0){
v.addElement(score); //本应该接收Object类型,现在参数直接传了score
}else {
break;
}
}
//4.遍历成绩,找出最大分数
int maxScore = 0;
for(int i=0; i<v.size();i++){
if((Integer) v.elementAt(i) > maxScore){
maxScore = (Integer) v.elementAt(i); //要把Object类型转换成基本数据类型才可以比较大小
}
}
//5.遍历成绩,确定等级
char level;
for (int i=0; i<v.size();i++){
if(maxScore-(Integer) v.elementAt(i)<=10){
level = 'A';
}else if(maxScore-(Integer) v.elementAt(i)<=20){
level = 'B';
}else if(maxScore-(Integer) v.elementAt(i)<=30){
level = 'C';
}else {
level = 'D';
}
System.out.println("学生" + (i+1) + "成绩是:" + v.elementAt(i) + ", 等级是:" + level);
}
}
}