Java面向对象 - 包装类

我亦无他,惟手熟尔                                                                                     ------【宋】欧阳修

青春年少时,我并不曾懂得自己那些快意活法,都是来自父母的躬身托起。

我迷席慕蓉的诗,为赋新词强说愁,唯独没想过父母的辛苦和劳累。

众生皆苦,没有人会被命运额外眷顾。

如果你活得格外轻松顺遂,一定是有人替你承担了你该承担的重量。          --------苏心
        

第1关:基本数据类型和包装类之间的转换

任务描述

本关任务:实现基本数据类型与包装类之间的互相转换。

相关知识

为了完成本关任务,你需要掌握:
1.什么是包装类;

2.怎么使用包装类。

什么是包装类

在JAVA中,八大基础数据类型(int,float,double...)是不具备对象的特征的,比如基本数据类型就不能调用方法,功能简单,为了让基本数据类型也具备对象的特征,就有了JAVA包装类。

我们知道基础数据类型是没有属性的,也是不能调用方法的。例如:

 
  1. int i = 10;
  2. i.toString();

使用这段代码就会出错。

但是我们在开发过程中肯定会遇到,将基本数据类型转换为String类型,或者其他数据类型,而这个时候如果我们要用基础数据类型实现这些转换就会非常麻烦,所以Java就有了基本数据类型的包装类,顾名思义,包装类就是:将基本数据类型包装成对象,使其具有了对象的属性方法。 这样就可以使用方法和属性了。

而包装类的主要作用也就是:

  1. 将本类型与其他类型进行转换;

  2. 将字符串与本类型及包装类型相互转换。

怎么使用包装类

首先我们来看如何定义包装类:比如定义一个int类型的包装类

 
  1. Integer i1 = new Integer(100); //定义一个值为100的 整形包装类
  2. Integer i2 = 100;

上面两种方式都可以定义整形类型的包装类。

我们可能会有疑问,数据变成了包装类,我之后要使用数据怎么办呢?

很简单,我们在将包装类转换成基本数据类型就可以了。

 
  1. Integer i1 = new Integer(100);
  2. int value = i1;//方法1
  3. int value2 = i1.intValue();//方法2

经过上述步骤就可以将包装类转换成基本数据类型了。这两个例子分别展示了如何将int类型转换成包装类,如何将包装类转换成int类型。
我们一般将“基本数据类型转换成包装类”的过程叫做装箱,将“包装类转换成基本数据类型”的过程叫做拆箱

装箱可以分为手动装箱和自动装箱

拆箱也可以分为手动拆箱和自动拆箱

这里所举的例子都是使用int类型,其他数据类型和int类型的包装类切换方式没有什么区别,所以关于其他数据类型我们只需要知道它们对应的包装类名是什么即可。

看上图,相信你已经明白Java中八大基本数据类型如何与包装类进行切换了。

测试说明

请仔细阅读右侧代码,根据方法内的提示,在Begin - End区域内进行代码补充,具体任务如下:

  • 完成基本数据类型与包装类之间的相互转换,即装箱与拆箱。

编程要求

补充完代码后,点击测评,平台会对你编写的代码进行测试,当你的结果与预期输出一致时,即为通过。

预期输出:

装箱后的结果为:66.6和66.6
拆箱结果为:88.88和88.88

代码如下:

package step1;

public class Task {
	public static void main(String[] args) {
		
//请在此添加实现代码
/********** Begin **********/
//定义float对象
		float f = 66.6f;
		
		//手动装箱
		Float f1 = new Float(f);
		
		//自动装箱 
		Float f2 = f;
		
		System.out.println("装箱后的结果为:" + f1 + "和" + f2);
		
		
		//定义一个Double包装类值为88.88
		Double d = new Double(88.88);
		
		//手动拆箱
		double d1 = d.doubleValue();
		
		//自动拆箱
		double d2 = d;
		
		System.out.println("拆箱结果为:" + d1 + "和" + d2);
		

/********** End **********/
		
	}

}

第2关:包装类转换成其他数据类型

任务描述

本关任务:将包装类转换成其他数据类型。

相关知识

为了完成本关任务,你需要掌握:1.如何将包装类转换成其他基本数据类型。

将包装类转换成其他数据类型

很简单,我们来看一个例子就知道了:

 
  1. Integer i = new Integer(100);
  2. //转换成double类型
  3. double d = i.doubleValue();
  4. System.out.println("d的值:" + d);
  5. //转换成float类型
  6. float f = i.floatValue();
  7. System.out.println("f的值" + f);

相信你已经明白怎么进行转换了。

编程要求

请仔细阅读右侧代码,根据方法内的提示,在Begin - End区域内进行代码补充,具体任务如下:

  • int类型数据转换成其他数据类型。

测试说明

补充完代码后,点击测评,平台会对你编写的代码进行测试,当你的结果与预期输出一致时,即为通过。
预期输出:
Integer包装类:67
double类型:67.0
float类型:67.0
int类型:67

代码如下:

package step2;

public class Task {
	public static void main(String[] args) {

//请在此添加实现代码
/********** Begin **********/
// 定义int类型变量,值为67
		int score = 67;

		// 创建Integer包装类对象,表示变量score的值
		Integer score1 = new Integer(score);

		// 将Integer包装类转换为double类型
		double score2 = score1.doubleValue(); 

		// 将Integer包装类转换为float类型
		float score3 = score1.floatValue();

		// 将Integer包装类转换为int类型
		int score4 = score1.intValue();

		System.out.println("Integer包装类:" + score1);
		System.out.println("double类型:" + score2);
		System.out.println("float类型:" + score3);
		System.out.println("int类型:" + score4);


/********** End **********/
		
	}
}

第3关:包装类与字符串之间的转换

任务描述

本关任务:实现基本数据类型与字符串的相互转换。

相关知识

为了完成本关任务,你需要掌握:

1.如何将基本数据类型转换成字符串;

2.如何将字符串转换成基本数据类型。

如何将基本数据类型转换成字符串

我们在开发中会经常会遇到将基本数据类型转换成字符串的场景。

那如何进行转换呢?

总共有三种方式:

  1. 使用包装类的toString()方法;

  2. 使用String类的valueOf()方法;

  3. 使用一个空字符串加上基本类型。

如何将字符串转换成基本数据类型

我们先来看一段代码:

 
  1. String a ="12";
  2. int b = 23;
  3. System.out.println(a+b);

这段代码输出的结果应该是,1223,但是我们想让他输出35应该怎么做呢?
你肯定想到了,我们先将a转换成int类型,在相加就可以了。

将字符串转换成基本数据类型有两种方式:

  1. 调用包装类的parseXXX()方法;

  2. 调用包装类的valueOf()方法转换为基本数据类型的包装类。

编程要求

请仔细阅读右侧代码,根据方法内的提示,在Begin - End区域内进行代码补充,具体任务如下:

  • 完成基本数据类型与字符串之间的相互转换。

测试说明:

补充完代码后,点击测评,平台会对你编写的代码进行测试,当你的结果与预期输出一致时,即为通过。
预期输出:
str + 12 的结果为: 78.512
d + 100 的结果为: 280.2

代码如下:

package step3;

public class Task {
	public static void main(String[] args) {
		double a = 78.5;
        
//请在此添加实现代码
/********** Begin **********/
//将基本类型a转换为字符串
		String str = String.valueOf(a);
        
		System.out.println("str + 12  的结果为: "+(str + 12));
		
		String str1 = "180.20";
	    // 将字符串str1转换为基本类型
		double d = Double.valueOf(str1);
	
		System.out.println("d + 100 的结果为: "+ (d + 100));

/********** End **********/
		

	} 
}

警示:哪有什么岁月静好,不过是有人替你负重前行,生活从来都不容易

  • 8
    点赞
  • 38
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

obsidianer

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值