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

Java面向对象实战:从0到1手写奇偶判断工具类[特殊字符]新手保姆级教程

你好呀我是断弦承露感谢陪伴 小白博主在线求友 跟着小白学/Java/软件设计/鸿蒙开发/芯片开发专栏汇总《软件设计师》专栏 | 《Java》专栏 | 《 RISC-V 处理器实战》专栏 | 《Flutter鸿蒙实战》专栏 | 《React Native开发》专栏——|CSDN|——文章目录Java面向对象实战从0到1手写奇偶判断工具类新手保姆级教程 文章摘要 简要目录 本文思维导图学习不迷路 一、完整可运行代码直接复制可运行✨ 二、运行结果展示 三、面向对象设计思路解析1. 封装特性2. 单一职责3. 代码复用 四、核心代码逐行精讲含命名规范⚠️ 五、新手避坑负数奇数的判断陷阱问题原因解决方案 六、手把手实战教学步骤 1检查JDK环境步骤 2新建Java文件步骤 3复制完整代码步骤 4编译代码步骤 5运行程序 七、程序运行流程图⚡ 八、高级扩展功能直接可用1. 位运算优化性能更高2. 添加用户输入功能 九、新手高频FAQ必看Q1为什么要用面向对象直接在main里写判断不行吗Q2位运算判断奇偶真的更快吗Q30为什么是偶数Q4可以判断小数的奇偶吗Q5类名和文件名必须一致吗 十、官方学习资源权威可靠 十一、总结与互动总结互动时刻 版权声明Java面向对象实战从0到1手写奇偶判断工具类新手保姆级教程 文章摘要你还在直接在main方法里写if(number%20)判断奇偶吗这可是典型的面向过程写法本文纯小白友好用大白话讲透面向对象封装思想手把手带你写出可复用、可扩展的数字判断工具类。全文包含完整可运行代码 逐行命名解释 录命令行教学 新手避坑指南 高频FAQ学完不仅会判断奇偶更能懂OOP的核心用法 简要目录本文思维导图完整可运行代码运行结果展示面向对象设计思路解析核心代码逐行精讲含命名规范新手避坑负数奇数的判断陷阱录屏式手把手实战程序运行流程图高级扩展位运算优化用户输入新手高频FAQ官方学习资源总结与互动 本文思维导图学习不迷路Java面向对象 奇偶判断教程完整可运行代码面向对象设计思路核心代码逐行精讲新手避坑指南录屏式命令行实战高级扩展功能新手高频FAQNumberChecker工具类OddEvenCheckDemo主类封装特性单一职责代码复用 一、完整可运行代码直接复制可运行所有代码已在JDK 8 / JDK 17 / JDK 21环境验证通过 ✅/** * 数字判断工具类封装奇偶判断的核心功能 * 遵循面向对象封装特性将判断逻辑与业务调用分离 * 命名遵循Oracle官方规范类名是名词首字母大写 * version 2.0 */classNumberChecker{/** * 判断一个整数是否为偶数 * 命名遵循Oracle规范方法是动词首字母小写 * param number 待判断的整数变量名简短有意义 * return 偶数返回true奇数返回false */publicbooleanisEven(intnumber){// 核心逻辑能被2整除即为偶数兼容负数、0等所有整数场景returnnumber%20;}/** * 判断一个整数是否为奇数 * param number 待判断的整数 * return 奇数返回true偶数返回false */publicbooleanisOdd(intnumber){// 复用偶数判断逻辑避免代码冗余同时规避负数奇数的判断坑//Odd是 “奇数” 的意思return!isEven(number);}/** * 格式化输出数字的奇偶判断结果 * param number 待判断的整数 */publicvoidprintCheckResult(intnumber){if(isEven(number)){System.out.println(数字 number 是【偶数】);}else{System.out.println(数字 number 是【奇数】);}}}/** * 主程序类程序入口负责测试奇偶判断功能 * 命名遵循Oracle规范类名是名词首字母大写 */publicclassOddEvenCheckDemo{publicstaticvoidmain(String[]args){// 面向对象核心创建工具类对象通过对象调用封装好的功能// 变量名numberChecker语义清晰表明这是一个NumberChecker类型的对象NumberCheckernumberCheckernewNumberChecker();// 测试用例覆盖正数、负数、0等不同场景确保代码健壮性inttestNum124;inttestNum237;inttestNum30;inttestNum4-12;inttestNum5-7;// 调用对象的方法输出判断结果numberChecker.printCheckResult(testNum1);numberChecker.printCheckResult(testNum2);numberChecker.printCheckResult(testNum3);numberChecker.printCheckResult(testNum4);numberChecker.printCheckResult(testNum5);}}✨ 二、运行结果展示数字 24 是【偶数】 数字 37 是【奇数】 数字 0 是【偶数】 数字 -12 是【偶数】 数字 -7 是【奇数】 三、面向对象设计思路解析本题核心要求是面向对象思想而非直接在main方法里写判断逻辑的面向过程写法咱们的设计遵循以下面向对象核心原则1. 封装特性将奇偶判断的核心逻辑isEven、isOdd、结果输出printCheckResult全部封装在NumberChecker工具类中。外部只需要创建对象、调用方法无需关心内部是怎么判断的降低代码耦合度以后想改判断逻辑比如用位运算只需要改工具类就行不用改调用的地方。2. 单一职责NumberChecker类只负责数字判断相关功能主类OddEvenCheckDemo只负责程序入口和测试职责清晰便于后续扩展比如以后想加判断质数的功能直接在NumberChecker里加方法就行。3. 代码复用isOdd方法直接复用isEven的逻辑避免重复代码同时规避了新手用number%21判断奇数时负数奇数判断错误的坑。 四、核心代码逐行精讲含命名规范参考Oracle官方Java命名规范咱们的命名严格遵循以下规则代码片段功能说明为什么这样命名/设计NumberChecker类数字判断工具类类名是名词首字母大写大驼峰见名知意明确功能isEven(int number)方法判断是否为偶数方法名是动词开头首字母小写小驼峰isEven意思是“是否是偶数”清晰表达操作number变量名简短有意义不使用无意义字母isOdd(int number)方法判断是否为奇数复用偶数判断逻辑避免代码冗余同时解决负数奇数的判断错误问题printCheckResult方法格式化输出结果封装输出逻辑外部调用无需关心输出格式简化调用成本new NumberChecker()创建对象面向对象核心通过类实例化出对象通过对象调用功能而非面向过程的直接写逻辑testNum1等变量测试用的数字变量名语义清晰testNum意思是“测试数字”后面加序号区分不同测试用例⚠️ 五、新手避坑负数奇数的判断陷阱很多新手会用下面的代码判断奇数// 错误写法publicbooleanisOdd(intnumber){returnnumber%21;}这个写法有严重bug问题原因Java中取模运算的结果符号和被除数一致例如-7 % 2 -1不等于17 % 2 1所以用number%21判断奇数时负数奇数会判断错误解决方案咱们代码里的写法// 正确写法publicbooleanisOdd(intnumber){return!isEven(number);}通过“不是偶数就是奇数”的逻辑完美规避了这个问题兼容所有整数场景正数、负数、0。 六、手把手实战教学步骤 1检查JDK环境打开命令提示符Windows或终端Mac/Linux输入java -version如果有版本号输出说明JDK已安装如果没有去Oracle官网下载JDK 21LTS长期支持版安装。步骤 2新建Java文件在桌面新建文件夹JavaPractice进入文件夹新建文本文档重命名为OddEvenCheckDemo.java⚠ 文件名必须与public class一致步骤 3复制完整代码用记事本打开OddEvenCheckDemo.java复制本文的完整代码进去保存。步骤 4编译代码打开命令行进入JavaPractice文件夹cd Desktop\JavaPractice执行编译命令javac OddEvenCheckDemo.java如果没有任何提示说明编译成功文件夹里会多一个OddEvenCheckDemo.class和NumberChecker.class文件。步骤 5运行程序执行运行命令java OddEvenCheckDemo控制台直接输出结果 ✅ 七、程序运行流程图是否启动程序 main方法创建NumberChecker对象定义测试用的数字调用printCheckResult方法内部调用isEven方法判断number%2是否为0输出是偶数输出是奇数继续下一个测试用例所有测试用例完成⚡ 八、高级扩展功能直接可用1. 位运算优化性能更高位运算比取模运算快很多咱们可以用位运算优化偶数判断publicbooleanisEven(intnumber){// 位运算优化偶数的二进制最后一位是0和1做与运算结果为0return(number1)0;}2. 添加用户输入功能让用户自己输入数字不用改代码就能测试importjava.util.Scanner;publicclassOddEvenCheckDemo{publicstaticvoidmain(String[]args){NumberCheckernumberCheckernewNumberChecker();ScannerscannernewScanner(System.in);System.out.print(请输入一个整数);intuserInputscanner.nextInt();numberChecker.printCheckResult(userInput);scanner.close();}} 九、新手高频FAQ必看Q1为什么要用面向对象直接在main里写判断不行吗A直接在main里写当然可以但那是面向过程写法。面向对象的好处是代码复用以后想在其他地方判断奇偶直接创建NumberChecker对象调用就行不用复制粘贴代码。易于维护以后想改判断逻辑只需要改NumberChecker类不用改所有调用的地方。符合企业开发规范实际工作中都是用面向对象写代码的。Q2位运算判断奇偶真的更快吗A是的位运算直接操作二进制CPU执行速度比取模运算快很多。不过对于普通的奇偶判断性能差异可以忽略不计但位运算写法更“高级”面试时可能会问到。Q30为什么是偶数A根据数学定义能被2整除的整数就是偶数0除以2等于0是整数所以0是偶数。咱们的代码也正确处理了0的情况。Q4可以判断小数的奇偶吗A数学上奇偶性只针对整数小数没有奇偶性。如果需要判断小数可以先取整再判断或者在方法里加参数验证提示用户只能输入整数。Q5类名和文件名必须一致吗A只有public class的类名必须和文件名一致非public的类比如咱们的NumberChecker可以不一致但建议保持一致方便管理。 十、官方学习资源权威可靠Oracle Java 官方教程基础入门奇偶性 百度百科数学定义Java 命名规范 Oracle官方文档Schema.org 结构化数据规范 十一、总结与互动总结面向对象核心封装、单一职责、代码复用奇偶判断避坑不要用number%21判断奇数复用偶数判断逻辑更安全代码健壮性测试用例要覆盖正数、负数、0等不同场景完全适配JDK 8 ~ JDK 21互动时刻你学会了吗欢迎在评论区留下你测试的数字你的运行结果遇到的任何问题我会一一回复 版权声明本文为CSDN 原创文章版权归作者所有。如需转载请务必附上原文链接感谢支持如果本文对你有帮助欢迎点赞、收藏⭐、评论!个人领域:C/java/Al/软件开发/芯片开发个人主页:「一名热衷协作的开发者在构建中学习期待与你交流技术、共同成长。」座右铭:「与其完美地观望不如踉跄地启程」

相关文章:

Java面向对象实战:从0到1手写奇偶判断工具类[特殊字符]新手保姆级教程

🌸你好呀!我是断弦承露🌟感谢陪伴~ 小白博主在线求友🌿 跟着小白学/Java/软件设计/鸿蒙开发/芯片开发📖专栏汇总:《软件设计师》专栏 | 《Java》专栏 | 《 RISC-V 处理器实战》专栏 | 《Flutter…...

OWASP靶场实战指南:从环境搭建到第一个SQL注入漏洞挖掘(含DVWA通关思路)

OWASP靶场实战指南:从环境搭建到第一个SQL注入漏洞挖掘 网络安全的世界就像一片未知的海洋,而靶场就是我们练习游泳的安全泳池。对于刚入门的新手来说,最大的困扰往往不是缺乏理论知识,而是不知道如何将所学付诸实践。OWASP靶场正…...

【人物传记】唯一一位两次获得诺贝尔物理学奖-约翰·巴

1 约翰巴丁简介 约翰巴丁(英语:John Bardeen,1908年5月23日—1991年1月30日[6])是一名美国物理学家和工程师。他是唯一一个两度获得诺贝尔物理学奖的人:第一次是在1956年与威廉肖克利和沃尔特布拉顿一起发明晶体管&am…...

将嵌套循环中的Java对象数组转换为HashMap以优化性能

本文旨在指导开发人员如何通过将嵌套循环转换为Hashmap来优化Java代码的性能,特别是当涉及到对象属性的相等性检查时。通过使用Hashmap的快速搜索特性,可以显著降低时间复杂性,提高代码执行效率。本文将提供详细的步骤和示例代码,…...

【实战指南】SVN SSL协议不兼容问题:从TLS版本冲突到降级解决方案

1. 当SVN遇上SSL:TLS协议冲突的典型症状 最近在帮团队排查SVN代码拉取问题时,遇到了一个经典的错误提示:"error running context: an error occurred during ssl communication"。这个看似简单的报错背后,其实是现代加密…...

别再手动调API了!用Dify+FastAPI+阿里云OSS,5分钟搭建一个自动化的文生视频服务

从零构建AI视频生成流水线:DifyFastAPIOSS全链路自动化实战 在内容创作领域,视频制作正经历着从手工剪辑到AI生成的范式转移。传统视频制作需要专业软件、复杂操作和大量时间投入,而现代AI技术已经能够通过自然语言描述直接生成高质量视频片段…...

手把手教你用ESP8266 AT指令连接华为云IoT(附固件烧录与MQTT避坑指南)

从零玩转ESP8266:华为云IoT连接实战与深度排错指南 当你第一次拿到那块拇指大小的ESP8266模块时,可能不会想到这个售价不到20元的Wi-Fi芯片能成为物联网世界的通行证。作为全球使用量最大的IoT连接方案之一,ESP8266配合华为云物联网平台&…...

TEA加密算法实战:用Python和C语言实现QQ同款加密(附完整代码)

TEA加密算法实战:从原理到跨语言实现 在即时通讯和物联网设备中,数据安全传输一直是核心需求。TEA(Tiny Encryption Algorithm)以其轻量级、高效率的特性,成为资源受限环境下的理想选择。本文将深入探讨TEA算法家族的工…...

LFM2.5-1.2B-Thinking-GGUF惊艳效果:复杂逻辑推理题(如数理推导)分步求解

LFM2.5-1.2B-Thinking-GGUF惊艳效果:复杂逻辑推理题(如数理推导)分步求解 1. 模型能力概览 LFM2.5-1.2B-Thinking-GGUF是Liquid AI推出的轻量级文本生成模型,专为低资源环境优化设计。这个1.2B参数的模型采用GGUF格式&#xff0…...

告别调参玄学:手把手教你用‘黎卡提方程’为自动驾驶LQR控制器选择Q和R矩阵

自动驾驶轨迹跟踪实战:从黎卡提方程到LQR调参的工程化思考 当你在仿真环境中第一次看到自己设计的LQR控制器让车辆完美跟踪参考轨迹时,那种成就感难以言喻。但更多时候,我们面对的是震荡的超调曲线、缓慢的收敛速度,以及令人抓狂的…...

实测才敢推 AI论文工具推荐:2026最新测评与使用体验

2026年真正好用的AI论文工具,核心看生成的论文质量、低AI味、格式正确、学术适配四大指标。综合实测,千笔AI、ThouPen、豆包、DeepSeek、Grammarly 是当前最值得推荐的梯队,覆盖从免费到付费、从中文到英文、从文科到理工的全场景需求。 一、…...

Vue3项目救星:我是如何用Cursor的‘项目规则’功能,让团队新人一天上手的

Vue3团队协作革命:用Cursor项目规则实现代码规范的自动化治理 当新成员加入你的Vue3项目时,是否经历过这样的场景?新人提交的代码里混杂着选项式API和组合式API,路由命名忽而短横线忽而大驼峰,样式文件里散落着各种魔…...

遇到“用户对AIAgent进行提示词注入”怎么办?

文章目录先理解什么是“提示词注入”图片里的防护方法(两层)第一层:System Prompt 先贴“封条”第二层:输出端再加“安检门”总结先理解什么是“提示词注入” 你可以把 Agent(智能助手) 想象成一个 严格遵…...

Null 安全的 BigDecimal 比较器

本文旨在解决这个问题 Java 中对包含 BigDecimal 排序类型对象列表时,如何处理可能出现的空指针异常。自定义 BigDecimal 并结合比较器 Comparator.nullsFirst 可以实现正确的方法 BigDecimal 空值安全排序字段,避免程序崩溃,确保排序结果的正…...

麒麟V10系统下国产海量数据库安装全攻略(含内核参数优化与避坑指南)

麒麟V10系统下国产海量数据库安装全攻略(含内核参数优化与避坑指南) 在国产化技术快速发展的今天,越来越多的企业和机构开始采用国产操作系统和数据库产品。麒麟V10作为国产操作系统的代表之一,其稳定性和安全性得到了广泛认可。而…...

AI大模型岗位薪资揭秘:2026大模型岗位薪资,非常详细收藏我这一篇就够了

1. AI系统架构师 薪资范围:100万 - 200万/年 职位要求:需要具备全面的技术背景,精通系统架构设计,能够有效整合AI技术,提升系统性能。要求硕士及以上学历,计算机科学或相关专业背景。 目标院校&#xff1…...

别再死记硬背了!用Kahn算法搞定LeetCode 207课程表,保姆级C++代码逐行解析

从课程表到任务调度:Kahn算法在LeetCode 207中的实战应用 每次打开LeetCode看到那道课程表问题,你是不是也感到一阵头疼?先修课程、依赖关系、环状检测……这些概念堆在一起,简直比大学选课系统还让人崩溃。但别担心,今…...

Original PIPE vs. Serdes PIPE: Understanding the Key Differences in PHY Interface Design

1. 从零理解PIPE接口:物理层设计的通用语言 第一次接触PIPE接口时,我完全被各种缩写搞晕了。直到在某个PCIe项目中被时序问题折磨了整整两周后,才真正明白这个接口的重要性。简单来说,PIPE(PHY Interface for PCI Expr…...

day23 模拟2

...

【单片机】内核中断及NVICPending

红色框住的是M3内核中断,青色框住的默认打开,不可关闭中断(除NMI外可屏蔽)。包括SysTick在内无需NVIC_EnableIRQ,也无需在中断处理函数里清标志位。NVIC_SetPendingIRQ和NVIC_ClearPendingIRQ基本用不到,任…...

终极指南:如何用Save Image as Type一键转换网页图片格式

终极指南:如何用Save Image as Type一键转换网页图片格式 【免费下载链接】Save-Image-as-Type Save Image as Type is an chrome extension which add Save as PNG / JPG / WebP to the context menu of image. 项目地址: https://gitcode.com/gh_mirrors/sa/Sav…...

GStreamer性能优化指南:在Jetson TX2上实现4K视频低延迟处理(基于NVMM内存)

GStreamer性能优化指南:在Jetson TX2上实现4K视频低延迟处理(基于NVMM内存) 在嵌入式视觉和实时视频处理领域,NVIDIA Jetson TX2凭借其强大的GPU和专用硬件加速单元,成为工业级应用的理想选择。但要将这块开发板的性能…...

Protege新手避坑指南:搞懂‘类’、‘属性’和‘推理’到底怎么用(附常见错误排查)

Protege新手避坑指南:搞懂‘类’、‘属性’和‘推理’到底怎么用(附常见错误排查) 第一次打开Protege时,满屏的术语和复杂的界面可能会让你感到不知所措。作为一款强大的本体编辑工具,Protege确实有着陡峭的学习曲线。…...

SystemVerilog内存操作实战:手把手教你实现AXI VIP中的backdoor读写

SystemVerilog内存操作实战:AXI VIP中的backdoor读写技术解析 在硬件验证领域,AXI总线协议因其高性能和灵活性已成为行业标准。验证工程师经常需要与AXI VIP(Verification IP)交互,其中内存操作是最基础也最关键的环节…...

SpringBoot整合MQTT实战:手把手教你实现设备动态连接与主题订阅管理(附完整源码)

SpringBoot整合MQTT实战:动态连接与主题订阅管理的工程化实现 在物联网项目开发中,设备连接管理和消息路由的灵活性往往是系统设计的难点。想象这样一个场景:你的智慧农业系统需要随时接入新部署的土壤传感器,气象站设备可能因网…...

SpringBoot+Vue员工绩效系统实战:从数据库设计到权限控制的完整避坑指南

SpringBootVue员工绩效系统实战:从数据库设计到权限控制的完整避坑指南 在数字化转型浪潮下,企业绩效管理系统正从传统的Excel表格升级为智能化平台。本文将带您从零构建一个具备多维度考核、动态权限控制和可视化分析的绩效系统,重点解决实际…...

嵌入式 数据结构 线性表 学习笔记

线性表线性结构的特点是:1、存在唯一的一个被称作“第一个”的数据元素2、存在唯一的一个被称作“最后一个”的数据元素3、除第一个之外,集合中的每个元素均只有一个前驱4、除最后一个以外,集合中的每个数据元素均只有一个后继顺序表示和实现…...

Phi-4-Reasoning-Vision行业落地:教育领域图像题解与隐藏线索识别案例

Phi-4-Reasoning-Vision行业落地:教育领域图像题解与隐藏线索识别案例 1. 项目背景与价值 在教育领域,图像题解和隐藏线索识别一直是教学和考试中的难点。传统方法依赖人工标注和分析,效率低下且容易遗漏关键信息。Phi-4-Reasoning-Vision多…...

从RS485到TCP/IP:Modbus协议V1.1b3的三种组网方式对比(含WireShark抓包分析)

从RS485到TCP/IP:Modbus协议V1.1b3的三种组网方式深度实战解析 在工业自动化领域,Modbus协议已经服役超过40年,却依然保持着惊人的生命力。作为工程师,我们常常面临一个关键抉择:在RS485、Modbus和TCP/IP这三种主流组…...

【大模型工程实践③】RAG 基础架构与完整实现

【大模型工程实践③】RAG 基础架构与完整实现:从0到1跑通 作者:AI学习者 | 来源:大模型工程实践学习系列 | 更新:2026年3月 【理论要点速览】 学习本篇前,建议先掌握以下核心理论(点击跳转): ① 为什么需要RAG? ② RAG vs Fine-tuning vs Long Context的决策框架 ③ …...