00:01
在前面呢,我们说了用传统方法不好解决,引出我们这个结构体的概念,那么我们就来看一下结构体跟我们面向对象编程是一个怎么样的关系,这点也很重要,我曾经讲过,我说一个程序呢,它就是一个世界,你世界现实世界拥有什么东西,在我们这一个编程里面呢,也会有相应的体现,你比如说在现实生活中,有房子,有树,有人,有狗,有小雪人,那么在我们编程里面呢,它就会有很多对象。这个在面向对象里面呢,他把这个就称为对象,其实对象就是一个变量。明白吗?其实对象就是一个变量,因此呢,我们在说在这个,呃,讲结构体的时候呢,我可能会这样阐述,我说现在我们创建一个结构体变量。这是一种说法,我也可能这样说,哎,同学们,我们创建一个结构体对象,或者说直接就简称我们来创建一个对象,能理解吗?这种说法有多种,但是含义都是一个意思,说白了就是一个变量,只是这个变量的类型不一样。
01:13
一般来讲呢,在构语言里边,如果这个变量是个结构体的类型,那么有时候有一些程序员会直接把它叫为对象。理解这意思吧,OK,理解这个意思就行了好吗?这个不要去过多的纠结这个概念啊,过多纠纠结这个概念,因此呢,我们这个结构体,其实它对应的一个变量呢,就是一个对象,就可以这样理解,那现实生活中有的这些对象在我们程序里面都可以有相应的体现,好,我先把这个这个概念给他抛过来好不好?诶抛过来这个就是这个概念,现在抛出来。我说一个程序里面对不对,有这样一些东西。好,我把这个图呢,这个很经典的图放过来,就说我们在编程的时候啊,不要把这个程序显得显得非常的好像,好像很神秘,其实程序写多了,他的复杂度越高,其实他就很像一个现实,现实的社会,现实的世界,你比如说我有些学生,他后面去做网游开发,做游戏开发,其实他就会发现哦,在做游戏开发的时候,里面的这些人物,包括他的行为,包括他的属性,跟现实生活中非常的相似。
02:29
对吧,诶这点大家只要有这个概念,你会觉得编程也是很好玩的一件事,那下面呢,我们就来看看在我们的这个勾浪中,它面向对象编程有哪些特点,我再说一遍啊,在勾浪里面,它的面向对象编程跟我们传统的一些。就是纯度很高的编程语言还是有很大区别的。和比如说跟Java到net,甚至跟pap都有很大区别,明白吧,如果你曾经学过这些编程语言,那么你你就会突然感觉到go浪其实在面向对象编程里面,它做了很多的简化啊,做了很多简化,那么我们来看看勾浪语言面向对象编程里面它有哪些特点,这些都是概念性的东西,呃,所以说如果同学们听起来感觉有点有有点那个,呃,有有点抽象的话呢,你也。
03:21
忍受一下啊,忍受一下,因为我必须得先把这些概念给他弄清楚了,我们再去正式的写代码来看第一个特点,Go浪他也支持面向对象编程,那么面向对象呢,又叫oop。Op就是面向对象编程,就是object oriented。啊,Programming这个我就不写了,你就修opop就知道了,如果你你们参加工作以后,别人给你说,诶你会oop编程吗?你你别一年很懵的样子是吧?Op什么玩意儿,Op就是面向对象编程的一个简称,那么但是呢,他的面向对象跟传统的面向对象有很大区别。
04:02
它为什么有区别呢?大家看,首先我们要知道在勾浪里面呢,它并不是纯粹的面向对象编程语言,就勾浪它不是一个纯度很高的面向对象,所以说我们经常这样说,说go浪支持面向对象编程特性,这个说法应该是比较准确的。你比如说在我们的Java里边,它是Java的面向对象,编程就很就很纯度很高,它是没有这种所谓的全局变量的,所有的东西都在这个对象里边,但是呢,我们的这个勾浪啊,它其实有很多全局变量的概念,说这个还有全局函数,说他这个呢,说并不是一个程度很高的面向对象,因此我在这写了一句话,根据我对编程理解,我这样说啊,所以说我们说go浪支持面向对向编程特性。是一个比较精准的说法,这是第一点,第二点呢,在高浪里面呢,没有这个传统面向对象编程里面的累了,没有这个class。
05:03
那高浪里面谁来做这个,充当这个拉的角色呢?它是一个叫结构体的这么一种数据类型,Structure。他是用structure,呃来充当或者是来来替代这个类的这个地位,所以说我们可以认为。Go语言的结构体和其他编程语言的类有同等的地位。所以说我们理解go浪是基于structure来实现oop特性的,注意这一点明白了吧,这是第二点需要注意的,就是说没有class了,只有一个structure,这个structure呢,和这个类有同等的地位。第三点高浪面向对象编程非常的简洁,它去掉了很多传统opop语言的一些特性,比如说没有这个继承的概念,哦不也不能说没有继承的概念啊,它是有的,但是没有这个一个exten这个这个东西了,而且他的继承呢,跟我们这种传统op继承还还有很大区别,后面我们会展开讲述,他没有方法重载了,这个确实拿掉了。
06:07
这功能里面没有方法重载的概念,然后呢,也没有构造函数了哈,也没有虚构函数,也没有这个this指针了。没有类似指针这些现在去到的东西都是传统编程语言里面,呃编传统的面向对象里面,呃都有的,但是他都通通拿掉了。统统拿掉,好,我们再来看这个,它还有哪些特点呢?来,我们接着总结。啊,高浪呢,仍然有面向对象编程的继承封装和多态的特性,也就是说它还是有这些特性,只是它的实现方式跟其他op不太一样,你比如说继承吧。我就举个例子,继承大家都知道,传统的面向对象里面呢,它的继承都是通过一个叫做X ten来这个关键字来来实现的,但是呢,勾浪里面的继承它是通过逆鳞字段实现的,那具体怎么做的,后面我们再具体的说好吧,还有一点呢,勾浪面向对象op它是非常优雅的。
07:09
为什么这么说?因为o op本身就是语言类型系统的一部分,也就是说你可以这样理解,就说高浪它它本身就是一种天然的支持这个面向对象的一种语言。OK,而且呢,他通过这个接口关联可以降低耦合性,这也非常灵活,后面同学们在在体会,逐渐体会到这个接口,所以说所以说有些有些这个像有些用构语言用的比较多的这种程序员也好,还有一些书上呢,他。更喜欢把这个面向对向编程叫做什么呢?叫做面向接口编程,为什么说这样说呢?因为接口其实是这个构元里面面向对象编程里面最重要的一个特点,我在这也说了对不对?也就是说go浪中面向接口编程其实是非常重要的特性。
08:04
他好多东西都可以用接口来实现这一点,他把接口用到了极致,我可以这么讲好,就说他这个勾浪里面面向对象的一个接口啊,用的特别特别的多。而且真的是用的非常的巧妙。啊,用的非常的简约,而且耦合对耦合度非常低,这个呢,后面同学们会逐渐的感受到好同学们,那现在呢,我们就把go语言面向对象的五个面向对象编程的五个特点给大家先简述了一下,可能说的东西呢,也没有写代码对不对,感觉有点抽象,但是呢,确实是必须先点题,因为我们在听视频的同学呢,有很多同学是学过像Java呀,Do net呀,或者PP呀,或者是Python啊,或者是这个C加加呀,对不对,那么我这点了起过后,你做到心里有数,你不要突然写到,诶老师在讲这个面向对象的时候,你突然说,诶怎么没有那个。
09:00
呢?怎么没有方法重载了呀?怎么没有构造函数呢?我已经告诉你了,没有了,没有了就是没有了,你不用再去找是吧,有些东西我学假烷,诶this指针韩老师怎么没有讲呢?他他已经拿掉了,你怎么讲啊。是不是他肯定是用别的方式来实现这种功能的嘛,他肯定会有这种体现,只是。跟以前传统方法完全不一样了,能理解我的意思吧?好,注意听这个话啊。来,我先把这里给同学们整理一下。跟上老师的思路。来,我们板书一把。第一点。第一点。对不对,说了。第二点。第三点说了,Op去掉了一些什么东西,好,后面呢,还有两点我们也把它一并拿过来好吧。A,拿过来。走勾浪呢,它也有注意听啊,勾浪仍然是有继承封装多态的这个特性的,也就是说其实面向对象它还是有这样特性在里面的,面向对象编程实际上是一种思想,不要拘于,不要过度的去拘于它的形式,每个语言实现方式已经有变化了,明白吧,所以说我们说go有面向对象编成这个思想特性在里面,一点错都没有。
10:20
哪一个人敢说勾浪没有面向对象这个编程的思想了,或者说没有这个特性了,大家一定就是乱说。对不对,他一定是那样说,因为我们说过面向对对象编程,它其实总体来说它是一种,它是一种思想,那么每种不同的语言,它的实现形式不一样,只是说勾浪了这个家伙他出来过后,他跟以前传统的那个面向对象变化的太大了,所以说有些有些有些同学学起来呢,就感觉很感觉很奇怪,但是其实他还是有这些特性的,只是实验方法不一样了,注意听这句话好吧。OK,那关于勾浪语言面向对象编程的这个说明呢?我们先给大家介绍到这里,大家先体会一下好吧。
我来说两句