关于包装类的理解与基本数据类型,String类的相互转换


关于包装类

包装类是针对于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);
		}
	}
 


  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值