自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Java学习-抽象类和接口

当一个类不能描述一个具体对象时,我们可以将这个类定义为抽象类。在语法上就是被 abstract 关键字修饰类就是抽象类,在抽象类中被 abstract 修饰的方法就是抽象方法。

2025-07-18 22:43:14 611 1

原创 Java学习-多态

那么此时问题出现了,在上面可以看到animal也是父类引用,在父类和子类中都有eat方法,为什么这里调用的是子类的eat方法?在上述例子中就重写了Animal类中的eat方法,在Test类中通过父类引用Dog对象来调用eat方法,此处的。具有很强的扩展性,同时可以降低圈复杂度,可以看到在上面例子中,增加其他类时候不需要对test方法进行修改。在构成重写时,返回值类型可以不同但是必须要有父子类关系,此时也构成重写,叫做。以上面的例子,如果我们要画圆,矩形,圆,矩形,花,没有学多态时我们这样写。

2025-07-14 22:35:40 814 3

原创 Java学习-继承

来看两端代码来理解为什么要继承我们可以看到在Cat类和Dog类中都有age,name,sleep成员,这样就显得代码很冗余,此时通过继承可以减少代码冗余,达到简洁形式由于Cat和Dog都是动物,所以我们可以创建一个Animal类,将Dog类和Cat类中相同的特性提取出来放在Animal类中。这时候通过extends关键字来继承Animal类,将Animal类称为,而Dog类和Cat类称为。以上通过继承共性抽取,实现代码的复用。

2025-07-12 19:20:27 812

原创 Java学习-类和对象二

在Java中不仅支持导入已有的包,同时我们也可以自己定义包进行导入借着输入包名就行,这样就定义了一个包,在包里面我们也可以定义类在文件上面就会显示这个类实在哪个包下面,同时这个包是一个路径名,在你磁盘也会有具体路径在Java中三大特性封装,继承,多态,在这就简单介绍一下封装特性。封装就好像一个黑壳子,就像电脑,我们不需要知道内部有多复杂,只需要知道怎么用就行。而。

2025-05-29 21:40:58 1069

原创 Java学习-类和对象一

/创建类class Dog{//属性(成员变量)//行为(成员方法)class是创建类的关键字,Dog是类名,{主体,包括成员变量,成员方法}我们可以想想Dog有什么属性,行为都可以写在主体中(每个人的认知不懂,写出的属性和行为都可能有区别)//属性// 名字//年龄//品种//行为System.out.println(name + "在睡觉~");System.out.println(name + "在吃饭~");

2025-05-27 23:07:50 868 1

原创 Java学习-数据类型与变量

常量即程序运行时,固定不变的量称为常量,例如;语句,无论程序何时运行,输出结果都是Hello World,也就是说"Hello World"就是字面常量。

2025-05-23 18:02:22 845

原创 动态顺序表

结构体内部成员arr是一个指向SLDataType类型的指针,用于指向顺序表在内存中存储数据的起始位置。int size;表示顺序表当前有效数据的个数,记录当前顺序表实际存储数据数量情况。;表示当前顺序表所分配的内存空间大小,也就是顺序表最多能容纳的元素个数。最后用typedef为结构体定义一个新的名字SL,在后续代码可以使用SL来表示structSeqList这种结构体类型,方便代码书写和使用。至此,顺序表的功能已经完成,顺序表本质上就是基于数组实现的数据结构。

2025-04-22 15:32:58 862

原创 C语言动态内存管理

但是上述开辟空间的方式有两个特点:空间开辟大小是固定的数组在声明的时候,必须指定数组的长度,数组空间一旦确定了大小就不能调整但是对于空间的需求,不仅仅是上述的情况。有时候我们需要的空间大小在程序运行的时候才能知道,那么数组的编译时开辟空间的方式就不能满足C语言就引入了动态内存开辟,让程序员自己可以申请和释放空间,大大增强了灵活性。

2025-04-20 16:39:19 996 1

原创 结构体内存对齐

首先我们要理解为什么要内存对齐,这是因为计算机硬件在读取数据的时候,通常按照特定字节(如4字节,8字节)为单位进行读取,如果数据存储地址未对齐,CPU可能需要进行多次读取和额外处理,才能获取到完整的数据,这就大大降低了访问效率。如果在嵌套了结构体的情况下,嵌套结构体成员对齐到自己成员中最大对齐数的整数倍处,结构体的整体大小就是所有最大对齐数(含嵌套结构体中成员的对齐数)的整数倍。结束于偏移23,因此从偏移24开始(占8字节,偏移24-31)从偏移4开始(占4字节,偏移4-7)。

2025-04-19 23:03:38 677

原创 qsort函数和qsort函数的模拟实现

2.交换函数:首先我们想把不同数据类型都可以进行交换,如若使用下标进行交换单纯+i,那么字符串则无法进行,一个整型字节大小是4,字符型直接加一的话跳过了四个字符,则无法做到完全交换,由此可以想到将参数强制类型转化为字符型,这样就避免了上述问题。如果第一个参数大于第二个参数,应返回大于 0 的值。对上述冒泡函数进行改造模拟qsort函数,首先我们可以看到qsort函数有四个参数,那么我们改写的函数也应有四个参数,此为第一处修改。comper:一个指向比较函数的指针,需用户自行定义,用于决定两个元素的顺序。

2025-04-10 16:21:44 400 1

原创 关于函数指针数组和转移表的简单实现

我们可以通过类比的方法来理解整型数组 int arr[],浮点型数组 float arr[],字符数组 cahr []等等.....都是将其存储在数组里而函数指针数组也是数组,我们可以知道其是将函数地址存储到数组里面定义:函数指针是一种特殊的数组,数组中的每个元素都是一个函数指针。这就意味着该数组可以存储多个函数的地址,从而能根据不同的条件或索引来调用不同的函数,为程序提供了更高的灵活性和拓展性。下面我将从函数指针数组的定义,初始化,使用等方面来介绍。

2025-04-03 18:35:06 345 2

空空如也

空空如也

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

TA关注的人

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