关于自动装箱自动拆箱的一个小练习

自动装箱自动拆箱概念
先看代码:
int num = 10;//自动装箱
Integer in = num;
int i = in;//自动拆箱
in是个对象,num、i是int型的变量,如果直接赋值按理说会报错,但是由于自动装箱和自动拆箱的存在,上述语句可执行。

简单来说,自动装箱就是基本数据类型到包装类的转换不再需要调用包装类的构造器。
同理我们可以知道,自动拆箱是自动装箱的逆过程,也就是说,我们也可以通过上述最后一条语句直接完成包装类到基本数据类型的转换。

package com.crz.java3;

import java.util.Scanner;
import java.util.Vector;


/*
 * 从键盘输入学生成绩,输出最高分以及学生成绩等级
 * 采用Vector代替数组实现
 * 
 * 练习一下自动装箱拆箱与包装类的使用以及实现
 */
public class VectorTest {

	public static void main(String[] args) {
		
	Scanner scan = new Scanner(System.in);
	
	Vector v = new Vector();
	
	int maxScore = 0 ;
	
	for(;;){
		
		System.out.println("输入学生成绩,输入-1结束程序");
		
		int score = scan.nextInt();//获取数据
		if (score < 0){
			break;
		}
		if (score > 100){
			System.out.println("输入非法,重新输入");
			continue;
		}
/*		
 *      Integer inScore = new Integer(score);
 *      // addElement()方法形参是对象,所以需要使用包装类
 *		v.addElement(inScore);// 添加数据
*/		
		v.addElement(score);
		/*
		 * 本条语句和上面注释掉的语句功能一样,
		 * 原因是自动装箱就没有必要自己进行包装类构造器的调用
		 * */
		if (maxScore < score){
			maxScore = score;
		}
	}
	
	char level ; //学生成绩等级
	for(int i = 0 ; i < v.size(); i++ ){
		
		Object obj = v.elementAt(i);//elementAt方法获取数值
		
		/*
		* Integer inScore1 = (Integer)obj;
		*
		* int score1 = inScore1.intValue();
		* // 将包装类转变为基本数据类型
		*/
		
		int score1 =(int)obj;//自动拆箱,与上面被注释掉的两行代码功能一致
		
		if (maxScore - score1 <= 10){
			level = 'A';
		}else if(maxScore - score1 <= 20){
			level = 'B';
		}else if(maxScore - score1 <= 30){
			level = 'C';
		}else {
			level = 'D';
		}
		int j = i+1;
		System.out.println("学生:" + j + "  成绩是"
		+ score1 + "等级是" + level);
	}	
  }	
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值