一. 什么是面向对象?
面向对象是一种编程思想,面向对象的核心不在于解决问题的过程和步骤,而是将参与解决问题的事物对象抽离出来,重点关注这些对象的行为,通过行为的调用完成整个业务操作。
二. 面向对象与面向过程的区别是什么?
面向过程
是一种编程思想,核心在于问题的解决
面向过程,复用性较低
面向对象
是一种编程思想,核心关注参与解决问题的对象,重点是对象行为的描述。
面向对象,最大的优势,就是对象的复用性,功能的扩展性。
面向对象和面向过程总结:
三. 类的声明
基本语法:
案例操作:
单个属性的类
"""
作者:饶家兴
类:动物
"""
class Animal:
"""动物类型"""
# 定义属性
def __init__(self, name):
self.name = name
# 定义方法
def eat(self):
print(f"我的名字叫做{self.name},我喜欢吃肉")
# 创建对象
lion = Animal("小狮子")
lion.eat()
多个属性的类
class Dog:
"""狗的类型"""
size = 1.8
# 定义属性
def __init__(self, name, sort, color, age):
self.name = name
self.sort = sort
self.color = color
self.age = age
# 定义方法
def play(self):
print(f"小狗的名字叫{self.name},种类为{self.sort},颜色为{self.color},年龄为{self.age}")
hashiqi = Dog("二哈", "哈士奇", "黑白", 3)
hashiqi.play()
分析:创建对象的过程
① 代码执行顺序:先创建对象 。
创建对象的时候会自动调用对象的init()方法
② 内存中的对象:为什么通过变量能找到对象
四. 类和对象
类和对象的关系
类对创建对象的模板,对象是类的实例。
生活中:[狗是类型,二哈是对象,傻是特征,拆家是行为]。
**项目中:**学生选课系统,系统中会出现多个事物,有学生,有课程,有管理员。
在项目开发过程中描述这些实际的数据,通过声明类型进行描述,在实际使用的过程中就可以按照类型创建具体的对象。
如学员在项目中注册账号,此时就会创建一个学员类型的具体对象。
五. 实例属性和类属性
**首先思考一个需求:**人都有各自的属性,有各自的行为,但是任何人的年龄都不会超过150岁
问题:150变量,有什么特点?应该声明在哪里?
1、 属性概述
属性,就是属于类型表示的对象的特征,是一个名词,描述的是一个静态的数据。
2、 实例属性
实例属性,就是类型表示的每个对象独自的特征,实例属性只能被当前对象访问
3、 类属性
类属性:属于类型的特征,能被当前类型的所有对象访问,但是不允许通过对象修改。
① 类属性可以被类型名称直接访问,可以被当前类型的所有对象访问
② 类属性只能被类型名称修改
③ 类属性不能被对象修改
类属性基本语法:
类属性的访问:
类属性的修改:
六. 魔方方法
类型中存在着一种特殊的方法,这些方法都是双下划线开头和结尾的,分别执行着一些特定的、重要的功能,把这样的方法称为:魔法方法。
1、 对象的构建:
2、 对象的打印:
3、 对象的比较: