Python第八课-面向对象编程(课件)

2024-02-28
| 21页
| 177人阅读
| 103人下载
普通

内容正文:

少儿编程课 1 面向对象编程 程序设计的发展过程 3 先来了解下程序设计(编程语言)的发展过程 非结构化程序设计 结构化程序设计 面向对象程序设计 类和对象的基本概念 5 想要理解面向对象,首先需要了解面向对象中最基本的两个概念:类与对象 这是一个人吗? 这是程序员吗? 想要理解面向对象,首先需要了解面向对象中最基本的两个概念:类与对象 这是一辆车吗? 这是一只鸟吗? 那么什么是类和对象呢? 类:你心中对某一些“东西”的定义和分类:比如人(类)、车、鸟(类)、程序员 对象:这些东西中的某个个体,比如乔布斯、楼下那辆车、窗体上那只鸟等,就称为对象 思考一下:先有类还是先有对象呢? 先来看现实世界中,是先有类的概念还是先有对象的概念 也就是说,人不是从出生就知道总类的概念的,这是一个学习的过程 判断 从具体的鸟,到脑海中有清晰的鸟的形象的过程,就称为抽象 对象 类 抽象 抽象 抽象是从众多的事物中抽取出共同的、本质性的特征,而舍弃其非本质的特征。例如苹果、香蕉、生梨、葡萄、桃子等,它们共同的特性就是水果。得出水果概念的过程,就是一个抽象的过程。 于是我们可以得出结论:在现实世界中,先有对象,对象的共同特点被抽象成类的概念: 而对于计算机中的面向对象的编程语言(如python)来说,则刚好相反 需要先定义类,也即定义某一类东西的全部特征,然后使用这个类去创建一个个的个体(对象) Python中的面向对象 13 接下来我们就来看看,Python中面向对象编程如何实现 1 首先定义一个类,Python中类的定义使用class关键字,后面跟类名 class Person(): 2 接着,思考一下,类里面写什么内容呢? 以人类为例,类既然起到模板的作用,那么就应该包含全人类的共同特征,具体来说包含两点: 静态特征:属性 动态行为:函数/方法 类 类的名称可以任意,采用驼峰命名法,也即每个单词的首字母大写,如Book、Person、WildAnimal等 下面我们把类中属性的定义补充完整并定义一个对象出来: 1 在类中,加入__init__方法 class Person: def __init__(self, name, age): self.name = name self.age = age 这里的__init__方法是一个特殊的方法(init是单词初始化initialization的省略形式) 在使用类创建对象之后被执行,用于给新创建的对象初始化属性用。 下面我们把类中属性的定义补充完整并定义一个对象出来: 2 初始化属性的语句就是self.name = name这种了,这一句不太好理解,我们把它改编一下就好理解了: def __init__(self, n, a): self.name = n self.age = a 首先这是一个方法,方法的形参有self,n和a三个。 这个self,表示对象本身,谁调用,就表示谁(这句话不好理解,先记住,我们后面分析)。 语法上,类中的方法的第一个参数都是self,这是和普通方法区别的地方。 这里self.name = n和self.age = a表示将外部传来的n和a,赋值给了self对象的name和age属性。 这里的n和a,其实叫什么都可以,但是会有个问题:一般我们调用方法的时候,想自动提示一下或者查看文档看一下这个方法的参数要求,如果形参名都是n、a、m、i这些,会让人摸不着头脑,不知道到底该传入什么样的实参。因为这里我们传入实参是为了给属性赋值,为了能见名知意,将形参的名字定义的跟属性一致,调用者就知道该怎么传参了。 所以才有了上面的写法。 下面我们把类中属性的定义补充完整并定义一个对象出来: 3 接着就可以创造一个对象出来了: 这句话就创建出来了一个具体的人,并且给这个人起了个名字叫小明,指定了小明的年龄为20,并且将小明这个对象赋值给了变量p,此时p就表示小明这个人(对象) p = Person('小明', 20) 既然我们是编程世界的神,当然想造什么样的人都可以 1 比如造一个200岁的叫杰拉考的人: p = Person(‘杰拉考', 200) 这句话后面的Person('杰拉考', 200)用于创建出了一个对象(人),并且调用了__init__(self,name,age)方法完成了该人的属性的初始化,杰拉考赋值给了name,200赋值给了age属性。 那self呢?self不需要传参,上面我们说过,self,表示对象本身,谁调用,就表示谁,此时的self就表示你Person('杰拉考', 200)创造出来的那个对象,也即是p。 也即,我们创造出了p,然后给p的属性赋了值,此时p就表示拥有属性值之后的

资源预览图

Python第八课-面向对象编程(课件)
1
Python第八课-面向对象编程(课件)
2
Python第八课-面向对象编程(课件)
3
Python第八课-面向对象编程(课件)
4
Python第八课-面向对象编程(课件)
5
Python第八课-面向对象编程(课件)
6
所属专辑
相关资源
示范课
由于学科网是一个信息分享及获取的平台,不确保部分用户上传资料的 来源及知识产权归属。如您发现相关资料侵犯您的合法权益,请联系学科网,我们核实后将及时进行处理。