火山PC面向对象编程。那么面向对象呢,在编程当中可以说是非常著名的一种概念,那么在这里呢,就带领大家来认识一下面向对象编程这样的一个概念。那么首先我们先来看一……
火山PC面向对象编程。那么面向对象呢,在编程当中可以说是非常著名的一种概念,那么在这里呢,就带领大家来认识一下面向对象编程这样的一个概念。那么首先我们先来看一下面向对象编程的特性,封装性、继承性和多态性。好,下面呢一个一个给大家来说。首先是封装性,封装性是指将具有一致的数据结构,那么这里呢,数据结构指的就是成员和行为,这里的行为指的就是方法的对象。抽象成类,一个类就是这样一种对象,它反映了与应用有关的重要性质,而忽略其他一些无关内容。任何类的划分都是主观的,但必须与具体的应用有关。
什么意思呢?就就是说我们应该将方法或者说这样的一些功能,类似的这样的一些功能啊,单独的抽象成一个类,或者说跟某一种事物有关的,包括这种像啊变量啊,方法啊这些给它单独封装成一个类,那么如果封装的比较好的话,那么以后呢,我们在编写的过程中,或者说在后后期的维护当中都会非常的方便。
那么这个呢,实际上是跟大家的这个编程能力有一定的这个这个相关性,就是说如果说,呃,编程的能力非常强,或者说是写的程序很多,已经有很多经验,那么这个时候呢,呃,进行一些封装就会非常的容易,而且也封装的比较好,如果前期的话,大家不特别明白,或者说没有办法封装的很好,也没有关系,这个呢,当随着编程能力的提高,经验的丰富,那么这个呢,就会啊,写的越来越好。
然后呢,是继承性,那么这个继承性呢,是子类自动共享父类数据结构和方法的机制,这是类之间的一种关系。
在定义和实现一个类的时候,在基础类中填写父类的名字即可实现继承,那么这个是继承,一会儿呢,给大家来详细来说,我们继续读完。第三就是多态性,多态性是指相同的操作或函数过程可作用于多种类型的对象上,并获得不同的结果,不同的对象收到同一消息可以产生不同的结果,这种现象称为多态性。多态性增强了软件灵活性和重用性。那么这个多肽呢,一会儿呢,给大家来简单的介绍一下啊,因为多肽的话,嗯,涉及到的这个东西比较复杂,但是呢,用起来也不是特别难啊,大家只要往后看就好了。
首先我们来看继承,继承首先我们需要一个父类,那个父类呢,指的就是被继承的那个类,子类,那么子类呢,可以使用父类中所有公开的内容,子类的子类也就说还可以再向下继承,那么这样的话呢,子类的子类就可以使用上面所有父类的公开的内容,啊,这个就是类的继承,那么我们看一下类的继承需要注意的一些事项。
子类可以使用的是父类中公开的方法和公开的成员变量啊,可以直接调用,如果未公开的话,子类也是不能进行使用的啊,这个大家需要注意。
再有就是子类中如果需要调用父类方法,就可以使用父对象点,然后方法名或者成员变量名进行操作。
好,那下面呢,我们来打开代码实际来看一下。
好,因为这里呢,我已经建好第13课了啊,那么它同样是一个控制台程序,那么在这里呢,因为要继承,所以我们至少需要两个类才能完成继承好,我们这个父类叫做编程语言,然后呢,它有一个方法啊,生成程序啊,这个大家都就都很了解啊,生成程序就是生成exe,生成了exe程序,那么这个是编程语言,那么下面呢,我们可以再做一个子类。
这类呢,我们可以叫做火山,那么现在呢,我们就叫它火山PC,那么它的基础类呢,就是编程语言这个类,那么这个时候大家注意我这个火山PC这个类啊,什么都没有写,那么因为它可以直接用父类的公开方法,所以呢,我只要实例化一个火山PC这样的一个变量,那么它就可以直接调用父类的方法。我们来看一下,是不是我们就叫火山PC啊,就为了不跟他重名,我们就叫火山,大家看我可以直接调用生成程序对不对?也就是说我可以直接调用它的这个父类里面公开的方法。
啊,大家来看,生成了exe程序是吧,就可以直接调用父类中公开的方法,那么同样的,在这个子类当中,我们也可以添加一些父类中没有的方法,我们可以先添加一个方法。
那个方法呢,我们可以叫做啊新建项目,那么这个时候呢,我们肯定也要公开,因为公开了之后呢,外部才能进行调用好,我们这里呢,就叫做新建了一个火山项目,那么在这里呢,我们就可以直接调用。
新建项目是吧?可以直接调用新建项目,然后呢,我们再来执行,大家看到新建了一个火山项目是吧?也就是说我们可以继承父类中公开的内容,同时呢,我们我们还可以加入自己的一些内容,因为子类呢,它也是一个完整的类,它不需要跟父类一模一样,它可以有自己的东西,那么这个呢,就是继承,然后呢,我们还可以再加一点新的东西。
那么如果说我们的这个方法当中,我新建了项目之后啊,然后呢,我需要调用一下生成程序,那么这个时候呢,我们可以直接写负对象点生成程序,那么这个时候呢,就相当于我们调用了负对象当中生成程序这个方法,那下面呢,我们来看一下。
大家看,首先是新建了一个火山项目。
然后呢,输出了生成了exe程序,那么前面的这一句呢,是上面这一句输出的啊,大家不要看这个,我们重新来做一下。
说出了这两行啊,那么这个呢,就是继承,以及呢,我们可以在在子类当中新加一些方法,那么这个就是继承。
好,我们继续往后看。
那么这里呢,要给大家介绍两个用到的属性,禁止创建对象和虚拟方法。如果说我们的这个父类,我们只想把它作为一个父类,而不想让它实例化出来,什么意思呢?就是说我们这个编程语言这个类,我只想让它作为这个基础类,而而不让他说我在这写一个叫编程语言是吧,我不想让他实例化这个编程语言出来。所以呢,我们就要加入一个禁止创建对象这样的一个属性,让它不能被实例化出来,因为即使实例化编程语言有没有什么意义,因为我们最终要用的是火山,或者说我们一些有用的东西都在火山里,那这个呢,只是作为一个继承,那这个时候呢,我们就可以写创建啊,禁止创建对象,那么这个时候当我们在编译的时候,大家看这里呢,它就会直接提示。
那么意思呢,就是说这个是不允许这么指定的,也就是说不能这样实例化,我们把它删掉就可以了,它不会影响子类的使用啊,只是它自己不能被创建,那么这个呢,就是禁止创建对象,那么有的时候呢,我们在写一些公开的,好比说是接口啊,或者说一些必要的这样的一个方法的时候,那么就会用到这个属性。
第二个是虚拟方法。
虚拟方法一般用作是父类和子类,我们具有相同名称的这样的一个方法,那么相同的名称呢,指的就是名称相同,返回值相同,参数也相同,那么这个时候呢,我们就需要用虚拟方法来进行这个,呃,那么这个属性给这个方法,不然的话,重名的方法是不允许存在的,我们可以看一下,如果。
我的火山PC当中也存在了一个叫做生成程序的类,大家看一下会发生什么。
啊,生成程序的方法,那现在呢,我把这个复制过来,生成程序,我又把它拿过来,那么这里呢,Exe我就要改成了火山PC64位exe程序是吧?我把它改成这种,那现在呢,大家来看一下,它会报错,因为呢重名,重名呢是不能存在的,所以说如果说我们是有意让他重名,或者说我们要调用这个多肽这样的一个特性,我们就要把它指定为虚拟方法,然后呢,要选择成可覆盖虚拟方法,可覆盖,那么这个时候呢,我再编译就没有任何问题了啊,就没有任何问题了。那么现在呢,这一句负对象我也可以改一下,我直接调用我自己里面的这个生成程序啊。
好,这个时候呢,就输出了自己类当中的这个,那么如果说我刚才调的是负对象,那么这个时候呢,它调的就是负对象的啊,大家需要注意这一块,那现在呢,我把它删掉,因为一会呢,我们还要写其他的内容,那么这个就是虚拟方法,那么虚拟方法呢,应用的最多的就是多肽啊,那么一会呢,给大家介绍多肽,我们翻回来再看一下这个,我们把这火山点生成程序补在这里好。
那么现在呢,我们来调用,先创建项目,然后会生成64位程序,好,这个没有问题。
那么接下来要给大家看一下多肽,多肽也是面向对象当中非常重要的一个部分。
它的特性是子类对象可以赋值给父类。
通过父类的调用,可以动态调用到子类传递参数的时候可以使用这个特性,那么这里呢,需要说明的是,由于火山这个翻译翻这个限制啊,就是说只有在传递参数这种情况下,才能够使用多态这样的一个特性,当然目前为止是这样,以后有可能有其他用法。
那么现在的话呢,我们就先来看子类可以复制给父类,通过父类可以动态调用子类,那现在呢,我们就来给大家写一个可能会用到多肽的这样的一个时候,那么既然是多肽,那么我们就得再创建一个子类,因为如果只有一个子类的话,是体现不出它多肽这样的一个方法的。那么我们这里呢,再新建一个,那么这里呢,我们可以叫做异言,那么它也是从编程语言上继承下来的,那么它同样具有生成程序和新建项目,那现在呢,我们就把它复制过来,这里呢,我就叫做生成了一言,那么一元呢,只有32位,所以呢,我们就生成了32位exe程序,同时呢,新建也是新建了一个e语言项目。好,那下面呢,这两个类大家看到了,这两个类都是从变成一。
语言继承下来的,所以说我们就可以使用一个编程语言的变量来给他们进行这样的赋值。那么现在呢,这里我们使用方法,因为只有方法才会有多态这样的一个状呃属性,所以说呢,我们现在先创建方法,好,那我们这个就叫开始编程啊,开始编程那这个里呢,就不用公开,因为是在我们这个启动类里边的。那么下面呢,我们需要给他一个参数,这个参数呢,我既可以希望它是火山,又希望它是一元,那这个时候呢,我们就直接把它写为鸡肋,我们直接使用基类,那么我们调用基类当中的生成程序,那么因为基类里面呢,没有新建方新建项目这个方法,所以呢,我们就不能调用基类中的这个新建项目,而只能调用生成程序。那下面呢,我们来看一下。
我现在呢,把这两句代码删掉,我直接调用开始编程,然后传递火山这个变量进去,大家看一下效果。
这里它输出的是生成了火山。
PC64位exe,那下面呢,我这里再写一个e语言,那么呢,我再调用开始编程,我这里呢,传递一元,那大家来看这个效果,首先是火山的64位,然后是一元的32位,是不是我什么都没有改,我只是直接调用,然后呢,我给他了一个别的类,那么他我给他哪个类呢,他就调哪个类,大家发现没有,那么这个呢,实际上就是类的多肽这样的一个特性。
也就是说,只要是父类当中有的,并且子类呢,也进行了这个覆盖,那么它就会直接啊,传哪个就调用哪个,那么如果说子类没有覆盖,好比说我们现在新建一个。
方法叫写代码,那么这个写代码呢,我们就不继承它,或者说我们子类中没有,它写了一行代码,那么子类当中都没有是吧?但是父类有,那么既然父类有呢,我们在这里就可以调用写代码,那么这个时候我们来看一下会发生什么。
火山PC没有问题,然后写了一行代码,那么大家发现即使子类没有,父类有,那么也能正常的进行使用。
那么这个呢,就是不会说影响到子类无法使用啊,那这里呢,可覆盖也是一样的啊,也是一样的,这个不会影响,那么如果说我们现在啊,想把这个新建项目也加上,那我们就把新建项目也放到父类当中啊,我们也加个新建项目,那么因为父类是整个编程语言,所以我们没办法说新建了什么项目,所以这里呢,我们可以把它留空,那么这个时候呢,我们再调用。
新建项目项目,然后呢,我们要把顺序调一下,肯定是先新建项目,然后再写代码,最后再生成程序,那么这个顺序呢,就正确了,下面呢,我们来调用一下。
好,我们看一下哟,这个地方呢,我们忘了写这个虚拟方法了,好,我们现在把它加上。
好,那么同样的子类也需要我们现在呢,把它都加上。
好,现在我们运行大家看到新建火山程序,诶把这个拿出来了,放下去,新建火山程序啊,新建火山项目,然后写一行代码,然后生成火山的64位,紧接着新建一个亿元项目,然后写了一行代码,生成了一元32位exe,那么这个呢,就是对多肽的一个调用。
好,那这个呢,就给大家演示到这里,我们继续往下,那么这一课呢,作业给大家留一下作业,熟悉前面的课程啊,把不懂的地方呢,可以到我们论坛进行提问啊,因为后面的话呢,就要给大家来讲解一个实例了。那么前面这些基础部分呢,大家可以就是说尽量去掌握啊,如果有问题可以进行提问。那么第二个尝试以动物为鸡类,猫狗作为子类,那么要求呢,就是父类或者说鸡类中包含跑跳方法,子类呢,猫因为猫会爬树,会抓老鼠,所以这个呢,是猫特有的方法,而狗呢,它就有犬吠这样的一个方法,因为狗一般呢,它会叫,所以它就要犬吠这样的一个方法。那么就是要求大家编写上面的三个类,以多肽的方式调用两个子类的跑跳这样的。
方法,那么如果刚才啊多肽没有看明白的呢,可以翻回去多看两遍,去理解多态这样的一个含义。
还没有评论呢,快来抢沙发~