我是Ankitha在Luxoft India工作的初级软件工程师。我是一个开发人员,重要的是要了解糟糕的概念。因此,这是一篇有关oops的文章。
介绍:
面向对象的编程(OOP)是一个编程范式,专注于创建包含数据和方法可以在该数据上操作的对象。在Python中,一切都是一个对象,它使其成为OOP的理想语言。 OOP的四个支柱是遗传,封装,抽象和多态性。在此答案中,我们将以一个示例详细讨论这些支柱。
遗产:
继承是从现有类创建新类的过程。基类也称为父班,新类称为“子类”。在Python中,我们使用“类”关键字来定义类。
这是继承的示例:
`class Animal:
def __init__(self, name, species):
self.name = name
self.species = species
def speak(self):
pass
class Dog(Animal):
def __init__(self, name):
super().__init__(name, "Dog")
def speak(self):
return "Woof!"
my_dog = Dog("Fido")
print(my_dog.name)
print(my_dog.species)
print(my_dog.speak())`
在此示例中,我们用“ init”方法定义了母类“动物”方法,该方法初始化了名称和物种属性。我们还定义了一种“说话”方法,该方法什么都不返回。然后,我们定义了一个从“动物”类继承的儿童课“狗”。我们创建一个“狗”类的对象并打印其属性和其“说话”方法的结果。
封装:
封装确保对象的内部状态无法直接从对象外部访问。在Python中,我们可以使用私人和受保护的属性和方法来实现封装。
这是封装的示例:
`class BankAccount:
def __init__(self, balance):
self._balance = balance
def deposit(self, amount):
self._balance += amount
def withdraw(self, amount):
if self._balance >= amount:
self._balance -= amount
return amount
else:
return "Insufficient funds"
my_account = BankAccount(1000)
print(my_account._balance)
my_account.deposit(500)
print(my_account.withdraw(2000))
print(my_account._balance)
`
在此示例中,我们定义了具有“余额”属性的类“ bankAccount”(通过使用单个下划线保护)。我们还定义“存款”和“提取”方法来修改余额属性。我们创建一个“ bankAccount”类的对象,并尝试直接访问余额属性(不建议使用)。然后,我们存入并提取一些钱并打印余额属性(也不建议)。
抽象:
抽象是将类的不必要的实现详细信息从其用户中隐藏的过程。它确保了班级的用户只能看到类的基本功能。在Python中,我们可以使用抽象类和方法来获得抽象。
这是抽象的示例:
def calculate_area(shape, dimensions):
if shape == 'rectangle':
return dimensions[0] * dimensions[1]
elif shape == 'triangle':
return 0.5 * dimensions[0] * dimensions[1]
elif shape == 'circle':
return 3.14 * dimensions[0] ** 2
else:
return None
通过使用抽象,我们创建了一个简单,可重复使用的函数,可以计算任何形状的面积,而无需为每种形状使用单独的功能。这使代码更加高效,更易于维护,因为我们只需要更改一个功能,而不是在需要更改时进行多个功能。
多态性
编程中的多态性是指对象采用多种形式或行为的能力。在Python中,可以通过功能超载和方法覆盖来实现多态性。
这是一个示例:
class Animal:
def speak(self):
print("Animal is speaking")
class Dog(Animal):
def speak(self):
print("Dog is barking")
class Cat(Animal):
def speak(self):
print("Cat is meowing")
def make_animal_speak(animal):
animal.speak()
animal = Animal()
dog = Dog()
cat = Cat()
make_animal_speak(animal)
make_animal_speak(dog)
make_animal_speak(cat)
这证明了在作用中的多态性 - make_animal_speak()函数可以与具有spee()方法的任何对象,无论其特定类型如何,并且根据对象的类型自动称为spee()的正确实现。
结论:
总而言之,面向对象的编程(OOP)是一个编程范式,专注于创建相互交互以完成特定任务的对象。 OOP提供了多种好处,包括模块化,可重复性和可扩展性。
OOP的关键概念包括封装,继承和多态性。继承允许新类基于现有类,从而继承其属性和方法。多态性允许对象采用多种形式或行为。
在OOP中,代码被组织成类,这是用于创建对象的模板,而对象是类的实例。类也可以具有属性,这些属性是对象的属性,而方法是在对象上操作的函数。
总的来说,OOP是一个强大的范式,用于创建易于理解,维护和扩展的强大而可扩展的软件应用程序。它被广泛用于许多编程语言,包括Python,Java和C ++。