- 博客(9)
- 收藏
- 关注
原创 [Java入门] 多态
我们将子类对象向上转型后就不能再使用子类特有的方法了,但是,有时我们需要调用子类特有的方法,那么仅需将向上转型后的子类对象再次强转为子类引用,就可以使用子类特有的方法了,这就是向下转型。这就体现出了向下转型的不安全,所以Java中为了提高向下转型的安全性,引入了 instanceof ,如果该表达式为true,则可以安全转换。:也称为后期绑定(晚绑定),即在编译时,不能确定方法的行为,需要等到程序运行时,才能够确定具体调用那个类的方法。与前面的代码是类似的,它们都是通过方法传参的方式实现向上转型的。
2025-03-27 22:38:53
712
1
原创 【C++】类与对象①
/ 类体:由成员函数和成员变量组成// 一定要注意后面的分号class为定义类的关键字ClassName为类的名字,{}中为类的主体,注意类定义结束时后面分号不能省略。类体中内容称为类的成员:类中的变量称为类的属性或成员变量;类中的函数称为类的方法或者成员函数。类的两种定义方式声明和定义全部放在类体中,需注意:成员函数如果在类中定义,编译器可能会将其当成内联函数处理。如图:。如下图:一般情况下,更期望采用第二种方式。
2024-10-24 00:04:28
610
原创 【C++】入门②
在早期C/C++中auto的含义是:使用auto修饰的变量,是具有自动存储器的局部变量。auto不再是一个存储类型指示符,而是作为一个新的类型指示符来指示编译器,auto声明的变量必须由编译器在编译时期推导而得。return 10;auto b = a;//auto e;无法通过编译,使用auto定义变量时必须对其进行初始化return 0;打印结果:intcharint需要注意的是。
2024-10-20 22:34:16
680
1
原创 【C++入门】①
在C++中,命名空间(Namespace)是一种将标识符组织在一起的方式,用于防止名字冲突。它可以防止全局命名的冲突,让你的代码更容易维护,也可以帮助控制程序的可见性,避免在全局命名空间中引入不必要的名字。例如以下代码:可以看出上述代码编译出错,它的错误是所定义的变量跟库里的函数名冲突,所以编译失败,这时候C++引入的命名空间解决了这类命名冲突问题。下面给出命名空间的定义。2.1.1正常的命名空间定义。
2024-10-04 16:21:25
583
3
原创 [数据结构] 八大排序
其基本思想是选择一个基准值,通过一趟排序将待排序的数据分割成独立的两部分,其中一部分的所有数据都比另一部分的所有数据要小,然后再递归地对这两部分进行排序,以达到整个数据变成有序序列。是一种简单的排序算法。堆排序的平均时间复杂度为。第二步:cur开始往后走,如果遇到比key小的值,则++prev,然后交换prev和cur指向的元素,再++cur,如果遇到比key大的值,则只++cur。,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部的排序记录,在排序过程中需要访问外存。
2024-09-28 14:09:41
1914
原创 【数据结构】二叉树
该算法从堆的根节点开始,通过比较和交换节点值,将根节点调整到其在堆中的正确位置,以确保堆的每个父节点的值都大于或等于其子节点的值(在最大堆中),或者小于或等于其子节点的值(在最小堆中)。我们常见的二叉树的结构叫逻辑结构如下图1,这是我们自己想象出来的二叉树的样子,但实际上二叉树并不是就像图中所示的那样,二叉树真正的结构,也叫物理结构,是像数组一样每个数据一行排开,如图2,图2所示及是实实在在。也就是说,如果一个二叉树的层数为K,且结点总数是(2^k) -1 ,则它就是满二叉树。如果二叉树为空,则退出;
2024-09-18 22:23:06
2283
2
原创 简单的自我介绍
我是一名双非一本学生,现在已经大二了,我运气很好,在家乡一所实力较弱的高中里考上了一本,我所选的专业为智能科学与技术。对于我来说,选择这个专业最主要的原因是认为赚钱,其次计算机又是主流专业,所以选择走了这条路,但当时的我对这些计算机编程一点都不了解,在大一我才开始接触编程语言,在接触后我才发现,能用编程语言达到自己目的很有成就感,这大大的激起了我的兴趣。在我在实验课上完成了老师交代的第一个任务时,正想向周围同学炫耀的时候,发现他们正在打着我看不懂的代码,这又大大的打击了我。
2024-09-07 21:37:14
430
3
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人