24 - 面向对象1

目录

一、面向对象基本概念

二、对比面向过程与面向对象

三、面向对象的核心内容:类和对象

1、类的概念

2、类包含的主要内容

3、对象的概念

4、举例说明-类和对象

四、类的构成

五、类的设计

1、类名

2、属性

3、方法

4、举例说明-设计类的三要素

六、练习-设计类

1、需求

2、需求

3、需求

4、需求

七、类的基本使用

1、定义类

2、创建对象(实例化对象)

3、调用类中的方法

4、举例说明-类的基本使用

八、同一个类实例化出的两个对象,是同一个对象吗?

九、self参数

1、self 就是调用这个方法的对象。

2、举例说明-self 就是调用这个方法的对象

十、属性

1、对象中可以添加属性

2、给对象添加属性语法

3、获取对象的属性值

4、举例说明-访问对象属性


一、面向对象基本概念

1、面向对象变成:Object Oriented Programming;简写:OOP。
2、在面向对象的世界里: 万事万物皆对象。

二、对比面向过程与面向对象

三、面向对象的核心内容:类和对象

1、类的概念

  • 是对具有 相同特征或者行为 的事物的一个统称;
  • 类用于指代 一个或多个抽象的事物,不能直接使用。
  • 代码中 类是由关键字 class定义的。

2、类包含的主要内容

  • 特征(静态)->属性;
  • 行为(动态)->方法;

3、对象的概念

  • 代码中使用 类 去创建(实例化)对象;
  • 对象用于指代 一个具体存在的事物,可以直接使用。
  • 注意:由哪一个类创建出来的对象,就拥有在哪一个类中定义的属性和方法。

4、举例说明-类和对象

四、类的构成

  • 想要设计一个类,通常要包含 类名、属性、方法这三要素。
  • 对于需求中,没有提到的属性和方法,在设计类的时候不要添加到类中!

五、类的设计

1、类名

  • 多个事物,起一个名字。
  • 类名的提取:使用名词提炼法,分析整个业务流程,得出的名词,通常就是类名。
  • 命名规则:命名要见名知意,满足标识符规则, 大驼峰命名法(所有单词第一个字母大写, 单词之间没有下划线!)。

2、属性

  • 同类事物具备的特征。
  • 命名规则:全部小写字母,多个单词间用下划线“_”分隔。

3、方法

  • 同类事物具备的行为。
  • 命名规则:全部小写字母,多个单词间用下划线“_”分隔。

4、举例说明-设计类的三要素

六、练习-设计类

1、需求

  • 小明 今年 18岁,身高 1.75m,每天早上 跑 完步,会去 吃 东西;
  • 小美 今年 17岁,身高 1.65m,每天早上不跑步,小美喜欢 吃 东西;

2、需求

  • 一只 黄颜色 的 狗狗 叫 大黄
  • 看见生人 汪汪叫
  • 看见家人 摇尾巴

3、需求

  • 进入某 Web 项目登录页面,输入用户名、密码、验证码之后,点击登录按钮可以登录系统。

4、需求

  • 进入某APP项目的下订单页面,输入用户收货地址后,点击提交订单按钮,可以实现下单操作。

七、类的基本使用

1、定义类

  • 定义一个只包含方法的类,语法格式如下:

2、创建对象(实例化对象)

  • 使用定义好的类,创建对象,语法格式如下:

3、调用类中的方法

  • 由类创建的对象,可以调用类中的方法,语法格式如下:

4、举例说明-类的基本使用

  • 需求:
小猫 爱吃 鱼,小猫 要喝 水。
  • 设计类:
  • 代码实现
# 创建一个猫类
class Cat:
    def eat(self):
        """吃鱼的方法"""
        print('小猫爱吃鱼...')


    def drink(self):
        """喝水的方法"""
        print('小猫爱喝水...')


# 创建对象
tom  = Cat()
# 通过对象,调用cat类中的方法
tom.eat()
tom.drink()

八、同一个类实例化出的两个对象,是同一个对象吗?

  • 结论:同一个类实例化出的两个对象,不是同一个对象。
# 创建一个猫类
class Cat:
    def eat(self):
        """吃鱼的方法"""
        print('小猫爱吃鱼...')


    def drink(self):
        """喝水的方法"""
        print('小猫爱喝水...')


# 创建对象
tom  = Cat()
# 通过对象,调用cat类中的方法
tom.eat()
tom.drink()

# 创建另一个对象
lazy = Cat()
lazy.eat()
lazy.drink()

# tom和lazy是同一个对象吗?
# 1.直接打印两个对象变量
print(tom)
print(lazy)
# 2.使用Python内置函数id(),查看两个对象的信息
# 使用“id(变量)” 函数 可以查看变量中 所保存对象 在内存中的存储地址。
print(f'tom的id是{id(tom)}')
print(f'lazy的id是{id(lazy)}')

九、self参数

1、self 就是调用这个方法的对象。

2、举例说明-self 就是调用这个方法的对象

# 创建一个猫类
class Cat:
    """爱吃鱼的方法"""
    def love_eat_fish(self):
        # self 是调用love_eat_fish()方法的对象
        print(f"小猫姓名:{self.name},年龄:{self.age},爱吃鱼")


# 创建对象
tom  = Cat()
# 给对象定义属性
# 姓名
tom.name = "李黏黏"
# 年龄
tom.age = 1
# 调用类中的 爱吃鱼方法
tom.love_eat_fish()

# 创建另一个对象
blue_cat  = Cat()
# 给对象定义属性
# 姓名
blue_cat.name = "狗蛋儿"
# 年龄
blue_cat.age = 2
# 调用类中的 爱吃鱼方法
blue_cat.love_eat_fish()

十、属性

1、对象中可以添加属性

  • 属性 表示事物的特征。可以给对象添加属性,类中可以获取对象的属性值。

2、给对象添加属性语法

3、获取对象的属性值

4、举例说明-访问对象属性

  • 需求
  • Cat类 所实例化的对象添加属性:姓名、年龄;
  • eat方法中 打印输出 小猫 姓名xx,xx岁,爱吃鱼。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值