面向对象编程思想
核心: 让计算机模拟现实世界,去解决现实世界中的问题
(就是为了提高程序员的开发效率)
思考:
面向对象编程思想,是如何思考解决现实世界的问题?
由面向过程编程思想可以想到面向对象编程思想是不是就是用对象来解决问题。
-
对象
一切现实世界中客观存在的事物
对象有自己的功能-----对象的方法
对象有自己的特点-----对象的属性
-
类
就是对象的抽象
就是将对象中的所拥有的相同的方法以及属性提取出来,起了一个统一的名字
-
计算机中的对象
本质上是不是就是一块数据
-
计算机中的类
计算机中的类就是对象的模板
语法:
关键字: class
语法:
class 类名:
类属性1='龟壳'
类属性2='嘴'
类属性3='尾巴'
def 方法名(self,参数):
实现的是方法代码
return 返回值
例如:
# 创建一个教师类
class Teacher:
# 教师的姓名
name = None
# 教师的性别
sex = None
# 创建教师的讲课方法
def teach(self,times):
print('%s,在%s授课')
注意: 类名属于标识符(必须遵循标识符命名规范,习惯: 类名首字母大写,驼峰命名法)
# 根据定义的类创建一个对象
laoji = Teacher()
# 查看laoji对象的类属性
print(laoji.name)
# 修改laoji类属性的name
laoji.name = '老纪'
注意:
类属性: 用该类创建的对象,类属性是相同的
对象属性: 对象独有的属性
类属性一旦在对象身上进行了改变,该属性就变为了该对象的对象属性
-
类对象
类对象: 就是Python虚拟机根据程序员写的类代码创建出来一个刻画该类对象的一个模子
-
方法的调用
语法:
对象.方法名(参数)
# 创建一个教师类
class Teacher:
# 教师的姓名
name = None
# 教师的性别
sex = None
# 创建教师的讲课方法
def teach(self,times):
print('%s,在%s授课')
jiyang = Teacher()
# 调用jiyang的teach方法
jiyang.teach()
-
构造方法
语法:
class 类名:
def __init__(self, 属性值1,属性值2,属性值3.......):
self.属性名1 = 属性值1
self.属性名2 = 属性值2
self.属性名3 = 属性值3
..
.
.
.
return None
注意: 构造方法是在创建对象之后由虚拟机进行调用,如果程序正常,创建对象成功,否则,创建对象失败。
注意: 构造方法的返回值必须是None