面向对象

面向对象

面向对象概述


### 面向对象是基于过程来的事想,在程序中创建实例化对象,指挥对象做事情(指挥官)



1.面向对象开发

1.1语法格式

class People:
  def send_emmail(self,name)
      print(f'发送邮件给{name}')
p1=People()
p1.send_email('马云')

2.类中的函数定义

在python中类是一种自定义数据类型,它可以包含属性(变量)和方法(函数)。在类中面向对象编程是一种重要的概念。它允许为对象添加行为。

#示例
lass MyClass:  
    def __init__(self, name):  
        self.name = name  
      
    def say_hello(self):  
        print(f"Hello, my name is {self.name}")

在上面的代码中我们定义了一个名为MyClass的类。这个类包含两部分:构造函数__init__和方法say_hello。构造函数用于初始化对象的属性,而方法则定义了对象的行为。

在MyClass类中,我们定义了一个名为say_hello的函数。这个函数接受一个参数self,它表示类的实例本身。在函数内部,我们使用print函数输出一条问候语,其中使用了对象的name属> 性。
要是用这个类我们可以创建一个实例,并调用这个方法:

# 创建一个名为"John"的MyClass实例  
my_instance = MyClass("John")  
  
# 调用say_hello方法并输出结果  
my_instance.say_hello()

输出结果为

Hello, my name is John
2.1属性和行为
属性:属性是指对象的特征用来表示对象发状态。例如:一个人有姓名年龄属性,汽车有颜色,品牌等特性。在面向对象的编程中属性通常用变量来表示并通过访问器(get)和修改器(set)来
获取和设置属性值。

行为:行为是指对象可以执行的操作和功能。例如:一个人可以吃饭可以睡觉,一个汽车可以汽车可以启动可以停止等。在面向对象编程中行为一般用方法(methon)来表示。方法是一种封装了特定功能的代码块,可以用调用对象的方法来实现对象的行为。
总结:属性是描述对象的状态,行为描述对象可以执行的操作。在面向对象的编程中,通过定义类(class)来创建具有属性和方法的对象。


3.封装,继承,多态

在python中封装,继承,多态是面向对象编程的核心概念,他们使代码更模块化,可维护,可重用

3.1继承

继承是面向对象的一个重要概念,它允许我们创建一个新类并使用这个类的属性和方法。通过继承可以使用已有的代码,减少重复劳动,使代码结构更加清晰。在python中使用class关键字> 来定义类,可以在类名后面加上冒号和基类来实现继承。

class Animal:  
    def __init__(self, name):  
        self.name = name  
      
    def speak(self):  
        pass  
  
class Dog(Animal):  
    def speak(self):  
        return "Woof!"

上面的代码通过创建了一个Animal基类和一个派生类Dog。Dog类继承了Animal类的属性和方法,并覆盖了speak方法。这样,我们就可以使用Dog类来创建狗对象,并调用其speak方法。

3.2封装

封装是将对象的属性和方法封装到一个类里,以隐藏对象的内部实现细节。通过封装我们可以保护对象的属性不被外部随意修改。在python中,使用下划线开头的属性和方法属于私有方法,> 只能在类的内部被访问。

class Person:  
    def __init__(self, name):  
        self._name = name  # 私有属性  
      
    def get_name(self):  
        return self._name  # 公有方法返回私有属性值

在上面代码中我们创建了一个私有属性_name和一个公有方法get_name。通过将_name设置为私有属性,我们确保外部代码无法去修改它。而get_name的方法允许外部代码去获取该属性的 > 值。这种封装方法保护了对象内部的值不被随意修改,确保了代码的完整性和可维护性。

3.3多态

多态指同一操作用于不同对象,产生不同的执行结果。多态的存在让代码更加灵活和可扩展。

class Shape:  
    def area(self):  
        pass  
      
class Circle(Shape):  
    def __init__(self, radius):  
        self.radius = radius  
      
    def area(self):  
        return 3.14 * self.radius ** 2  
      
class Rectangle(Shape):  
    def __init__(self, width, height):  
        self.width = width  
        self.height = height  
      
    def area(self):  
        return self.width * self.height

上面我们定义了一个基类Shape和两个派生类Circle,Rectangle,并且三个类都有一个方法area()但是他们实现不同。这样,我们可以根据不同的对象来调用area(),根据对象的实际类型> > 来实现相应的实现。这种多态可以让代码更加灵活和可扩展。

posted on 2024-01-17 20:30  合肥彭于晏  阅读(11)  评论(0编辑  收藏  举报

导航