【第九天】面向程序设计_类
发布人:shili8
发布时间:2024-12-24 23:17
阅读次数:0
**第九天:面向程序设计**
在前面的章节中,我们已经学习了面向过程的编程思想。今天,我们将进入更高级的一种编程思想——面向对象的编程(OOP)。
### 面向对象的编程面向对象的编程是一种编程思想,它强调使用类和实例来组织代码,模拟现实世界中的对象和它们之间的关系。这种编程方式可以提高代码的可重用性、可维护性和扩展性。
#### 类和实例在面向对象的编程中,一个类是定义了一组属性和方法的蓝图,而一个实例则是根据这个类创建出来的一个具体的对象。例如,我们可以定义一个`Person`类,它有两个属性:`name`和`age`,以及两个方法:`eat()`和`sleep()`。
class Person: def __init__(self, name, age): self.name = name self.age = age def eat(self): print(f"{self.name} is eating.") def sleep(self): print(f"{self.name} is sleeping.")
#### 实例化要创建一个`Person`实例,我们需要传入两个参数:`name`和`age`。
john = Person("John",30) jane = Person("Jane",25) print(john.name) # Johnprint(john.age) #30john.eat() # John is eating. john.sleep() # John is sleeping. print(jane.name) # Janeprint(jane.age) #25jane.eat() # Jane is eating. jane.sleep() # Jane is sleeping.
#### 继承继承是面向对象的编程中一个非常重要的概念。它允许我们创建一个新类,继承自一个已有的类,并且可以使用已有类的属性和方法。
class Employee(Person): def __init__(self, name, age, salary): super().__init__(name, age) self.salary = salary def work(self): print(f"{self.name} is working.") john = Employee("John",30,50000) print(john.name) # Johnprint(john.age) #30print(john.salary) #50000john.eat() # John is eating. john.sleep() # John is sleeping. john.work() # John is working.
#### 多态性多态性是指一个方法可以在不同类型的对象中表现出不同的行为。例如,我们可以定义一个`print_info()`方法,它可以在`Person`和`Employee`类中使用。
class Person: def __init__(self, name, age): self.name = name self.age = age def eat(self): print(f"{self.name} is eating.") def sleep(self): print(f"{self.name} is sleeping.") class Employee(Person): def __init__(self, name, age, salary): super().__init__(name, age) self.salary = salary def work(self): print(f"{self.name} is working.") def print_info(obj): print(f"Name: {obj.name}") print(f"Age: {obj.age}") john = Person("John",30) jane = Employee("Jane",25,50000) print_info(john) # Name: John # Age:30print_info(jane) # Name: Jane # Age:25
### 总结面向对象的编程是一种强大的编程思想,它可以提高代码的可重用性、可维护性和扩展性。通过使用类和实例,我们可以模拟现实世界中的对象和它们之间的关系。在本章中,我们学习了如何定义一个类,实例化一个类,继承一个类,以及使用多态性来实现方法的重载。
### 练习1. 定义一个`Car`类,它有两个属性:`color`和`speed`,以及三个方法:`accelerate()、brake()`和`stop()`。
2. 实例化一个`Car`对象,并使用它的方法来模拟汽车的行为。
3. 定义一个`Vehicle`类,它继承自`Car`类,并且有一个额外的属性:`fuel_level`。
4. 使用多态性来实现一个`print_info()`方法,它可以在`Car`和`Vehicle`类中使用。
### 参考答案1.
class Car: def __init__(self, color, speed): self.color = color self.speed = speed def accelerate(self): print(f"The car is accelerating to {self.speed} km/h.") def brake(self): print(f"The car is braking.") def stop(self): print(f"The car has stopped.")
2.
my_car = Car("red",120) my_car.accelerate() # The car is accelerating to120 km/h. my_car.brake() # The car is braking. my_car.stop() # The car has stopped.
3.
class Vehicle(Car): def __init__(self, color, speed, fuel_level): super().__init__(color, speed) self.fuel_level = fuel_level def refuel(self): print(f"The vehicle is being refueled.")
4.
def print_info(obj): print(f"Color: {obj.color}") print(f"Speed: {obj.speed}") my_car = Car("red",120) print_info(my_car) # Color: red # Speed:120my_vehicle = Vehicle("blue",150,50) print_info(my_vehicle) # Color: blue # Speed:150