python3之面向对象

一. 什么是面向对象?

面向对象是一种编程思想,面向对象的核心不在于解决问题的过程和步骤,而是将参与解决问题的事物对象抽离出来,重点关注这些对象的行为,通过行为的调用完成整个业务操作。

二. 面向对象与面向过程的区别是什么?

面向过程

是一种编程思想核心在于问题的解决
在这里插入图片描述
面向过程,复用性较低

面向对象

是一种编程思想核心关注参与解决问题的对象,重点是对象行为的描述

在这里插入图片描述
面向对象,最大的优势,就是对象的复用性,功能的扩展性。

面向对象和面向过程总结:

在这里插入图片描述

三. 类的声明

基本语法:
在这里插入图片描述

案例操作:

单个属性的类

"""
    作者:饶家兴
    类:动物
"""


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、 对象的比较:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值