课堂笔记14(面向对象)

面向对象编程介绍

面向对象编程:Object Oriented Programming 简称:oop,是一种程序设计思想。

需要注意的是,与之对应的是面向过程编程思想。实际上,能够使用面向对象编程思想实现的程序也能够通过面向过程完成。只是看哪种思想更适合当前开发需求。

面向对象与面向过程区别:
面向过程:根据业务逻辑从上到写写代码
面向对象:将数据与函数绑定到一起,进行封装,减少重复代码的重写过程。

面向对象概念及术语

类:是一个抽象的概念,仅仅是模板。用来描述具有相同属性和方法的对象的集合。比如:“人”是一个类。

对象:某一个具体事物的存在,在现实世界中可以是看得见摸得着的。比如:“胡歌”就是一个对象。

类与对象的关系:

可以进行对象归类
下图中:姓名 、 年龄 为属性
学习python是行为

在这里插入图片描述
将对象归类;
都有共同的属性(姓名、年龄)、行为(学习python)。归为类 学生类。 在学生类中有张三、李四、王五。这些就是学生类的对象。
在这里插入图片描述

小练习:(哪些是类、哪些是对象)
汽车:类
奔驰大G550:对象
水果:类
红富士:对象

类的构成

类由3个部分构成

  1. 类的名称:类名
  2. 类的属性:一组数据
  3. 类的方法:允许对类进行操作的方法

类的定义
在python中使用class 关键字来定义类
class MyClass:
在这里插入图片描述
创建对象
在python中,可以根据已经定义的类去创建出一个个对象
obj_name = MyClass()
MyClass():将类名+小括号等于实例化。
obj_name:对象
整体可以看为将 类 实例化赋值给了obj_name 。所以,ojb_name就是对象,这个过程为实例化过程。

练习:
创建类:学生类
创建对象:张三
在类中定义方法输出:张三学习python

在这里插入图片描述

在上图中,类中的方法会自动生成self参数。
self参数介绍:
在类当中定义方法时,会发现系统帮我们自动创建了self参数。并且在调用对象的该方法时,无需传入self参数。
self本身是形参
self就是对象本身
在这里插入图片描述
通过对象n_stu将内容封装(name、age),然后传入类中。
在这里插入图片描述
出现问题:
两个不同的对象调用,打印结果都是第一个的。
因为在类中打印输出的内容(第20行)固定成了n_stu的名字和年龄。
在这里插入图片描述
而如果要显示xia_gu的信息。直接在类中方法改为 xia_gu 会报错。
在这里插入图片描述

为了使对象能灵活变动。可以直接使用self
类中的方法定义,直接使用self。self就是对象的本身。
在这里插入图片描述
在这里插入图片描述
在外部对象调用数据传参有点麻烦(每次都是将新的对象和内容进行写入)和不安全(需要传的数据在外部容易被曝光看到)。
在这里插入图片描述
此处使用init方法

_ init_()方法

_ init _() 方法:称为初始化方法,也可以称为构造方法。在创建对象时,会自动执行该方法,为对象的属性设置初始值。
在这里插入图片描述
输出结果 1 2
初始化方法:
在这里插入图片描述
初始化对象的属性:
在这里插入图片描述
初始化方法传参:
在这里插入图片描述
注意:
init()方法可以有返回值,但是必须是None,否则报错
在这里插入图片描述

在init()方法中声明的属性,可以在外部访问。
在这里插入图片描述
在其他方法当中(类中的自定义的方法当中),定义对象的属性,需要先调用,执行该方法,才会将gender属性以及addr属性封装到该对象中,才可以访问。
在这里插入图片描述

_str _()方法

在开发中,希望打印输出对象变量时,能够打印自定义内容,就可以使用_ str_()方法,将自定义内容通过return关键字返回。

在这里插入图片描述

注意i

必须要返回字符串
在这里插入图片描述
return返回多个时候会自动打包成元组,所以此处会报错
在这里插入图片描述
想要返回多个内容只能格式化拼接
在这里插入图片描述

私有属性和私有方法

私有属性与私有方法介绍:在实际开发中,对象的某些属性或者方法,只希望在对象内部使用,这时就可使用私有属性和私有方法。

私有属性:

私有属性:对象不希望公开的属性
定义方式:在属性名前面增加两个下划线(例如_ _name)
在这里插入图片描述
私有属性在类的内部可以访问:
在这里插入图片描述
可以打印出结果19

在类的外部访问私有属性方法:
在这里插入图片描述

在类的外部对私有属性进行修改:
在这里插入图片描述

在类的外部访问私有属性小结:
  • 通过类的内部的方法访问私有属性
  • 通过类的内部方法将私有属性访问出去(return),在类的外部调用该方法并且接收

私有方法

私有方法:对象不希望公开的方法
定义方式:在方法名前面增加两个下划线。
在这里插入图片描述

私有方法无法在类外部被直接访问,会报错
在这里插入图片描述
在类外部访问私有方法:
方法一,在类的内部定义函数访问私有方法。
test3:为类内部访问私有方法。
在这里插入图片描述

方法二:return(返回了test2的结果)
在这里插入图片描述
注意:
在python中,并没有真正意义上的私有,只有伪私有。当我们在访问时,以对象._类名 _ _私有属性 即可访问,私有方法同理。但是不建议使用。
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/yuuisei/article/details/113051842