Java 练习(包装类 Wrapper )

练习一

InterviewTest.java

package com.klvchen.java2;

import org.junit.jupiter.api.Test;

public class InterviewTest {
	
	@Test
	public void test1() {
		Object o1 = true ? new Integer(1): new Double(2.0);
		System.out.println(o1); //1.0
	}
	
	@Test
	public void test2() {
		Object o2;
		if(true) {
			o2 = new Integer(1);
		} else {
			o2 = new Double(2.0);
		}
		System.out.println(o2); //1
	}
	
	@Test
	public void test3() {
		Integer i = new Integer(1);
		Integer j = new Integer(1);
		System.out.println(i == j); //false
		
		//Integer内部定义了IntegerCache结构,IntegerCache中定义了Integer[],
		//保存了从-128~127范围的整数。如果我们使用自动装箱的方式,给Integer赋值的范围
		//在-128~127范围内时,可以直接使用数组中的元素,不用再去new了。目的:提高效率
		Integer m = 1;
		Integer n = 1;
		System.out.println(m == n); //true
		
		Integer x = 128; //相当于new了一个Integer对象
		Integer y = 128; //相当于new了一个Integer对象
		System.out.println(x == y); //false		
	}

}

练习二

ScoreTest.java

package com.klvchen.exer4;

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

/*
 * 利用vector 替数组处理。从键盘读入学生成绩(以负数代表输入结束),找出最高分,并输出学生成绩等级
 * 提示:数组一旦创建,长度就固定不变,所以在创建数组前就需要知道它的长度。
 * 而向量类java.util.Vector可以根据需要动态伸缩。
 * 
 * 创建Vector对象: Vector v=new Vector();
 * 给向量添加元素: v.addElement(object obj); //obj必须是对象
 * 取出向量中的元素: Object obj=v.elementAt(0);
 * 注意第一个元素的下标是日,返回值是0bject类型的。
 * 计算向量的长度:v.size();
 * 若与最高分相差10分内: A等; 20分内: B等; 30分内: C等; 其它:D等
 * 
 */

public class ScoreTest {
	public static void main(String[] args) {
		//1. 实例化Scanner. 用于从键盘获取学生成绩
		Scanner scan = new Scanner(System.in);
		
		//2. 创建 Vector对象:Vector v = new Vector();相当于原来的数组
		Vector v = new Vector();
		
		//3. 通过for(;;)或while(true)方式,给 Vector 中添加数组
		int maxScore = 0;
		for(;;) {
			System.out.println("请输入学生成绩(以负数代表输入结束)");
			int score = scan.nextInt();
			//3.2 当输入是负数时,跳出循环
			if(score < 0) {
				break;
			}
			//3.1 添加操作: v.addElement(Object obj)
			//jdk5.0之前:
//			Integer inScore = new Integer(score);
//			v.addElement(inScore);//多态
			//jdk5.0之后:
			v.addElement(score); //自动装箱
			//4. 获取学生成绩的最大值
			if(maxScore < score) {
				maxScore = score;
			}
		}
		
		//5. 遍历 Vector,得到每个学生的成绩,并与最大成绩比较,得到每个学生的等级。
		char level;
		for(int i = 0; i< v.size(); i++) {
			Object obj = v.elementAt(i);
			//jdk 5.0 之前
//			Integer inScore = (Integer)obj;
//			int score = inScore.intValue();
			//jdk 5.0 以后
			int score = (int)obj;
			
			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("student-" + i + " score is " + score + ", level is " + level);
		}		
	}

}

运行结果:

posted @ 2021-03-01 14:45  klvchen  阅读(86)  评论(0编辑  收藏  举报