当前位置: 首页 > article >正文

头歌java课程实验(Java面向对象 - 包装类)

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

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

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

2.怎么使用包装类。

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

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

int i = 10;
i.toString();
使用这段代码就会出错。

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

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

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

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

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

Integer i1 = new Integer(100);  //定义一个值为100的 整形包装类
Integer i2 = 100;
上面两种方式都可以定义整形类型的包装类。

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

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

Integer i1 = new Integer(100);
int value = i1;//方法1
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) {//定义float对象float f = 66.6f;//手动装箱Float f1 =   new Float(f)    ;//自动装箱 Float f2 =  f     ;System.out.println("装箱后的结果为:" + f1 + "和" + f2);//定义一个Double包装类值为88.88Double d =  new Double(88.88)     ;//手动拆箱double d1 =  d.doubleValue()    ;//自动拆箱double d2 =  d    ;System.out.println("拆箱结果为:" + d1 + "和" + d2);}}

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

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

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

将包装类转换成其他数据类型
很简单,我们来看一个例子就知道了:

Integer i = new Integer(100);
//转换成double类型
double d = i.doubleValue();
System.out.println("d的值:" + d);
//转换成float类型
float f = i.floatValue();
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) {// 定义int类型变量,值为67int score = 67;// 创建Integer包装类对象,表示变量score的值Integer score1 = new Integer(score);// 将Integer包装类转换为double类型double score2 = score1.doubleValue()    ; // 将Integer包装类转换为float类型float score3 =  score1.intValue()    ;// 将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);}        
}

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

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

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

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

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

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

那如何进行转换呢?

总共有三种方式:

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

使用String类的valueOf()方法;

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

如何将字符串转换成基本数据类型
我们先来看一段代码:

String a ="12";
int b = 23;
System.out.println(a+b);
这段代码输出的结果应该是,1223,但是我们想让他输出35应该怎么做呢?
你肯定想到了,我们先将a转换成int类型,在相加就可以了。

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

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

调用包装类的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;//请在此添加实现代码//将基本类型a转换为字符串String str = Double.toString (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));} 
}

相关文章:

头歌java课程实验(Java面向对象 - 包装类)

第1关:基本数据类型和包装类之间的转换 任务描述 本关任务:实现基本数据类型与包装类之间的互相转换。 相关知识 为了完成本关任务,你需要掌握: 1.什么是包装类; 2.怎么使用包装类。 什么是包装类 在JAVA中&#x…...

经济法-7-上市公司首次发行、配股增发条件

一、首次公开发行股票条件 事项 条件存续时间,持续经营能力 持续经营3年以上的股份公司 具有持续经营能力 内部控制制度具备健全且运行良好的组织机构财务最近3年财务会计报告被出具无保留意见审计报告公司治理 1)最近3年内,发行人及…...

PyTorch中nn.Module详解

直接print(dir(nn.Module)),得到如下内容: 一、模型结构与参数 parameters() 用途:返回模块的所有可训练参数(如权重、偏置)。示例:for param in model.parameters():print(param.shape)named_parameters…...

Mac 每日磁盘写入量异常高

为什么你的 Mac 每日磁盘写入量异常高?深度分析与解决方案 文章目录 为什么你的 Mac 每日磁盘写入量异常高?深度分析与解决方案🔍 问题现象🕵️‍♂️ 六大罪魁祸首1. 系统日志疯狂输出典型场景​: 2. 浏览器缓存3. Ti…...

《深入解析Go语言结构:简洁高效的工程化设计》

《深入解析Go语言结构:简洁高效的工程化设计》 ​​引言​​ Go语言(Golang)由Google团队于2009年发布,专为现代分布式系统和云计算设计。其核心哲学是​​"简单性高于一切"​​,通过精简的语法结构和创新的…...

[蓝桥杯]机器人塔

题目描述 X 星球的机器人表演拉拉队有两种服装,A 和 B。 他们这次表演的是搭机器人塔。 类似: A B B A B A A A B B B B B A B A B A B B A 队内的组塔规则是: A 只能站在 AA 或 BB 的肩上。 B 只能站在 AB 或 BA 的肩上。 你的…...

如何将vue2使用npm run build打包好的文件上传到服务器

要将 Vue 2 项目打包并部署到服务器上,并使用 Nginx 作为 Web 服务器,可以按照以下步骤操作: 1. 打包 Vue 2 项目 首先,确保你的 Vue 2 项目已经开发完成,并且可以在本地正常运行。然后使用以下命令进行打包&#xf…...

Ubuntu 22.04 系统下 Docker 安装与配置全指南

Ubuntu 22.04 系统下 Docker 安装与配置全指南 一、前言 Docker 作为现代开发中不可或缺的容器化工具,能极大提升应用部署和环境管理的效率。本文将详细介绍在 Ubuntu 22.04 系统上安装与配置 Docker 的完整流程,包括环境准备、安装步骤、权限配置及镜…...

动态表单开发避坑:改变input的值不会触发change事件即时修复策略-WdatePicker ——仙盟创梦IDE

原始传统模式 onchange <input onchange"未来之窗东方仙盟change(this)" oni > <script>function 未来之窗东方仙盟change(onj){console.log("未来之窗东方仙盟change",onj.value)} </script> 测试 原始传统模式 oninput <input …...

10.安卓逆向2-frida hook技术-frida基本使用-frida指令(用于hook)

免责声明&#xff1a;内容仅供学习参考&#xff0c;请合法利用知识&#xff0c;禁止进行违法犯罪活动&#xff01; 内容参考于&#xff1a;图灵Python学院 工具下载&#xff1a; 链接&#xff1a;https://pan.baidu.com/s/1bb8NhJc9eTuLzQr39lF55Q?pwdzy89 提取码&#xff1…...

动态设置微信小程序页面标题(navigationBarTitleText属性)

前言&#xff1a; 最近在公司进行小程序研发的时候&#xff0c;产品给出了一个动态加载页面标题的需求&#xff0c;经过调研之后将结果在这里与各位伙伴进行分享。 代码展示&#xff1a; 在.json文件中进行初始配置&#xff1a; { "usingComponents": {}, &q…...

前端流式接收数据讲解

前端流式接收数据全面讲解 前端流式接收数据&#xff08;Streaming Data Reception&#xff09;是现代 Web 应用中一个重要特性&#xff0c;尤其在处理实时通信、大文件传输、聊天、视频播放、实时日志监控等场景下。下面我们从概念到技术实现&#xff0c;再到应用示例&#x…...

Flutter下的一点实践

目录 1、背景2、refena创世纪代码3、localsend里refena的刷新3.1 初始状态3.2 发起设备扫描流程3.3 扫描过程3.3 刷新界面 4.localsend的设备扫描流程4.1 UDP广播设备注册流程4.2 TCP/HTTP设备注册流程4.3 localsend的服务器初始化工作4.4总结 1、背景 在很久以前&#xff0c;…...

Python训练营打卡 Day41

简单CNN 知识回顾 数据增强卷积神经网络定义的写法batch归一化&#xff1a;调整一个批次的分布&#xff0c;常用与图像数据特征图&#xff1a;只有卷积操作输出的才叫特征图调度器&#xff1a;直接修改基础学习率 卷积操作常见流程如下&#xff1a; 1. 输入 → 卷积层 → Batch…...

Eclipse集成lombok

一、安装 Lombok 插件&#xff08;Eclipse 支持&#xff09; 下载 lombok.jar&#xff1a; 前往官网下载页面&#xff1a;https://projectlombok.org/download 下载最新版本的 lombok.jar 文件。 运行 lombok.jar 配置 Eclipse&#xff1a; 双击下载的 lombok.jar&#xff0…...

什么是trace,分布式链路追踪(Distributed Tracing)

在你提到的 “个人免费版” 套餐中&#xff0c;“Trace 上报量&#xff1a;5 万条 / 月&#xff0c;存储 3 天” 里的 Trace 仍然是指 分布式链路追踪记录&#xff0c;但需要结合具体产品的场景来理解其含义和限制。以下是更贴近个人用户使用场景的解释&#xff1a; 一、这里的…...

VScode ios 模拟器安装cocoapods

使用 Homebrew 安装&#xff08;推荐&#xff09; 如果你有 Homebrew&#xff0c;直接用它安装更稳定&#xff1a; brew install cocoapods...

Redis最佳实践——安全与稳定性保障之数据持久化详解

Redis 在电商应用的安全与稳定性保障之数据持久化全面详解 一、持久化机制深度解析 1. 持久化策略矩阵 策略触发方式数据完整性恢复速度适用场景RDB定时快照分钟级快容灾备份/快速恢复AOF实时追加日志秒级慢金融交易/订单关键操作混合模式RDBAOF同时启用秒级中等高安全要求场…...

互联网大厂Java求职面试实战:Spring Boot微服务架构及Kafka消息处理示例解析

互联网大厂Java求职面试实战&#xff1a;Spring Boot微服务架构及Kafka消息处理示例解析 引言 在互联网大厂的Java开发岗位面试中&#xff0c;考察候选人对微服务架构设计、消息队列处理及高并发处理能力是重点。本文结合Spring Boot框架和Kafka消息队列&#xff0c;模拟一个…...

K 值选对,准确率翻倍:KNN 算法调参的黄金法则

目录 一、背景介绍 二、KNN 算法原理 2.1 核心思想 2.2 距离度量方法 2.3 算法流程 2.4算法结构&#xff1a; 三、KNN 算法代码实现 3.1 基于 Scikit-learn 的简单实现 3.2 手动实现 KNN&#xff08;自定义代码&#xff09; 四、K 值选择与可视化分析 4.1 K 值对分类…...

技术栈ES的介绍和使用

目录 1. 全文搜索引擎&#xff08;Elastic Search&#xff09;的由来2. Elastic Search 概述2.1 Elastic Search 介绍2.2 Elastic Search 功能2.3 Elastic Search 特点 3. 安装 Elastic Search3.1 ES 的安装3.2 安装 kibana3.3 ES 客户端的安装 4. Elastic Search 基本概念4.1 …...

跟Gemini学做PPT-模板样式的下载

好的&#xff0c;这里有一些推荐的网站&#xff0c;您可以在上面找到PPT目录样式和模板的灵感&#xff1a; SlideModel (slidemodel.com) 提供各种预先设计的目录幻灯片模板。这些模板100%可编辑&#xff0c;可用于PowerPoint和Google Slides。您可以找到不同项目数量&#xff…...

Windows版本的postgres安装插件http

1、下载安装包 这里使用安装 pgsql-http 的扩展 源码地址&#xff1a;GitHub - pramsey/pgsql-http: HTTP client for PostgreSQL, retrieve a web page from inside the database. 编译的安装地址&#xff1a;http extension for windows updated to include PostgreSQL17 …...

uni-app学习笔记十六-vue3页面生命周期(三)

uni-app官方文档页面生命周期部分位于页面 | uni-app官网。 本篇再介绍2个生命周期 1.onUnload&#xff1a;用于监听页面卸载。 当页面被关闭时&#xff0c;即页面的缓存被清掉时触发加载onUnload函数。 例如:在demo6页面点击跳转到demo4&#xff0c;在demo4页面回退不了到d…...

优化的两极:凸优化与非凸优化的理论、应用与挑战

在机器学习、工程设计、经济决策等众多领域&#xff0c;优化问题无处不在。而在优化理论的世界里&#xff0c;凸优化与非凸优化如同两个截然不同的 “王国”&#xff0c;各自有着独特的规则、挑战和应用场景。今天&#xff0c;就让我们深入探索这两个优化领域的核心差异、算法特…...

(五)MMA(OpenTelemetry/Rabbit MQ/ApiGateway/MongoDB)

文章目录 项目地址一、OpenTelemetry1.1 配置OpenTelemetry1. 服务添加2. 添加服务标识3. 添加请求的标识4. 添加中间价 二、Rabbit MQ2.1 配置Rabbit MQ1. docker-compose2. 添加Rabbit MQ的Connect String 2.2 替换成Rabbit MQ1. 安装所需要的包2. 使用 三、API Gateways3.1 …...

TCP通信与MQTT协议的关系

1. MQTT 处理核心&#xff08;Mqtt_Pro&#xff09; void Mqtt_Pro(void) { MQTT_Init(); // 初始化MQTT协议栈&#xff08;连接参数、缓冲区等&#xff09; MQTT_SendPro(); // 处理MQTT发送&#xff08;封装消息&#xff0c;调用TCP发送&#xff09; MQTT_RecPro();…...

AWS创建github相关的角色

创建github-actions角色 {"Version": "2012-10-17","Statement": [{"Effect": "Allow","Principal": {"Federated": "arn:aws:iam::11111111:oidc-provider/token.actions.githubusercontent.com…...

数据编辑器所具备的数据整理功能​

在企业的数据处理过程中&#xff0c;数据清洗与整理是至关重要的环节&#xff0c;而数据编辑器在这方面发挥着关键作用。在一份包含客户信息的数据表中&#xff0c;常常会出现缺失值的情况。比如客户的年龄、联系方式等字段可能因为各种原因没有被记录&#xff0c;这就形成了缺…...

Unity网络开发实践项目

摘要&#xff1a;该网络通信系统基于Unity实现&#xff0c;包含以下几个核心模块&#xff1a; 协议配置&#xff1a;通过XML定义枚举&#xff08;如玩家/英雄类型&#xff09;、数据结构&#xff08;如PlayerData&#xff09;及消息协议&#xff08;如PlayerMsg&#xff09;&a…...