自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(36)
  • 收藏
  • 关注

原创 Java动态数组与泛型实现

本文手写泛型动态数组ZArrayList<E>,从泛型原理、1.5倍扩容机制到增删查改全功能实现,深入剖析其底层逻辑。基于JDK 17,解析泛型擦除、数组扩容策略与时间复杂度,揭示ArrayList高效背后的优化设计,助力开发者突破“会用”瓶颈,真正理解集合框架核心机制。

2026-10-22 14:18:13 236

原创 跟Tju学C++(程序设计原理4)

程序需具备“判断”能力才能避免荒谬结果。通过if、if-else等分支语句,程序可根据条件选择执行路径。从半径合法性检查到成绩评级,合理使用条件判断可提升代码逻辑性与鲁棒性。关键在于:先理清“什么情况下做什么”,再翻译为布尔表达式,注意边界值与判断顺序,避免冗余或错误匹配。

2026-10-20 16:13:55 232

原创 跟Tju学C++(程序设计原理3)

本文介绍C++中bool与char两种基础类型。bool仅取值true或false,用于逻辑判断,由关系运算符生成;注意=(赋值)与==(比较)的区别,避免常见错误。char本质为1字节整数,存储单个字符,通过ASCII码映射,支持字符与数值间的转换。强调单引号表示字符、字符串需用双引号,避免混淆。理解二者“非黑即白”与“字符即整数”的特性,是掌握程序逻辑与文本处理的关键。

2026-10-19 21:22:29 130

原创 跟Tju学C++(程序设计原理2)

本文为C++入门指南,基于《程序设计原理》第二章内容整理。通过“输入两数求和”实例,讲解变量作用、标识符命名规则、数据类型(如int、double、char、bool)、常量定义及运算符使用。重点强调变量声明与赋值、整数除法与取余特性、复合赋值与自增自减运算,并提醒初学者注意强类型语言的规范性。建议边学边敲代码,理解“=非等于”的编程逻辑,掌握基础语法,为后续学习打下坚实基础。

2026-10-15 14:43:01 306

原创 跟Tju学C++(程序设计原理1)

本课程旨在掌握结构化与面向对象程序设计方法,熟练使用Dev C++等开发工具,培养逻辑思维与良好编程风格。通过认识计算机组成、工作原理及程序设计基本流程,学习C++语言编写首个程序,实现“Welcome to Tianjin University!”的输出,理解编译、运行与调试全过程,为后续编程学习奠定基础。

2026-10-13 09:43:53 180

原创 C语言基础知识(三)——————指针定义及作用

指针是存储内存地址的变量,本质是“门牌号”。普通变量存值,指针存地址,通过&取地址、*解引用。指针可实现函数间数据共享、动态内存管理与高效传参。多重指针(如二级指针)用于修改指针本身或构建复杂数据结构,如链表、动态二维数组。理解“地址的地址”是掌握指针的关键。

2026-10-06 14:37:23 375

原创 C语言核心语法

本文系统介绍C语言核心语法,涵盖程序结构、常用头文件(stdio.h、stdlib.h、math.h、string.h)及功能,重点讲解printf格式化输出、数据类型(整型、浮点型、字符型)、数组、指针与结构体。通过实例演示动态内存分配、字符串操作、数学函数调用及结构体定义与使用,强调内存管理、类型转换与安全编程规范,为初学者提供全面的C语言基础指南。

2026-10-05 22:37:35 368

原创 C语言基础知识(二)——————字符串操作与ASCII码运算

本文系统讲解了ASCII码的基础知识及其在字符串操作中的应用。通过字符与数字的ASCII码对应关系,实现了大小写转换、数字字符转数值、字符比较等常见操作,并介绍了利用ASCII码进行简单加密解密的方法。结合strlen函数和循环遍历,可对字符串逐字符处理,为后续字符串编程奠定基础。

2026-10-03 21:24:20 478

原创 C语言基础知识(一)————各类符号的含义与输入输出库(stdio)

本文介绍C语言中stdio.h头文件的使用,重点讲解占位符与转义符。占位符(如%d、%f)用于printf和scanf中标识变量类型与位置;转义符(如\n、\")解决特殊字符输入问题。通过printf输出文本与变量,scanf读取数据(但遇空格截断),改用fgets可完整读取含空格的字符串。fputs则用于原样输出字符串,支持错误检测与文件写入,避免格式化解析。掌握这些基础有助于高效进行标准输入输出操作。

2026-10-02 22:42:46 421

原创 从零学C:制表符\t、变量、scanf输入、分支判断全套练手源码

本文对比了C语言与Java在编程范式、内存管理、运行机制等方面的差异,介绍了C语言的入门语法:#include <stdio.h>、变量定义、格式化输出、scanf输入、运算符及if-else判断。通过矩形计算器实例,掌握数据处理与逻辑控制,为后续学习循环、函数和指针奠定基础。附练习题:三位数逆序输出与闰年判断。

2026-09-16 21:45:27 239

原创 暑假Java知识点回顾:类与对象知识总结

介绍我们在暑假学习的内容

2026-08-25 22:10:20 474

原创 从零手写Java飞机躲障碍游戏|Swing绘图、鼠标跟随、计时器碰撞检测实战(五)

摘要:本文基于Java Swing开发飞机躲避障碍物小游戏,对上一版本遗留问题进行修复。解决护盾永久无敌、清屏后障碍物不再生成、游戏计时不准等Bug;使用系统时间戳实现开局3秒障碍物延时出场,避免sleep阻塞UI线程;完善护盾、清屏、火力增强三套道具完整逻辑,重构碰撞检测代码,修复鼠标与飞机中心点错位问题。同时记录Swing图形开发过程中遇到的真实踩坑,体会面向对象封装、职责分离的编程思想,适合Swing初学者参考学习。

2026-08-21 22:49:50 841

原创 从零手写Java飞机躲障碍游戏|Swing绘图、鼠标跟随、计时器碰撞检测实战(四)

本文基于 Java Swing 实现飞机躲避障碍物小游戏,重点介绍碰撞检测、背景音乐接入和 IDEA 资源管理。上期已完成基础框架搭建,本期主要实现: 碰撞检测:采用矩形碰撞算法判断飞机与障碍物的接触,触发游戏结束逻辑,包括停止生成障碍物、计时器终止和显示结束画面。 背景音乐:通过 Java 的 Clip 组件实现音频循环播放,详细讲解资源文件应放置在 resources 目录下的原因,解析 getResourceAsStream 的类路径加载机制,解决常见文件路径问题。 技术要点:介绍 Clip 组件的完

2026-08-20 22:33:02 677

原创 从零手写Java飞机躲障碍游戏|Swing绘图、鼠标跟随、计时器碰撞检测实战(三)

本文基于Java Swing实现飞机躲避障碍物小游戏,在原有基础上新增鼠标滚轮发射子弹、矩形碰撞检测功能,子弹击中障碍物后障碍物销毁并增加积分;将纯色图形替换为透明PNG图片完成素材渲染。项目采用面向对象思想,划分绘图面板、事件监听器、实体模型类,使用数组结合isAlive存活标记管理游戏对象。文中记录Swing绘图、图片加载、鼠标事件开发踩坑,适合Swing初学者学习参考。

2026-08-19 21:47:46 619

原创 从零手写Java飞机躲障碍游戏|Swing绘图、鼠标跟随、计时器碰撞检测实战(二)

文章摘要: 本期开发在飞机小游戏基础上新增计时器与积分系统,重点讲解了Java四种计时器方案的对比选择。通过JPanel重构界面提升可维护性,采用Swing Timer保障GUI线程安全,避免多线程并发问题。实现功能包括:60秒倒计时机制、基础得分与连击奖励的积分系统、实时数据显示界面。技术要点:分析Thread+sleep方案引发的"诡异bug"现象及原因,强调Swing组件必须通过EDT线程更新,推荐使用javax.swing.Timer作为Swing游戏开发首选方案。

2026-08-18 23:20:48 619

原创 从零手写Java飞机躲障碍游戏|Swing绘图、鼠标跟随、计时器碰撞检测实战(一)

本文介绍了使用Java Swing开发竖版飞机躲避障碍物小游戏的入门教程。主要内容包括: 基础框架搭建: 创建固定尺寸的Swing窗口 设置背景图片和开始按钮 实现游戏状态切换(开始界面/游戏中) 核心技术点: 使用MouseMotionListener实现鼠标跟随控制飞机移动 Graphics绘图绘制游戏元素 状态机管理游戏流程 实现步骤: 主窗体创建和基本配置 界面组件添加和事件监听 鼠标移动监听实现飞机跟随效果 该教程通过实战项目帮助初学者掌握Swing游戏开发的核心技术,为后续添加碰撞检测、积分系统

2026-08-17 19:47:46 388

原创 【Java 面向对象封装实战】基于 Swing 绘图系统实现图形功能封装(三角形 / 多边形通用设计)

摘要: 封装是Java面向对象的核心特性,通过将类属性私有化(private)并对外提供受控的get/set方法,实现数据保护与安全访问。其核心价值在于防止数据篡改(如SQL注入)、增强校验能力(如年龄合法性)并降低代码耦合。标准步骤包括:1)使用访问修饰符(private/protected/public)隐藏数据;2)通过公开方法暴露操作接口。以绘图程序为例,DrawRecord类封装绘图模式与坐标数据,仅允许通过方法修改,而ShowUI类通过监听器(GoListener)协调用户交互,体现封装与解耦的

2026-08-15 10:06:50 602

原创 Java Swing实战:双人交互性中国象棋对战系统开发全记录(二)

棋子移动范围移动方式特殊规则代码方法名兵/卒全棋盘1. 未过河:只能向前一格2. 已过河:可向前、左、右一格1. 过河后能力增强2. 不能后退士/仕己方九宫沿九宫斜线走一格1. 不能走出九宫2. 不能横竖移动canMoveShi马全棋盘“日”字形(先直一格再斜一格)蹩马腿:前进方向紧邻位置有棋子则不能跳象/相己方半场“田”字形(沿对角线走两格)1. 不能过河2. 塞象眼:“田”字中心有棋子则不能走车全棋盘横竖任意格(直线)无特殊阻挡规则(可直线吃子)canMoveJu。

2026-08-11 20:41:18 474

原创 Java Swing实战:双人交互性中国象棋对战系统开发全记录(一)

本文介绍了基于Java Swing开发的中国象棋双人本地对战程序。项目从零开始构建,采用二维数组存储棋子数据,实现完整的象棋规则逻辑,包括棋子移动、吃子、回合控制等核心功能。 项目亮点: 原生Java开发,不依赖游戏引擎 完整实现了车、马、炮等所有棋子的特殊走法规则 包含蹩马腿、炮架、将帅对视等专业规则判定 可视化界面支持选子预览和交互操作 未来计划扩展人机对战、对局回放等功能。该项目既是对Java GUI编程的实践,也展现了传统棋类游戏的数字化实现方式。

2026-08-11 19:11:19 393

原创 Jave Swing递归实战:手把手实现谢尔宾斯基三角形分型绘图

摘要:本文介绍了基于Java Swing和递归算法实现的交互式谢尔宾斯基三角形绘制程序。用户可通过鼠标拖拽自定义底边,程序自动计算顶点坐标并递归渲染分形图案。文章详细阐述了等边三角形坐标推算、递归算法设计、界面搭建及交互实现等核心环节,同时总结了常见问题排查方法,并展望了后续扩展其他分形图形的计划。该项目将数学几何与编程实践相结合,直观展示了分形自相似的独特美感。(149字)

2026-08-10 16:09:16 368

原创 游戏开发---五子棋4.0(三)

对五子棋3.0的进一步优化,类与对象的使用,封装知识的解释

2026-07-30 07:28:19 351

原创 游戏开发---五子棋(二)

五子棋游戏开发摘要 本文介绍了五子棋游戏的完善方案,主要包括界面实现和功能增强两部分: 界面实现 创建继承JFrame的自定义窗体类,重写paint方法绘制棋盘 定义Data接口集中管理棋盘参数(坐标/尺寸/行列数) 实现鼠标监听器,处理落子逻辑和棋子颜色切换 使用Graphics对象绘制棋子和棋盘网格 功能增强 棋子保存:采用二维数组记录棋子状态(行/列/颜色标识) 悔棋功能:通过按钮事件定位并清除最后落子数据 棋子类设计:使用this关键字管理棋子属性(位置/颜色) 持久化显示:在paint方法中遍历数

2026-07-29 22:36:37 542

原创 游戏开发---五子棋(一)

本文介绍了五子棋游戏开发的1.0和2.0版本实现过程。1.0版本通过JFrame创建窗体,使用Graphics类绘制棋盘和棋子,实现了基本的黑白交替落子功能,但存在棋子落点不精准、交互方式不直观等问题。2.0版本进行了优化:引入Date接口存储棋盘参数,改进棋盘绘制算法确保棋子精准落在交叉点,简化了交互逻辑。两个版本都采用MVC架构,通过MyJFrame处理界面渲染,Go_bold/GoPlus作为主程序入口,MyMouseListener实现鼠标交互。2.0版本通过数学计算实现棋盘坐标映射,解决了1.0版

2026-07-24 23:09:27 244

原创 用Graphics在Java中画图

本文介绍了Java中Graphics类的绘图功能,通过继承JFrame并重写paint()方法实现2D图形绘制。主要内容包括:1) Graphics类作为AWT包下的绘图基类,支持线条、形状、文本绘制及颜色控制;2) 绘图坐标以左上角为原点,需考虑窗体标题栏的遮挡;3) 提供了完整示例代码,演示了文字、直线、矩形、圆形、圆弧、多边形等基本图形的绘制方法,以及颜色和字体的设置。该示例可作为Java图形编程的基础入门,展示了如何创建简单GUI绘图应用。

2026-07-22 22:56:39 312

原创 开发一个简单的计算器程序(四)

本文介绍了如何用Java实现一个简单的计算器程序。主要内容包括:1) 创建计算器窗口并设置基本属性;2) 添加显示屏文本框并设置样式;3) 使用数组批量创建计算器按钮;4) 实现按钮监听功能,包括数字输入、运算符处理和清零操作。程序通过两个变量num1和num2存储运算数,使用字符串op记录运算符,最终完成加减乘除、取余等基本运算功能。代码示例展示了如何通过ActionListener接口处理按钮事件,并在文本框中显示运算结果。

2026-07-20 21:16:15 150

原创 开发一个简单的计算器程序(三)

本文介绍了Java数组的基本概念和使用方法。数组是存储固定数量相同类型元素的对象容器,具有数据类型一致、对象属性和默认初始化等特点。文章详细说明了数组的两种创建方式(初始化数组和指定长度未初始化数组),并解释了数组的访问、存储、删除等操作。通过三个练习(找最大值、数组求和、比较左侧元素个数)演示了数组的实际应用。最后指出数组可用于简化计算器按钮的创建过程,避免重复代码。数组是Java编程中重要的基础数据结构,掌握其使用方法能有效提高编程效率。

2026-07-20 19:51:13 162

原创 开发一个简单的计算器Java程序(二)

本文介绍了Java Swing中实现登录界面交互功能的关键技术。主要内容包括: 事件处理机制的核心概念: 事件(Event):如用户点击操作 监听器(Listener):通过实现ActionListener接口监听事件 事件处理代码:在actionPerformed方法中编写业务逻辑 具体实现步骤: 创建自定义监听器类LoginAction1 获取用户输入的账号密码 实现注册功能:保存用户信息 实现登录功能:验证账号密码 登录成功后跳转新界面显示用户信息 添加计算器功能跳转接口 关键代码: 按钮绑定监听器

2026-07-18 21:16:06 192

原创 开发一个简单的计算器Java程序(一)

本文介绍了使用Java开发登录界面的完整流程,主要包括三个部分:1. 界面开发的基本思路(类、方法、对象创建与调用);2. 登录界面的组成元素(可视化组件、元素规则、内容元素);3. 具体开发步骤和代码实现。通过JFrame创建窗体,使用FlowLayout进行流式布局,并添加按钮、标签、文本框等组件。文中详细展示了设置窗体属性、添加图片、调整组件尺寸等关键代码,最终实现了一个包含账号/密码输入框、登录按钮和背景图片的完整登录界面。完整代码示例演示了从窗体创建到组件布局的全过程。

2026-07-15 22:36:16 233

原创 Java基础语法7(参数与返回值)

本文介绍了Java方法中参数与返回值的作用: 参数是方法定义时声明的变量,在调用时接收具体值,用于方法内部逻辑运算。如数学函数中的自变量,不同输入产生不同结果。 返回值通过return语句将方法计算结果返回调用处,类型可分为void(无返回值)和具体数据类型。调用时需要用匹配类型变量接收返回值。 通过计算器示例展示了参数传递和返回值应用:add方法接收两个int参数返回其和,justice方法比较两数大小并输出结果。main方法演示了不同参数的调用和返回值处理过程,体现了参数与返回值在方法交互中的核心作用。

2026-07-14 21:45:36 201

原创 Java基础语法6(类与对象)

本文通过设计"扫清购物车"程序,阐述了类与对象的概念及其应用。文章首先定义类为包含属性和方法的模板,对象则是类的具体实例。随后展示了Java代码实现用户类(User),包含账号、密码、余额等属性和显示信息、购物等方法。重点讲解了购物车清空逻辑:检查商品数量→验证用户余额→完成购买或提示充值。程序流程包括用户验证、购物车状态检查、余额判断等核心功能,通过Random类生成随机价格,使用Scanner实现用户交互,完整演示了面向对象编程在实际场景中的应用。

2026-07-11 16:39:07 223

原创 Java基础语法5(输入与循环)

本文介绍了Java中Scanner类的使用方法和三种循环结构(while、for、do...while),并通过两个实例演示了如何运用这些知识。主要内容包括:1)Scanner类用于控制台输入,需导入java.util包;2)循环结构的语法和使用场景;3)第一个实例实现了通过年份和月份判断当月天数的程序,考虑了闰年规则;4)第二个实例演示了如何用循环判断一个数是否为素数。文章通过具体代码示例展示了编程逻辑的实现过程,帮助读者理解基础语法在实际问题中的应用。

2026-07-09 23:48:37 194

原创 Java基础语法4(判断语句2---switch语句)

本文通过税收计算案例对比了Java中switch和if...else语句的适用场景。if...else适合处理连续范围的判断(如根据工资计算税率),而switch更适合处理离散值的映射关系(如根据已知税率反推工资区间)。文章展示了两种语句的具体实现代码,并列举了switch在订单状态、用户权限、游戏指令等场景的应用。两者形成互补关系,if...else处理范围判断,switch处理精确匹配,开发者可根据具体需求灵活选择。

2026-07-09 16:26:13 190

原创 Java基础语法3(判断语句1---if和else)

本文通过商品打折案例介绍了Java中if...else分支语句的使用。文章首先说明if...else适用于多条件判断场景,演示了基本语法结构。重点通过两个实例进行讲解:1)50元以上商品打8折的简单案例,指出需考虑负数等边界条件;2)包含多级折扣和VIP会员的复杂案例,展示嵌套if...else实现阶梯折扣(满500打9折、满1000打8折等)和会员额外95折的逻辑。两个案例都采用double类型处理金额,并输出最终应付金额,帮助读者理解条件判断的实际应用。

2026-07-08 19:37:45 170

原创 Java基础语法2---运算符(下)

本文介绍了Java中常见的运算符类型及其用法。首先讲解了关系运算符(==、<、>、<=、>=、!=),其结果为布尔值true或false。然后阐述了逻辑运算符(&&、||、!)对布尔值的运算规则。接着介绍了三元运算符(条件?值1:值2)的条件选择功能。最后简要说明了位运算符、复合赋值运算符和运算符的优先级顺序,并通过代码示例演示了各种运算符的实际应用。文章包含完整的Java代码示例和运行结果,帮助读者理解各运算符的具体使用方法和运算规则。

2026-07-08 07:34:47 213

原创 Java基础语法2---运算符(上)

摘要:本文详解Java中三类基本运算符: 赋值运算符(=)用于变量赋值,支持值、变量或表达式; 算术运算符(+、-、*、/、%)执行数学运算,注意/为整除; 自增/自减运算符(++、--)区分前缀与后缀:前缀先运算后赋值(如++a),后缀先赋值后运算(如a++)。通过代码示例对比了不同用法的输出结果,强调运算顺序对结果的影响。

2026-07-07 23:37:00 201

原创 java基础语法1

这篇Java基础语法教程主要介绍了程序结构、打印语句和数据类型与变量三个部分。程序结构部分展示了如何定义类结构和程序入口;打印语句部分演示了输出不同类型数据的方法;数据类型与变量部分详细讲解了int、double、String等常用数据类型的使用,并通过矩形和圆形计算的示例展示了变量在计算中的应用,最后还给出了个人信息打印的综合案例。文章通过大量代码示例帮助初学者快速掌握Java基础语法。

2026-07-07 13:07:28 264

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除