Home

韧桂

思考,总结

包装类的使用

一、 针对八种基本定义相应的引用类型—包装类(封装类) 有了类的特点,就可以调用类中的方法。

二、junit单元测试方法的使用

package nine;

import org.junit.Test;

//包装类:8种基本数据类型对应着一个类,此类即为包装类。
//基本数据类型 包装类 及String之间的相互转换
public class TestWrapper {

	//基本数据类型、包装类与String类之间的转换
	@Test
	public void test2(){
		//基本数据类型、包装类 --->String类:调用String类的重载的valueOf(Xxx x)方法
		int i1 = 10;
		String str1 = i1 + "";//"10"
		Integer i2 = i1;
		String str2 = String.valueOf(i2);

		String str3 = String.valueOf(true);//"true"
		str2 = i2.toString();
		System.out.println(str3);
		//String类--->基本数据类型、包装类:调用包装类的parseXxx(String str)方法
		int i3 = Integer.parseInt(str2);
		System.out.println(i3);
		boolean b1 = Boolean.parseBoolean(str3);
		System.out.println(b1);

		//int i4 = (int)str2;
	}

	//基本数据类型与包装类之间的转化
	@Test
	public void test1(){
		int i = 10;
		System.out.println(i);
		boolean b = false;
		//基本数据类型--->对应的包装类:调用包装类的构造器
		Integer i1 = new Integer(i);
		System.out.println(i1.toString());

		Float f = new Float("12.3F");
		System.out.println(f);
		//java.lang.NumberFormatException
		//i1 = new Integer("12abc");
		//System.out.println(i1);
		//对于Boolean来讲,当形参是"true"返回true,除此之外返回false。
		Boolean b1 = new Boolean("false");
		System.out.println(b1);

		b1 = new Boolean("truea");
		System.out.println(b1);

		Order o = new Order();
		System.out.println("$ "+o.b);//null
		//包装类--->基本数据类型:调用包装类Xxx的XxxValue()方法。
		int i2 = i1.intValue();
		System.out.println(i2);
		float f1 = f.floatValue();
		System.out.println(f1);
		boolean b2 = b1.booleanValue();

		//JDK5.0以后,自动装箱和拆箱
		int i4 = 12;
		Integer i3 = i4;//自动装箱
		Boolean bb = false;

		int i5 = i3;//自动拆箱

	}
}

class Order{
	Boolean b;
}

包装类的练习

包装类的练习一:

package nine;

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

/*
 * 利用Vector代替数组处理:从键盘读入学生成绩(以负数代表输入结束),找出最高分,并输出学生成绩等级。
	提示:数组一旦创建,长度就固定不变,所以在创建数组前就需要知道它的长度。
	而向量类java.util.Vector可以根据需要动态伸缩。
	创建Vector对象:Vector v=new Vector();
	给向量添加元素:v.addElement(obj);   //obj必须是对象
	取出向量中的元素:Object  obj=v.elementAt(0);
	注意第一个元素的下标是0,返回值是Object类型的。
	计算向量的长度:v.size();
	若与最高分相差10分内:A等;20分内:B等;
	      30分内:C等;其它:D等
 */
public class TestScore {
	public static void main(String[] args) {
		//1.创建Scanner的对象,提示从键盘输入学生的成绩(以负数代表输入结束)
		Scanner s = new Scanner(System.in);
		System.out.println("请输入学生的成绩:(以负数代表输入结束)");
		//2.for(;;),从键盘依次获取学生的成绩,并填入由Vector v=new Vector()创建的对象v中。
		Vector v=new Vector();
		int maxScore = 0;//记录最高分
		for(;;){
			int score = s.nextInt();
			if(score < 0){
				break;
			}
			//3.求出所有输入的正的成绩中的最高分
			//获取学生成绩中的最高分
			if(maxScore < score){
				maxScore = score;
			}
			//依次将学生成绩村放入v中
			Integer score1 = new Integer(score);
			v.addElement(score1);
		}

		//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);
		}
	}
}

韧桂 2019-12-29