java第二十九课 —— 断点 | 零钱通项目

断点调试(debug)

实际需求

  1. 在开发中,新手程序员在查找错误时,这时老程序员就会温馨提示,可以用断点调试步一步的看源码执行的过程,从而发现错误所在

  2. 重要提示:在断点调试过程中,是运行状态,是以对象的运行类型来执行的

断点调试介绍

  1. 断点调试是指在程序的某一行设置一个断点,调试时,程序运行到这行就会停住,出错的话,调然后你可以一步一步往下调试,调试过程中可以看各个变量当前的值,试到出错的代码行即显示错误,停下。进行分析从而找到这个 Bug。
  2. 断点调试是程序员必须掌握的技能。断点调试也能帮助我们查看 Java 底层源代码的执行过程,提高程序员的 Java 水平。

断点调试的快捷键

F7(跳入):跳入方法内

F8(跳过):逐行执行代码

shift+F8(跳出):跳出方法

F9(resume,执行到下一个断点)
在这里插入图片描述

零钱通项目

项目需求说明

使用 Java 开发零钱通项目,可以完成收益入账,消费,查看明细,退出系统等功能。

项目的界面

在这里插入图片描述

SmallChangeSysApp.java:

package com.hspedu.smallchange.oop;/*** 这里直接调用 SmallChangeSysOOP 对象,显示主菜单即可*/public class SmallChangeSysApp {public static void main(String[] args) {new SmallChangeSysOOP().mainMenu();}
}

SmallChangeSysOOP.java:

package com.hspedu.smallchange.oop;import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Scanner;/*** 该类是完成零钱通的各个功能的类* 使用OOP(面向对象编程)* 将各个功能对应一个方法**/public class SmallChangeSysOOP {//属性boolean loop = true;Scanner scanner = new Scanner(System.in);String key = "";String details = "--------------------零钱通明细-------------------";double money = 0;double balance = 0;Date date = null;SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm");// 用于时间格式化String note = "";//显示菜单public void mainMenu(){do{System.out.println("\n====================零钱通选择菜单(OOP)===================");System.out.println("\t\t\t1 零钱通明细");System.out.println("\t\t\t2 收益入账");System.out.println("\t\t\t3 消费");System.out.println("\t\t\t4 退    出");System.out.println("请选择(1-4):");key = scanner.next();switch (key){case "1":this.detail();break;case "2":this.income();break;case "3":this.pay();break;case "4":this.exit();break;default:System.out.println("选择有误,请重新选择");}}while (loop);}//显示零钱通明细public void detail(){System.out.println(details);}//完成收益入账public void income(){System.out.println("收益入账金额:");money = scanner.nextDouble();//校验money的值if(money <= 0){System.out.println("收益入账金额需要大于 0 ");return;//退出方法,不再执行}balance += money;//拼接收益入账信息到 detailsdate = new Date();//获取当前日期details += "\n收益入账\t+" + money + "\t" + sdf.format(date) + "\t" + "余额:" + balance;}//消费public void pay(){System.out.println("消费金额:");money = scanner.nextDouble();//校验money的值if(money <= 0 || money > balance){System.out.println("你的消费金额需要在 0 - " + balance + " 之间");return;}System.out.println("消费说明:");note = scanner.next();balance -= money;details += "\n" + note +"\t-" + money + "\t" + sdf.format(date) + "\t" + "余额:" + balance;}//退出public void exit(){System.out.println("4 退出");String choice = "";while (true){System.out.println("你确定要退出吗?y/n");choice = scanner.next();if("y".equals(choice) || "n".equals(choice)){break;}}if(choice.equals("y")){loop = false;}}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/37586.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Open3D(C++) 删除点云中重复的点

目录 一、算法原理1、重叠点2、主要函数二、代码实现三、结果展示本文由CSDN点云侠原创,原文链接。如果你不是在点云侠的博客中看到该文章,那么此处便是不要脸的爬虫与GPT。 一、算法原理 1、重叠点 原始点云克隆一份   构造重叠区域   合并点云获得重叠点 2、主要…

嫦娥六号平安回家,Smartbi非常荣幸参与中国航天项目

“小时不识月&#xff0c;呼作白玉盘。”李白的这句诗&#xff0c;承载了古人对月亮的美好想象与纯真童趣。今天&#xff0c;当我们仰望夜空&#xff0c;那轮明月不仅是诗词中的意象&#xff0c;更是科学探索的目标和梦想的寄托。 2024年6月25日14时07分&#xff0c;嫦娥六号返…

vxeTable反转表格

文章目录 前言 前言 如果遇到列为动态值&#xff0c;行相对固定的情况&#xff0c;这种时候就需要用到行列反转&#xff0c;这里我以vxeTable表格为例。 直接上代码 <vxe-gridref"tableRefRight":auto-resize"true":columns"dataColumn":dat…

第5章_Modbus通讯协议

文章目录 5.1 学习Modbus的快速方法5.1.1 寄存器速记5.1.2 协议速记 5.2 初识Modbus5.2.1 背景5.2.2 什么是Modbus&#xff1f;1. Modbus简介2. Modbus特点3. Modbus常用术语4. Modbus事务处理 5.3 Modbus软件与使用5.3.1 Modbus软件简介5.3.2 Modbus Poll&#xff08;主站设备…

Unity WebGL项目问题记录

一、资源优化 可通过转换工具配套提供的资源优化工具&#xff0c;将游戏内纹理资源针对webgl导出做优化。 工具入口&#xff1a; 工具介绍 Texture 搜索规则介绍 已开启MipMap: 搜索已开启了MipMap的纹理。 NPOT: 搜索非POT图片。 isReadable: 搜索已开启readable纹理。 …

深度之眼(二十八)——神经网络基础知识(三)-卷积神经网络

文章目录 一、前言二、卷积操作2.1 填充&#xff08;padding&#xff09;2.2 步长2.3 输出特征图尺寸计算2.4 多通道卷积 三、池化操作四、Lenet-5及CNN结构进化史4.1 Lenet-5 一、前言 卷积神经网络–AlexNet(最牛)-2012 Lenet-5-大规模商用&#xff08;1989&#xff09; 二、…

昇思25天学习打卡营第3天|网络构建

学习目标&#xff1a;熟练掌握网络构建方法 了解mindspore.nn 实例构建简单的神经网络 网络模型中各层参数 昇思大模型平台 AI实验室 学习记录&#xff1a; 一、关于mindspore.nn 在MindSpore中&#xff0c;Cell类是构建所有网络的基类&#xff0c;也是网络的基本单元。cell…

在vs上远程连接Linux写服务器项目并启动后,可以看到服务启动了,但是通过浏览器访问该服务提示找不到页面

应该是被防火墙挡住了&#xff0c;查看这个如何检查linux服务器被防火墙挡住 • Worktile社区 和这个关于Linux下Nginx服务启动&#xff0c;通过浏览器无法访问的问题_linux无法访问nginx-CSDN博客 的提示之后&#xff0c;知道防火墙开了&#xff0c;想着可能是我写的服务器的…

【R语言】plot输出窗口大小的控制

如果需要输出png格式的图片并设置dpi&#xff0c;可采用以下代码 png("A1.png",width 10.09, height 10.35, units "in",res 300) 为了匹配对应的窗口大小&#xff0c;在输出的时候保持宽度和高度一致即可&#xff0c;步骤如下&#xff1a; 如上的“10…

kali Linux基本命令(超全)_kali linux命令

一、系统信息 arch 显示机器的处理器架构(1) uname -m 显示机器的处理器架构(2) uname -r 显示正在使用的内核版本 dmidecode -q 显示硬件系统部件- (SMBIOS / DMI) hdparm -i /dev/hda 罗列一个磁盘的架构特性 hdparm -tT /dev/sda 在磁盘上执行测试性读取操作 cat /proc/cpu…

泽众云真机-平台华为机型HarmonyOS NEXT系统已上线!

泽众云真机平台华为机型HarmonyOS NEXT系统已上线&#xff01; 之前文章《泽众云真机-平台即将升级支持华为机型HarmonyOS NEXT系统泽众云真机-平台即将升级支持华为机型HarmonyOS NEXT系统》&#xff0c;为什么要升级HarmonyOS NEXT系统&#xff1f;我们之前有说过&#xff0c…

第7章_低成本 Modbus 传感器的实现

文章目录 第7章 低成本 Modbus 传感器的实现7.1 硬件资源介绍与接线7.2 开发环境搭建7.3 创建与体验第 1 个工程7.3.1 创建工程7.3.2 配置调试器7.3.3 配置 GPIO 操作 LED 7.4 UART 编程7.4.1 使用 STM32CubeMX 进行配置1.UART12.配置 RS485方向引脚 7.4.2 封装 UART7.4.3 上机…

第十一节:学习通过动态调用application.properties参数配置实体类(自学Spring boot 3.x的第二天)

大家好&#xff0c;我是网创有方。这节实现的效果是通过代码灵活地调用application.properties实现配置类参数赋值。 第一步&#xff1a;编写配置类 package cn.wcyf.wcai.config;import org.springframework.beans.factory.annotation.Value; import org.springframework.boo…

11. Revit API UI 补充

11. Revit API UI 补充 UI篇我也只写了主要的&#xff0c;部分关联的没有写。 以前发的又不想去改&#xff0c;这里就做一些补充吧。 一、可停靠窗口补充 在可停靠窗口那篇&#xff0c;提到要实现IDockablePageProvider接口&#xff0c;就略过了。 该接口要求实现一个方法。…

苏东坡传-读书笔记四

长江三峡&#xff0c;无人不知其风光壮丽&#xff0c;但对旅客而言&#xff0c;则是险象环生。此段江流全长二百二十余里&#xff0c;急流旋涡在悬崖峭壁之间滚转出入&#xff0c;水下暗石隐伏&#xff0c;无由得见&#xff0c;船夫要极其敏捷熟练&#xff0c;才可通行。三峡之…

每日算法-二分查找

适用场景 适用于有序数组中查找某一个值. 每查找一次,就将搜寻范围缩小一半, 平均时间复杂度是O(logN), 简记作:O(lgN). 主要难点 主要难点在于边界条件的判断&#xff1b; 大致思路: 1.当供查找的数组不合法时,直接返回结果,查询无果; 2.当数组长度等于1时,直接判断是否…

Redis 7.x 系列【6】数据类型之字符串(String)

有道无术&#xff0c;术尚可求&#xff0c;有术无道&#xff0c;止于术。 本系列Redis 版本 7.2.5 源码地址&#xff1a;https://gitee.com/pearl-organization/study-redis-demo 文章目录 1. 前言2. 常用命令2.1 SET2.2 GET2.3 MSET2.4 MGET2.5 GETSET2.6 STRLEN2.7 SETEX2.8…

南昌高校大学智能制造实验室数字孪生可视化系统平台建设项目验收

南昌高校大学智能制造实验室&#xff0c;作为该地区乃至全国智能制造领域的重要研究和教学基地&#xff0c;一直致力于探索和创新智能制造技术。近日&#xff0c;该实验室的数字孪生可视化系统平台建设项目成功通过了验收&#xff0c;标志着其在数字孪生技术领域取得了重大突破…

滑动窗口2

1. 水果成篮&#xff08;904&#xff09; 题目描述&#xff1a; 算法原理&#xff1a; 根据题目意思&#xff0c;friuts表示第i棵树上的水果种类&#xff0c;然后我们有两个篮子去在这些树上去采水果&#xff0c;但是有限制就是一个篮子里就只能装一种水果&#xff0c;也就是…

RK35x8通过TFTP下载内核到开发板

对于有网线接口的RK35X8开发板&#xff0c;调试时候&#xff0c;可以通过网线下载内核镜像和设备树到开发板&#xff0c;不用每次修改驱动都要重新打开下载工具&#xff0c;进入下载模式。通过TFTP可以大大提高调试效率。 在ubuntu安装TFTP服务 安装tftp服务器 sudo apt-get…