面向编程和面向对象

面向编程和面向对象的简单理解

什么是面向编程,直接说一大堆代码理解不了我举例子,比如我要洗衣服,我需要放衣服,放洗衣粉,放水,开机,等步骤,是一个步骤一个步骤的来,这就是一个面向编程的过程,面向对象的话就不在乎什么过程了,我只在乎洗衣机能干嘛,它能洗衣服,人能干嘛,人能放衣服和开机,然后只需要对象的交互。

面向对象的特性

封装

什么是封装,还是举例子,比如洗衣机,我只需要知道洗衣机的作用,不需要知道洗衣机具体的工作原理,只用按下开机键,开机是个方法,方法里怎么写的不重要,封装在开机里面就好了,我们只需要使用

继承

这个是为了减少代码的重复度,比如学生,你要写作业,我也要写作业,你的方法和我的方法差不多,只是写作业的内容不同,为了避免代码太多,我们直接定义一个父类学生,不管大学生小学生都继承就好了,直接就有了写作业的方法

下面是代码实现过程

# 定义一个父类 Person
class Person:
    def __init__(self, name, age):
        self.name = name
        self.age = age

    def greet(self):
        print(f"Hello, my name is {self.name}")

# 定义一个子类 Student,继承自 Person
class Student(Person):
    def __init__(self, name, age, student_id):
        super().__init__(name, age)
        self.student_id = student_id

    def study(self):
        print(f"{self.name} is studying")

# 创建一个 Person 实例
person = Person("John", 25)
person.greet()  # 输出: Hello, my name is John

# 创建一个 Student 实例
student = Student("Alice", 20, "12345")
student.greet()  # 输出: Hello, my name is Alice
student.study()  # 输出: Alice is studying

在这个例子中,Person 是一个父类,它有一个 greet() 方法用于打招呼。Student 类是 Person 类的子类,通过继承 Person 类,Student 类获得了父类的属性和方法,并且还定义了自己的属性 student_id 和方法 study()。

子类的构造函数 init() 中使用 super().init(name, age) 调用父类的构造函数,以初始化父类的属性。然后,子类可以通过自己的方法 study() 来扩展父类的功能。

通过这样的继承关系,Student 类可以重用 Person 类中定义的通用行为,并且可以根据需要添加自己的特定行为。这样的继承机制可以提高代码的重用性和可读性,并为不同类型的对象提供适当的抽象。

多态

上面提到了,虽然我们都要写作业,但是我们内容不一样啊,所以多态就体现出来了,我们在子类可以重写这个方法,定义不同的细节内容

代码实现python对象

class Student:
    def __init__(self, name, student_id):
        # 表示对象有的属性
        self.name = name
        self.student_id = student_id
        self.grades = {"chinese": 0, "english": 0, "math": 0}
    
    #对象有的方法
    def set_grade(self, course, grade):
        if course in self.grades:
            self.grades[course] = grade

    def print_grade(self):
        for course in self.grades:
            print(f"{course}的分数是{ self.grades[course]}")

#创建对象
xiaoliao = Student("xiaoliao", 55555)
#调用对象的方法
xiaoliao.set_grade("english",80)
print(xiaoliao.print_grade())
  • 20
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值