自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 C语言笔记:通过两道题来理解结构体的作用

这两道题分别用了不同的方法,但是都展现了结构体的优点:通过将离散的数据属性封装为逻辑整体,结构体简化了数据传递与比较的复杂度,使的数据的调用变得方便快捷,而且体现了模块化编程的思想,使构造更加复杂的代码成为可能。

2026-11-07 21:16:00 221

原创 C语言笔记:指针

指针是 C 语言的灵魂,也是它与其他高级语言最显著的分水岭。它让程序能够直接操作内存:既可以高效地传递大块数据而不必复制整份副本,也能让函数修改调用者的变量,还能构建链表、树等动态数据结构,甚至直接访问硬件寄存器。指针既是 C 语言赋予程序员的自由,也是要求程序员承担的责任。也是副本,但它和外部拿到的是同一个地址 ,所以顺着这个地址写数据,改到的就是那唯一一份。函数调用时,实参的值会被复制一份给形参。指针可以被复制,复制的是地址值,而不是被指向的数据;而传指针时, 复制的不是值,是地址。

2026-10-22 08:58:24 95

原创 通过珠心算来理解数组下标与内容的关系

这种做法直观却笨重,且同一个数可能被多次计入答案,还需要额外去重,因此,第三重循环完全是在做无用功,我们仅仅是为了确认“和是否存在于集合中”。数组下标的运用,加深了我对计算机底层逻辑的理解:高效的算法往往不是算得更快,而是少算甚至不算,通过合理组织数据,让答案自己显现出来。:初学编程时,我们习惯把数组当作一只“装东西的盒子”:arr[i] 里存的是第 i 个数,所有运算都围绕盒子里的内容展开。:做完这道题我才明白,下标本身也可以是被存储的信息,只要值域允许,就能把“寻找”变成“定位”,把循环变成一次访问。

2026-10-05 16:09:47 213

原创 c语言入门:数组

它将大量同类型的数据存放在一块连续的内存空间中,使得我们可以通过一个统一的变量名和下标来高效地批量处理数据。#四结语:冒泡排序胜在“相邻交换”的简单直观,而插入排序胜在“寻找空位”的自适应高效。核心思想:将数组分为“已排序”和“未排序”两部分。就像打扑克牌时整理手牌一样。1.数组是一种可以保存数据的数组结构,C语言中数组没有默认值(会输出内存中的垃圾数据,因此,局部数组在定义时进行初始化是一个良好的编程习惯。核心思想:通过相邻元素的不断比较和交换,每一轮都将未排序部分的最大值“冒泡”到数组末尾。

2026-10-03 09:12:00 204

原创 C语言入门:输入与输出

一前言:C语言的输入与输出与Java有很大区别,与java语言可以直接输出内容不同,C语言中需要通过占位符来输出内容,这种差异并非 C 语言故意设置障碍,而是两种语言的设计哲学不同。Java 的打印方法接收的是对象,对象自带类型信息,虚拟机能在运行时自动判断"这是整数还是字符串"。而 C 语言没有运行时类型信息,printf 只是一个普通函数,它拿到的只是内存里的一串二进制数据——它无法自行分辨这段数据是整数、小数还是字符。占位符本质上是程序员与编译器之间的一份数据解读协议。

2026-10-02 16:17:29 192

原创 写五子棋游戏中遇到的一些问题

同样,判断代码写在了画棋子之后,但是画棋子代码之前已经有了存颜色和判断是否棋盘之外代码,判断已下棋子代码的原理,是判断矩阵对应位置数字是否不等于0,倘若把他放在存颜色之后,因为此时矩阵已不等于零,而并没有画棋子,会使代码在画棋子之前强制终止,因此应该把该代码放在存颜色代码之前,从下第2颗棋开始执行代码,始终使第一个代码的颜色可被存。编码过程中由于没有注意代码的顺序,导致很多逻辑错误,使代码无法判断棋子的输赢,是否已有棋子,棋子是否下到棋盘外,说明在JAVA语言中代码的逻辑是根据自上而下的顺序显明的。

2026-09-13 16:20:14 155

原创 Java AWT/Swing 五子棋游戏开发笔记二

getGraphics() 获取的画笔是临时的,一旦窗口需要重绘(如被遮挡、最小化还原),系统会调用 JPanel 的 paint 方法。重点反思了当前实现方式中存在的“图形易丢失”问题,并探讨了如何利用“数据驱动视图”的思想进行优化,迈向更健壮的程序设计。系统自动调用 Mpanel 的 paint 方法,paint 方法根据 shapeArr 中的数据,重新绘制棋盘和所有棋子。在 Mpanel 的 paint 方法中,不仅要绘制棋盘网格,还要遍历 shapeArr,将所有棋子绘制出来。

2026-09-12 09:50:50 75

原创 Java AWT/Swing 五子棋游戏开发笔记一

正确的做法是遵循“数据驱动视图”的原则,将所有需要显示的内容都作为数据保存起来,并在 paint 或 paintComponent 方法中统一绘制。getGraphics() 获取的画笔是临时的,一旦窗口需要重绘(如被遮挡、最小化还原),系统会调用 JPanel 的 paint 方法。而当前的 Mpanel.paint 方法只负责画棋盘网格,对已下的棋子一无所知,导致棋子全部消失。系统自动调用 Mpanel 的 paint 方法,paint 方法根据 chessList 中的数据,重新绘制棋盘和所有棋子。

2026-09-12 09:35:13 104

原创 Java 面向对象基础笔记:类与对象

通过“学生”这一实体类的定义与调用,我们将理清类与对象的关系,掌握 Java 类的三大组成要素,并理解面向对象编程的核心思想。代码对应:在提供的文档中,Student 就是一个类。逻辑复用:exercize 方法中的 for 循环展示了如何在方法内部处理复杂的业务逻辑(体能与 HP 的同步增长)。通过这个案例,我们完整地走通了 定义类 -> 创建对象 -> 赋值属性 -> 调用方法 的 Java 开发全流程。定义:对象是类的具体实例。一句话总结:类是图纸,对象是根据图纸盖出来的房子。

2026-08-27 17:32:55 162

原创 题解笔记:海伦公式求三角形面积

给定三角形三边长 a、b、c,利用海伦公式计算面积,结果四舍五入保留 1 位小数。️ 注意:题目描述中容易漏掉根号,实际公式需要开根。其中 p=(a+b+c)/2。格式化输出,保留 1 位小数。读入三边长 a、b、c。

2026-08-20 16:31:41 250

原创 图形重绘与数组学习小结

在开发画图工具的过程中,我遇到了一个问题:为什么画好的图形在窗口最小化或被遮挡后就会消失?我利用“数组”和“重绘机制”解决了这个问题。

2026-08-15 16:30:31 236

原创 Java继承与方法重写学习笔记

今天学习了Java中的继承和方法重写,通过一个简单的“水果”例子来加深理解。

2026-08-13 16:47:46 160

原创 Java 事件监听与登录验证教学

对象传递机制:由于事件处理类无法直接访问主界面的文本框对象,需通过构造方法或 Setter 方法将主界面的对象引用传递给事件处理类。属于引用类型中的接口(Interface),其内部方法只有定义(分号结尾)而无具体实现(方法体)。关键字实现接口,并强制重写(Override)接口中的抽象方法,将分号改为大括号并填充方法体。确定事件源:明确交互动作发生的组件,如登录按钮(Button),该类组件必须是实体组件。JLabel user = new JLabel(“登陆成功”);

2026-08-11 09:15:33 201

原创 简易画图工具

JButton jbu6 = new JButton(“橡皮擦”);JButton black = new JButton(“黑色”);JButton jbu2 = new JButton(“矩形”);JButton jbu5 = new JButton(“曲线”);JButton blue = new JButton(“蓝色”);JButton jbu = new JButton(“直线”);JButton red = new JButton(“红色”);if (“曲线”.equals(name)) {

2026-08-11 09:13:41 319

空空如也

空空如也

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

TA关注的人

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