自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 学生dgsgs

printf(" 专业为%s的学生有: 学号: %s, 姓名: %s, 性别: %c, 年龄: %d, 专业: %s\n",printf("学号: %s, 姓名: %s, 性别: %c, 年龄: %d, 专业: %s\n",printf("学生 %s 的信息修改成功.\n", name);printf("未找到姓名为 %s 的学生信息,无法修改.\n", name);printf("未找到专业为 %s 的学生信息.\n", zy);printf("未找到姓名为 %s 的学生信息.\n", name);

2024-06-23 16:42:24 767

原创 计算机网络期末复习

总的来说,在三次握手的过程中,SYN只会出现在前两次握手的过程,SYN的值都是1,ACK和ack有区别,ACK只会出现在第二次和第三次,都只为1,ack只会出现在第二次和第三次,变来变去的,第一次为J+1,第二次为K+1,seq出现在前两次,一次是j,一次是k,都是随机值,每一个值都只出现两次。2.物理层编码违例,这里会有曼切斯特编码和差分曼切斯特编码的区别,正常的信号在周期内会有高低变换,而违例的编码会出现持续的高电平和低电平,可以作为一个帧的结束标志。大的数据包相较于小的数据包消耗的令牌要多。

2024-06-17 21:07:32 498

原创 汇编语言-----开始到寄存器

想要将ax,bx中的数据变成物理地址,需要牢牢抓住ds这个寄存器,因为ds是偏移地址的寄存器,如果ds中的数值为21f0,那么就对应着地址为21f0的这个地址,使用语句 mov ax,[60]就是将21f0这个地址的第60为的值赋给ax.不能直接给ds赋值,需要先将想要的段地址段赋给bx,再使用mov语句赋值给ds。被除数:默认在AX或DX和AX中,如果除数为8位,被除数则为16位,默认在AX中存放,如果除数为16位,被除数为32位,在DX和AX中存放,DX存放高16位,AX存放低16位。

2024-06-08 20:57:21 377

原创 数据库原理及应用--事务

事务是一组操作的集合,是一个不可分割的工作单位,事务会把所有的操作作为一个整体一起向系统提交或撤销操作请求,即这些操作要么同时成功,要么同时失败。事务是一组操作的集合,是一个不可分割的工作单位,事务会把所有的操作作为一个整体一起向系统提交或撤销操作请求,即这些操作要么同时成功,要么同时失败。(0是手动提交,1是自动提交,在sql中,事务一般是自动提交)(0是手动提交,1是自动提交,在sql中,事务一般是自动提交)3.幻读:一个事务按照条件查询时,没有对应的数据行,但是在插入数据时,又发现这行数据已经存在。

2024-05-12 14:49:37 349 1

原创 计算机网络----由概述到ICMP

就是光的频率分复用,使用一根光纤传播载波信号,关于载波信号,这里又有说法:基带调制可以把信号编程编码,而载波是将调值好的基带信号,用一段比较高的频率,将信号的频率调高,传播的效率速率都会更快。VLAN是数据传输层中根据用途,工作组,应用来进行逻辑划分的局域网络,与物理位置无关,一个公司中,市场部可以是一个局域网,研发部也可以是一个局域网,VLAN之间无法直接通信,但是可以经过路由器或者三层交换机进行VALN间路由,实现VLAN间通信。通过光纤进行传播,分用器又可以将光纤上的信号分开,由此转给不同的终端。

2024-04-16 20:34:26 436

原创 MYSQL-----多表查询详解,配有练习讲解

创建外键的过程语句,很多人不懂,包括我刚开始也不是特别懂,这里再做一次解释:就是将表中的某一个字段作为另一个表的外键,constraint后面接着的是创建完这个外键以后,给外键的命名,foreign key 后面接的是要将哪一个字段作为外键约束,references后面接的是主表的字段,这样解释应该会清晰很多。案例:部门与员工表之间的关系,一个部门对应多个员工,一个员工对应一个部门,要实现在多的一方建立外键,指向一的一方的主键,也就是说,一的一方要作为主线,作为父表,作为多的一方的外键。

2024-04-01 15:30:51 646

原创 MySQL---约束,详细并且有代码解释

这里有一个值得大家注意的点,就是我们在已知主表的情况下去建立子表,并且与其建立外键链接的时候,我们可以在创建子表的时候写出需要建立外键连接的字段为"主表名_字段名"这样会更加清晰简洁。cascade:在父表中删除或更新对应记录时,首先检查是否有对应的外键,如果有,那么子表也会进行对应的删除或更新。在父表中删除或更新对应记录时,首先检查是否有对应外键,如果有,则不允许删除/更新(NO action)如果是使用了删除的功能,在主表中删除对应的字段,那么在子表中也会将对应的删除掉。

2024-03-24 16:38:21 317

原创 MySQl----完成DQL语句的学习----分页查询,DQL语句练习,DQL语句的编写顺序与执行顺序

也可以这样理解,查询的就是从记录到记录,起始索引也有个公式,比如说,从第二页开始查询,那么起始索引就是(页码-1)*页展示的记录数。5.查询性别为男,且年龄在20-40岁以内的前五个员工信息,对查询的结果按年龄升序排序,年龄相同按入职时间升序排序。4.查询所有年龄小于等于35岁的员工的姓名和年龄,并对查询结果按年龄升序排序,如果年龄相同按照入职顺序降序排序。分页查询是数据库的方言(指的是数据库之间不同的地方),不同的数据库有不同的实现,MySql中就是limit。这是查询的时候所需要的东西,一定需要谨记。

2024-03-17 16:17:06 463

原创 数据库--DQL语句,聚合函数,分组查询,排序查询

在我的表格中,作用是一样的,因为我的表格中,每一个员工都有id,可以在()中添加你想查询的字段的员工数量,比如说,在()中添加idcard,这就代表着身份证号,但是我的表格中,有一个员工的idcard是NULL,所以数量就会有不同。这样就可以查看男女的平均年龄,通过最基础的查询语法,可以查看到性别,这样可以清晰的看到不同的平均年龄。值得注意的是:分组之后,查询的字段一般为聚合函数和分组字段,查询其他的字段是毫无意义的。这是第二层,我们已经可以查看到年龄在45岁以下的,并且根据工作地址分组的员工数量了。

2024-03-16 17:37:20 362

原创 MYSQL------从概述到DQL

数值的存储范围会因为有符号和无符号而发生改变,有符号就是带负数的,例如TINYINT是从-128到127这是有符号的,如果是无符号的,就是从0到255我们在写代码的时候,要根据实际情况来决定是使用有符号的还是使用无符号的。)VALUES(值1,值2,…),(值1,值2,…当然l,因为_匹配一个字符,也可以让前面的所有位数都用下划线替代,在最后一位用7,也可以达到相同的效果。)VALUES(值1,值2…DQL语句是用来查询表中的记录的,需要用到关键字select,在正常的业务系统中,查询的频率是最高的。

2024-03-12 20:19:48 1009

原创 栈和队列(期末复习版,铁铁,巨简洁)

需要注意的是,因为两边栈底不一样,所以起始点不一样,一边是从MAXSIZE-1开始,一边是从0开始,所以一边的进栈是++,一边是–,之所以要加一,是因为top0的初始值赋的是-1,如果两栈的指针相遇,则表示栈满。在双端队列进队时,前端进的元素排列在队列中后端进的元素的前面,后端进的元素排列在队列中前端进的元素的后面。data是一个数组,用来存储栈中的数据,而int类型的top为记录栈的元素有多少个,记录数组中一共有多少个元素,所以也可以用来记录栈顶元素的指针(也就是栈顶的数据下标)也是用数组来存储数据。

2023-12-13 19:53:53 878

原创 链表(期末的时候可以稍微看看)

单链表:由表头唯一确定,因此单链表可以用头指针的名字来命名,若头指针名为L,则把链表称为表L,结构体里面一般写ElemType和next,next是指针型,存放着结点的地址。先操作要插入结点的前驱(两个,一个由插入的指向原来的(插入的前驱),一个由原来的指向插入的(将插入的变成原来的后继)。首先是查找,从头开始找,遇到匹配的就停,所以执行次数最多的应该是将指针往后移的过程,所以算法的效率为O(n);2.p->next就是要删除的位置的地址i+1的指针是p->next=p->next->next;

2023-12-01 16:37:35 794

原创 学C语言时写过最愚蠢的代码

只要回车了,就一定显示失败,因为回车就相当于\n了,而且\n悄悄的被getchar给读走了,非常愚蠢。

2023-10-05 16:44:21 196

原创 C语言新手可以看看这篇文章,大有所获!

如果一个变量既被static修饰了,又被extern修饰了,那我们在另外一个源文件里调用这个变量会怎么样呢,此时,就会报错,这个时候就不能使用了,和java类似。当然了,extern也可以修饰函数,但是在调用这个函数的源文件里需要加上extern关键字,函数返回值类型,函数参数类型才能进行调用。我们接下来研究如果static修饰全局变量的情况,在这之前,我们先说一下extern的作用,只要是两个或以上的源文件,只要用了extern这个修饰符修饰了以后,就可以在不同的原文件里使用extern修饰的变量。

2023-10-04 21:28:59 46

原创 DDL,对上一篇博客的一些补充

ALTER TABLE 表名 ADD 字段名 类型(长度)[COMMENT 注释][约束];ALTER TABLE 表名 CHANGE 旧字段名 新字段名 类型(长度);案列,在刚刚写的emp表中增加一个新的字段,名字叫做nickname,VARCAHR(20);案例:将emp表中的nickname字段修改为username,类型为varchar(30)ALTER TABLE 表名 MODIFY 字段名 新数据类型(长度);如果想删除表中的数据,可以使用TRUNCATE TABE 表名;

2023-08-18 16:41:28 44

原创 MySQL初步学习与表结构的创建(DDL语句)

MySQL下载安装完成以后,可以进行启动和停止操作,对于启动和停止,有两个方法1.在控制台直接输入services.msc在里面找到MySQL进行停止和启动。数值的存储范围会因为有符号和无符号而发生改变,有符号就是带负数的,例如TINYINT是从-128到127这是有符号的,如果是无符号的,就是从0到255我们在写代码的时候,要根据实际情况来决定是使用有符号的还是使用无符号的。当然,以上的语法必须先进入到一个具体的数据库才可以。1.DDL语句,数据定义语言,用来定义数据库对象(数据库,表,字段)

2023-08-18 15:43:43 160

原创 窗口中条目绑定事件

我们可以往窗口中添加图片用来美化界面,我们一般使用ImageIcon这个类来添加图片,我添加图片的一般操作是将图片下载好后放在Idea中,然后再复制路径再ImageIcon后面的参数里,再将ImageIcon添加进JLabel管理器中,最后将JLabel放进窗口中,这里有一个小细节,就是先加载的图片在上方,后加载的图片在下方,所以背景图片我一般最后再加入。我写了代码,请大家和我一起理解一下。接下来,我们学习一下如何给条目绑定时间事件。

2023-07-20 00:17:22 51

原创 窗口基本的实现以及三种监听的使用(超详细)

首先是JFrame这个窗体,有一个类JFrame可以理解成一个javabean类有一个方法叫做setsize方法,可以设置窗口的宽和高,界面默认是隐藏的,所以还需要调用一个方法是setVisible这里是一个boolean类型的参数,默认是false,所以往里面传参数ture才可以使窗口可见(注意,一般是写在最后的)下一个方法,设置界面居中setLocationRelativeTo()参数传递一个null就可以了,可以让界面居中。我添加的监听是动作监听,可以点击按钮,单击空格来实现监听的内容。

2023-07-18 23:24:25 544

原创 认识高级流

1.缓冲流:一共有四种,第一个是BufferedInputStream字节缓冲输入流,第二种就是BufferedOutputStream字节缓冲输出流,第三种是BufferedReader字符缓冲输入流,第四种是BufferedWriter字符缓冲输出流。字节缓冲流提高效率的原理,从数据源,也就是硬盘中读取数据的还是基本流,接着,会将读取的数据放在缓冲输入流的缓冲区中(大小为8192个字节),输出流的大体流程也差不多。构造方法与使用方法与字节缓冲流差不多,但是字符缓冲流有两个特别好用的方法。

2023-06-10 22:58:47 41

原创 异或符号与io流的一些方法

RandomAccessFile类有一个方法,就是seek()方法,在括号中传输要删除数据的位置,接着使用 RandomAccessFile类的writeBytes(" “)方法删除数据即可,不能忘的是,需要关流释放资源。会将这两个二进制像加法的运算一样进行排列,比较0和1,会返回一个true,true对应的就是1,接着会比较0和0,会返回false,对应的就是0,以此类推,最后打印的就会是110110转成10进制以后,就是110.这就是异或符号,可以用作加密和解密文件。这样就完成了加密的过程。

2023-06-01 17:17:14 50

原创 字符流的初步学习与学习到的一些底层原理

在调用read方法时,首先会去判断缓冲区中是否有数据可以被读取,如果没有,就会从文件中去读取,尽可能的装满缓冲区,每次读取,会从缓冲区中去读取,减少频繁的到硬盘中读取数据的过程,缓冲区是为了提高效率的,如果缓冲区中有数据,就会从缓冲区中找数据。接下来说说空参的read方法和实参的区别,首先,空参的read方法一个字节一个字节的读,遇到中文会一次读取多个字节,返回的是一个十进制,也就是一个数值,在控制台如果想看见中文,那就必须强转。细节2:如果文件不存在,那么会创建一个新的文件,但是要保证父级文件是存在的。

2023-05-31 16:34:33 94

原创 IO流-进一步学习

1.ASCLL字符集,其实就是一个编码表,在ASCLL字符集中,最大的数字是127,而字符集是从0开始的,所以ASCLL字符集一共有128位,比如说a这个字母,在查询ASCLL字符集以后得出其对应的数字是,1100001,以供只有7位,不满足计算机要求的8个bit的要求,所以计算机会开始编码,也就是在数字前面补0,补齐8位。在计算机中,任意数据都是以二进制的形式来存储的,一个0或者一个1,都是用一个bit来存储的,八个bit叫做一个字节,计算机在存储英文的时候,一个字节就可以了。

2023-05-27 16:38:57 41

原创 初识io流

那么,第二个问题,续写,我们应该怎么解决呢,其实,在创建对象时,参数不仅仅是路径,后面还会有一个参数,是boolean类型的参数,默认的是false,我们只需要手动将ture传进去就可以了。面对以上两个问题,我先介绍一个方法,就是getBytes方法,他的参数是字符串类型的,而且返回的是bytes类型的,非常方便,我们只需定义一个字符串,然后调用这个方法就可以了。这时,书写的格式中的意思就是指在bytes这个数组中,从1索引开始,写3个字节到文件中去,所以,最后的运行结果是bcd。一次写一个字节数组数据。

2023-05-24 17:02:49 29

原创 第二种创建多线程的方式

之前我们说到,创建线程的第一种方式为让类继承Thread,然后重写run方法,接着让类在main方法里创建一个对象,、然后让这个对象调用start方法,就可以创建让第二个线程了,今天,我们学习第二种创建线程的方法,之前我们重写run方法是不是有点像继承了一个抽象类,或者是实现了一个接口类啊?2.增强了程序的扩展性,降低了程序的解耦合。传递不同的实现类,实现不同的任务,而继承,只能去创建新的类,新的对象。值得注意的是,创建Thread对象,需要在构造方法中传递Runnable接口的实现类对象。

2023-05-21 16:41:16 30

原创 Thread类中常用的方法

2.创建带参数的构造方法,参数传递线程的名称;调用父类的带参构造方法,把线程名称传递给父类。sleep本身是异常方法,而且是编译异常,所以必须去处理,要么捕获,要么抛出。让父类(Thread)给子线程起一个名字,分配新的Thread对象。1.使用Thread类中的方法setName(名字)作用是使当时正在执行的代码在指定的毫秒数内暂停。这样,可以给线程起名字,运行的结果是。还有一个方法,叫做sleep。改变线程的名称,有两种方式。

2023-05-21 15:49:57 29

原创 线程中常用的方法

可以先获取当前正在执行的线程,使用线程方法中的getName();打印结果为Thread-0;所以新的线程的名称为Thread-0;还有另外一种获取线程名称的方法currentThread();新的线程名字就叫Thread-1;获取的就是执行的线程。

2023-05-20 18:02:31 31

原创 创建新线程的方法及多线程原理图解

start方法:结果是两个线程并发的运行,当前线程(从调用返回给start方法)和另外一个线程(执行其run方法)。创建新线程执行有两种方法,一种方法是将类声明为Thread的子类,并重写Thread类的Run方法。此时打印的结果是很随机的,因为JAVA是抢夺式的,两条线程的路径都指向CPU所以每一次打印的结果都不一样。2.在Thread类的子类中重写Thread类中的run方法,设置线程任务(开启线程要做什么)4.调用Thread类中的start方法,开启新的线程,执行run方法,使线程开始执行。

2023-05-20 17:21:06 96

原创 多异常处理

首先会抛出第一个异常处理的结果,也就是会抛出超出数组索引长度的异常,我将第一个异常注释掉了之后,会抛出第二个异常,也就是打印了11。一个try多个catch有注意事项:catch里面定义的异常变量,如果有父子关系,那么子类的异常变量必须写在上面,否则就会报错。把try的异常全交给一个catch来处理,但是catch中所定义的变量,必须是try中的父类对象。就是一个异常,就去写一个try catch,用来处理异常。一段代码中,有多个异常需要处理,我们有这几种方式进行。2.多个异常一次捕获,多次处理。

2023-05-18 15:56:22 71

原创 finally代码块

有一些代码块无论异常是发生,都需要执行,另外,因为异常发生时,程序会跳转或者是中断,导致有些语句执行不到,而finaly就是解决这个问题的,在finally代码中存放的代码是一定会执行的。2.finally一般用于资源释放(资源回收),无论程序是否出现异常,最后都要资源释放。1.finally不能单独使用。必须和try一起使用。这个还是比较重要,IO流中用到这个的场所比较多。

2023-05-15 19:59:57 119

原创 对异常处理的第一种方式

可以使用throws关键字让它处理异常对象,会把异常对象申明抛出给方法的调用者处理(自己处理,最终交给JVM处理)3.方法内部如果出现了多个异常对象,那么throws后面也必须全部声明到。调用了一个声明异常的方法时,一定要去处理!如果抛出的多个异常有子父类关系,那么直接声明父类异常即可。当方法内部抛出异常对象时,那我们就必须处理这个异常对象。throws关键字:异常处理的第一种方式,交给别人处理。4.调用了一个声明抛出异常的方法,就必须处理异常。注意:1.throws关键字必须写在方法声明处。

2023-05-14 17:38:45 34

原创 【无标题】

截止到现在,我们已经学习了两种throw的new了,NullPointerException(空指针异常)与ArrayIndexOutOfBoundsException(超出数组索引范围异常),都是RuntimeException的子类,是无需我们自己处理的。因为throw关键字后面接的是空指针异常,所以我们可以不去处理它,可以交给JVM去处理,我设置了一个if语句,如果传递的是一个空指针,那么就抛出空指针异常:传递的数组的值是null。3.throw关键字抛出指定的异常对象,我们就必须处理这个对象。

2023-05-14 16:27:20 119

原创 异常的初体验

2.在getElement方法(我创建的方法,可以输入索引,并且输出数组中相对应的值)中,没有找到处理异常的逻辑的时候,JVM就会把异常抛出给方法的调用者,也就是main方法,而如果main方法也处理不了,那么又会把异常抛出给main方法的调用者,也就是JVM。1.JVM会根据异常的原因创建一个异常对象,这个异常对象包含了异常产生的(内容,原因,位置)接下来是运行期异常,也就是在编写时不会出现红色波浪号,但是也会在控制台抛出异常的异常。异常就相当于程序得了一个小毛病,把异常处理掉,程序就可以继续执行。

2023-05-14 15:29:08 27

原创 大学生作业:项目的开始

学习了这么久的java,应该要有独创的项目了,之前做了一个商品管理系统,在控制台上实现的,感觉做的一般般,这次做了一个窗口,用来写一个游戏——拼图游戏,昨天花了些时间,请大家过目。做的很粗糙,还请大家提一下指导意见,我也会在csdn这个平台上更新我的项目的进展。这是界面,想要开启谁,就创建谁的对象。这是注册窗口,同样的也还没开始。这是登录窗口,还没开始做。以上是游戏的主窗口。

2023-05-11 16:40:29 30

原创 内部类到底是干嘛的,一个文章给你搞清楚

根据内部类的定义new后面加的,不是接口,就是类名,而后面大括号括起来的才算是真正的对象,我写的method方法后面带有参数Animal a。所以一整个内部类都用作参数,而大括号后面的内容,其实就是继承了Animal类的对象而已,就是一个子类,把这个子类给Animal a进行赋值,那么,这里体现的就是 多态!我是不是得写一个Dog类去继承Animal类才能去调用Test类中的method方法啊,很麻烦,很累,但是,如果我使用内部类就不一样了,请看我以下代码,我会在后面进行解释。

2023-04-27 17:09:23 44

原创 我对上一篇博客的拙见

我将教练和教练放在一块儿,共同继承教练类,教练类中有个抽象方法,就是教学,因此,必须在子类中重写这个方法,不同的教练也会有不同的教学方法,在子类中可以得到体现。将球员放在一块儿,共同继承球员类,球员类中的方法就是学习,也是一个抽象方法,也要求我们进行重写,可以分别写出不同球员学习的不同类。将说英语作为一个接口,将乒乓球队接入这个接口,可让乒乓球队类重写这个方法,逻辑清晰,方便快捷,以下是我的拙见,我写出来的一些粗糙代码,望点评。这是父类Person。这是接口“说英语”。这是乒乓球教练员类。

2023-04-24 20:13:09 31

原创 一个我觉得很棒的题目

有一个乒乓球队,里面有教练,学员,教练和学员都拥有姓名与年龄,而教练有一个方法,就是教学生打乒乓球,而学员的方法就是学习打乒乓球,乒乓球队都有一个共同的特性,那就是会说英语。又有一个篮球队,同样的拥有姓名与年龄,而篮球队的教练的方法是教队员打篮球,队员的方法就是跟教练学习打篮球,篮球队除了不会说英语以外,其他都和乒乓球队一样,请根据以上条件写一个带接口,继承的Javabean出来,答案在下一篇博客。学习了面向对象的三大特性之后,在网上查找了这歌题目,欢迎大家对这个题目进行思考。

2023-04-24 19:58:09 20

原创 抽象与接口

这一周,我进行了接口的学习,当然了,学习是循序渐进的,我首先学习了抽象类与抽象方法,一个抽象类可以没有抽象方法,但是有抽象方法的类一定要是抽象类,抽象类作为父类,在抽象类中使用abstract关键字修饰抽象方法,作用是可以让子类必须重写父类这个方法,在我的理解当中,抽象类的最大的作用就是规范性,值得一提的是,抽象类中是可以定义构造方法以及成员变量的,可以让子类进行赋值。注意看,abstract修饰的eat方法,而且我并没有写方法体,这就是一个抽象方法。接下来,谈谈我对接口的拙见。

2023-04-22 15:50:06 37

原创 四种权限修饰符

今天认识了四种权限修饰符:public,private,protect,还有一种就是空着不写,权限修饰符主要作用就是能对修饰的变量,类等进行保护,不同的修饰符所能提供访问的范围也不同。public是最大的,基本上在日常情况下都可以调用public修饰的方法,变量。而protect不同,本类和同一个包的不同类可以调用,而不同包的具有继承关系的类也可以调用,但不同包的无关的类就无法调用。最为严格的是private,意思是私有的,只能在同类里面进行调用,或者可以用get。and set方法进行调用。

2023-04-20 16:36:03 97

原创 final关键字的运用

在idea中,PI=1这一行是会报错的,因为PI已经被final关键字修饰了,从一个变量转变为一个常量了,而引用变量B,final修饰的是它的地址值,所以它的地址值是已经固定好的了,而它的基本属性却仍旧可以改变。今天学习了final关键字,它的作用就是可以修饰变量,让变量成为常量,不会让其初始化的值再发生变化。也可以用来修饰方法,作用范围比较广。上述代码通过打印可以知道,B最后的值是23,李四。

2023-04-18 17:02:22 25

原创 多态的使用说明以及多态的优势与劣势

这是专业名词,按照我的解释来说就是:我有一串代码,并将它用作父类,此时我又创作了一个子类去继承这个父类,这没有问题,可如果我有很多子类,都需要调用重写的方法,那么更改起来极为麻烦,但是我使用多态以后,这个问题就解决了,因为我可以改变子类,想用哪个用哪个,只要更改new关键字后面的子类就行了,非常方便。查找了资料,我明白了,在调用成员变量时,编译看的是左边,运行看的也是左边,所以输出的结果是父类的name。所以,我明白了,在调用方法时,编译看的是左边,而运行看的则是右边。调用的是子类的方法。

2023-04-16 19:38:41 77

空空如也

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

TA关注的人

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