- 博客(26)
- 收藏
- 关注
原创 Java—认识异常
Java 中虽然已经内置了丰富的异常类, 但是并不能完全表示实际开发中所遇到的一些异常,此时就需要维护符合我们实际情况的异常结构.例如, 我们实现一个用户登陆功能.if(!System.out.println("用户名错误!");return;if(!System.out.println("密码错误!");return;System.out.println("登陆成功!");
2024-05-31 18:38:28
1051
原创 认识String类
由于String的不可更改特性,为了方便字符串的修改,Java中又提供StringBuilder和StringBuffer类。这两个类大部分功能是相同的,这里介绍 StringBuilder常用的一些方法,其它需要用到了大家可参阅StringBuilder在线文档方法功能在尾部追加,相当于String的+=,可以追加:boolean、char、char[]、double、float、int、long、Object、String、StringBuff的变量获取index位置的字符获取字符串的长度。
2024-05-31 18:37:57
980
原创 图书管理系统
我们采取面向对象的编程思想,将整个图书管理系统抽象出多个对象,然后通过各个对象之间的交互来完成我们的整体设计需求我们整体的设计框架如下图:对于不同的板块,我们分成3个包,一个关于书籍,一个关于用户,一个关于操作对应我们上述结构图我们如下设计: 我们应该提供书籍的相关信息: 为了体现面向对象的封装特性,我们将这些字段信息设为private,然后在通过set和get方法来实现对其进行访问书架(BookList)书架主要是用来存放书籍的,因此我们只需要提供以下俩个信息就可以:为了体现面向对象的封装性,我
2024-05-25 11:57:41
512
原创 Java继承和多态
Java中使用类对现实世界中实体来进行描述,类经过实例化之后的产物对象,则可以用来表示现实中的实体,但是现实世界错综复杂,事物之间可能会存在一些关联,那在设计程序是就需要考虑。比如:狗和猫,它们都是一个动物。通过观察上述代码会发现,猫和狗的类中存在大量重复,如下所示:那能否将这些共性抽取呢?
2024-05-19 17:17:22
651
原创 超详细Java类与对象
面相对象程序设计关注的是对象,而对象是现实生活中的实体,比如:洗衣机。但是洗衣机计算机并不认识,需要开发人员告诉给计算机什么是洗衣机。上图左侧就是对洗衣机简单的描述,该过程称为对洗衣机对象(实体)进行抽象(对一个复杂事物的重新认知),但是这些简化的抽象结果计算机也不能识别,开发人员可以采用某种面相对象的编程语言来进行描述,比如:Java语言。在java中定义类时需要用到class关键字,具体语法如下// 创建类field;// 字段(属性) 或者 成员变量method;// 行为 或者 成员方法。
2024-05-16 18:36:11
934
原创 数据结构—单链表
介绍一下单链表的英文名——single linked list,我们简写成SL(区别于顺序表的SeqList或者SQL)。注意:next指针的类型是SListNode*,千万不要写成SLTDataType*,因为next指针是结构体指针,是用来指向下一个结点的}SLTNode;
2024-04-16 17:06:00
1016
原创 数据结构—顺序表实现通讯录
1. 能够保存用户信息:姓名,性别,年龄,电话,地址等2. 添加联系人信息3. 删除指定联系人4. 查找指定联系人5. 修改联系人信息6.显示联系人信息。
2024-04-15 13:25:35
938
1
原创 数据结构——顺序表
线性表(linear list)是n个具有相同特性的数据元素的有限序列。线性表是一种在实际中广泛使 用的数据结构,常见的线性表:顺序表、链表、栈、队列、字符串...线性表在逻辑上是线性结构,也就说是连续的一条直线。但是在物理结构上并不一定是连续的, 线性表在物理上存储时,通常以数组和链式结构的形式存储。
2024-04-14 15:22:55
1033
1
原创 理解文件操作
磁盘(硬盘)上的⽂件是⽂件。但是在程序设计中,我们⼀般谈的⽂件有两种:程序⽂件、数据⽂件(从⽂件功能的⻆度来分类的)。函数名功能适⽤于fgetc字符输⼊函数所有输⼊流fputc字符输出函数所有输出流fgets⽂本⾏输⼊函数所有输⼊流fputs⽂本⾏输出函数所有输出流fscanf格式化输⼊函数所有输⼊流fprintf格式化输出函数所有输出流fread⼆进制输⼊文件输入流fwrite⼆进制输出文件输出流。
2024-03-22 23:36:13
772
3
原创 动态内存管理
C/C++程序内存分配的⼏个区域:1. 栈区(stack):在执⾏函数时,函数内局部变量的存储单元都可以在栈上创建,函数执⾏结束时这些存储单元⾃动被释放。栈内存分配运算内置于处理器的指令集中,效率很⾼,但是分配的内存容量有限。栈区主要存放运⾏函数⽽分配的局部变量、函数参数、返回数据、返回地址等。《函数栈帧的创建和销毁》2. 堆区(heap):⼀般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收。分配⽅式类似于链表。3. 数据段(静态区):(static)存放全局变量、静态数据。
2024-03-21 12:06:01
1987
3
原创 ⾃定义类型:联合和枚举
像结构体⼀样,联合体也是由⼀个或者多个成员构成,这些成员可以不同的类型。但是编译器只为最⼤的成员分配⾜够的内存空间。联合体的特点是所有成员共⽤同⼀块内存空间。所以联合体也叫:共⽤体。给联合体其中⼀个成员赋值,其他成员的值也跟着变化。输出结果:4为什么是4呢?
2024-03-20 22:08:15
921
1
原创 ⾃定义类型:结构体
位段的声明和结构是类似的,有两个不同:1. 位段的成员必须是 int、unsigned int 或signed int ,在C99中位段成员的类型也可以选择其他类型。2. 位段的成员名后边有⼀个冒号和⼀个数字。int _b:5;int _c:10;int _d:30;A就是⼀个位段类型。那位段A所占内存的⼤⼩是多少?
2024-03-18 20:08:29
543
原创 C语言的内存函数以及数据在内存中的存储
其实超过⼀个字节的数据在内存中存储的时候,就有存储顺序的问题,按照不同的存储顺序,我们分为⼤端字节序存储和⼩端字节序存储,下⾯是具体的概念:⼤端(存储)模式:是指数据的低位字节内容保存在内存的⾼地址处,⽽数据的⾼位字节内容,保存在内存的低地址处。⼩端(存储)模式:是指数据的低位字节内容保存在内存的低地址处,⽽数据的⾼位字节内容,保存在内存的⾼地址处。上述概念需要记住,⽅便分辨⼤⼩端。
2024-03-17 14:40:05
1031
1
原创 字符函数和字符串函数
在我们编程的时候,我们经常要处理一些字符和字符串,为了方便操作字符和字符串,c语言标准库中提供了一系列库函数,接下来我们就学习下这些函数。
2024-03-12 15:23:54
1400
5
原创 理解递归函数
递归是学习C语⾔函数绕不开的⼀个话题,那什么是递归呢?递归其实是⼀种解决问题的⽅法,在C语⾔中,递归就是函数⾃⼰调⽤⾃⼰。上述就是⼀个简单的递归程序,只不过上⾯的递归只是为了演⽰递归的基本形式,不是为了解决问题,代码最终也会陷⼊死递归,导致栈溢出(Stack overflow)。
2024-03-11 14:57:18
866
原创 深入了解指针(5)
在学习操作符的时候,我们学习了 sizeof , sizeof 计算变量所占内存内存空间⼤⼩的,单位是字节,如果操作数是类型的话,计算的是使⽤类型创建的变量所占内存空间的⼤⼩。sizeof 只关注占⽤内存空间的⼤⼩,不在乎内存中存放什么数据。
2024-03-08 20:43:55
444
1
原创 深入了解指针(4)
回调函数就是⼀个通过函数指针调⽤的函数。如果你把函数的指针(地址)作为参数传递给另⼀个函数,当这个指针被⽤来调⽤其所指向的函数时,被调⽤的函数就是回调函数。回调函数不是由该函数的实现⽅直接调⽤,⽽是在特定的事件或条件发⽣时由另外的⼀⽅调⽤的,⽤于对该事件或条件进⾏响应。
2024-03-07 18:56:17
692
原创 深入了解指针(3)
在指针的类型中我们知道有⼀种指针类型为字符指针 char*;代码 const char* pstr = "hello bit.";特别容易让同学以为是把字符串 hello bit 放到字符指针 pstr ⾥了,但是本质是把字符串 hello bit. ⾸字符的地址放到了pstr中。上⾯代码的意思是把⼀个常量字符串的⾸字符 h 的地址存放到指针变量 pstr 中。这样写会报错,因为hello world!是字符常量,不能改变,所以不能通过*p来改变。输出为:hello world!
2024-03-05 18:52:23
1099
原创 深入了解指针(2)
这⾥我们使⽤ &arr[0] 的⽅式拿到了数组第⼀个元素的地址,但是其实数组名本来就是地址,⽽且是数组⾸元素的地址,我们来做个测试。 我们发现数组名和数组⾸元素的地址打印出的结果⼀模⼀样,数组名就是数组⾸元素(第⼀个元素)的地址。这时候有同学会有疑问?数组名如果是数组⾸元素的地址,那下⾯的代码怎么理解呢?输出的结果是:40,如果arr是数组⾸元素的地址,那输出应该的应该是4/8才对。其实数组名就是数组⾸元素(第⼀个元素)的地址是对的,但是有两个例外:• sizeof(数组名),sizeof中单独
2024-03-04 12:00:00
1380
1
原创 深入了解指针(1)
在讲内存和地址之前,我们想有个⽣活中的案例:假设有⼀栋宿舍楼,把你放在楼⾥,楼上有100个房间,但是房间没有编号,你的⼀个朋友来找你玩,如果想找到你,就得挨个房⼦去找,这样效率很低,但是我们如果根据楼层和楼层的房间的情况,给每个房间编上号,如:⼀楼:101,102,103...⼆楼:201,202,203.......有了房间号,如果你的朋友得到房间号,就可以快速的找房间,找到你。⽣活中,每个房间有了房间号,就能提⾼效率,能快速的找到房间。如果把上⾯的例⼦对照到计算机中,⼜是怎么样呢?
2024-03-03 12:37:46
952
原创 C语言详细操作符讲解
/代码1:变量的定义int x;int y;}p1;//声明类型的同时定义变量p1//定义结构体变量p2//代码2:初始化。struct Stu //类型声明//名字int age;//年龄//初始化//指定顺序初始化//代码3int data;//结构体嵌套初始化//结构体嵌套初始化。
2024-03-02 17:40:46
1061
原创 C语言设计属于自己的扫雷游戏完整代码
以下是我设计的扫雷游戏的代码。明天将更新我的设计思路。第二部分 game.c。第一部分game.h。第三部分test.c。
2024-02-01 01:32:21
244
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人