面向对象编程通过类(Class)和对象(Object)来组织代码和数据,是对现实世界的元素更高维度的抽象。
目前面向对象编程语言包括Java、C++、Python、Ruby、Smalltalk、Objective-C、C#和PHP等。这些语言各自实现了面向对象编程的核心原则——封装、继承、多态。
核心概念类(Class):定义对象的模板,包含属性和方法。对象(Object):类的实例,具有类中定义的属性和行为。封装:隐藏对象内部细节,通过方法暴露操作。继承:子类继承父类的属性和方法,实现代码复用。多态:不同类的对象对同一方法有不同的实现。类与对象定义类:使用class关键字定义类,__init__是构造函数,用于初始化对象属性,它在对象创建时自动调用。
class 类名: def __init__(self, 参数1, 参数2, ...): self.属性1 = 参数1 self.属性2 = 参数2 def 方法名(self, 参数): # 方法体创建对象:通过调用类名并传递必要的参数来创建对象。
class Person: def __init__(self, name, age): self.name = name # 实例属性 self.age = age def greet(self): print(f"{self.name}:你好!")# 创建对象person1 = Person("小刘", 3)person1.greet() # 输出:小刘:你好!实例属性与类属性
实例属性:每个对象都有自己独立的属性副本。类属性:由类本身拥有,所有对象共享。继承子类可以继承父类的属性和方法,并可以扩展或重写它们。
单继承:一个子类继承一个父类。
class Animal: def __init__(self, name): self.name = name def speak(self): print("动物发出声音")class Cat(Animal): # 继承自Animal def speak(self): # 重写父类方法 print(f"{self.name}:喵喵!")cat = Cat("小白")cat.speak() # 输出:小白:喵喵!多重继承:一个类可以从多个父类继承属性和方法。一个子类继承多个父类。
调用父类方法:使用super()调用父类的方法或构造函数。
方法重写:子类可以重写父类的方法,以提供更具体的实现。
多态(Polymorphism)多态是指同一个方法在不同对象上表现出不同的行为。在Python中,多态是通过方法重写和动态绑定实现的。
封装Python通过命名约定实现封装,属性名前加单下划线_或双下划线__表示私有(约定俗成,非强制)。双下划线开头的属性会被重命名(如_类名__属性名),防止直接访问。
类方法与静态方法类方法(@classmethod):操作类属性,第一个参数是cls。静态方法(@staticmethod):与类无关的工具方法,无需self或cls。
Python语言面向对象编程