Об’єктно-орієнтоване програмування

pic

Клас

Шаблон для створення об'єктів. Визначає властивості (атрибути) та поведінку (методи).

Шаблон для створення об'єктів. Визначає властивості (атрибути) та поведінку (методи).

class Dog:  
 def __init__(self, name, breed):  
 self.name = name  
 self.breed = breed

Об'єкт

Представляє конкретну сутність з структурою та поведінкою, визначеними класом. Екземпляр класу.

my_dog = Dog("Buddy", "Golden Retriever")

Абстракція — це приховування складності системи та показ тільки основних деталей. Досягається за допомогою абстрактних класів та методів.

from abc import ABC, abstractmethod  

class Vehicle(ABC):  
 @abstractmethod  
 def move(self):  
 pass  

class Car(Vehicle):  
 def move(self):  
 print("Car moves on wheels")  

car = Car()  
car.move() # Output: Car moves on wheels

Наслідування — механізм для створення нового класу (підкласу) з існуючого класу (батьківського). Підклас успадковує атрибути та методи від батьківського класу.

class Animal:  
 def speak(self):  
 print("Animal speaks")  

class Dog(Animal):  
 def speak(self):  
 print("Dog barks")  

my_dog = Dog()  
my_dog.speak() # Output: Dog barks

Інкапсуляція — це приховування внутрішнього стану об'єкта та показ тільки основних деталей. Досягається через використання приватних або захищених атрибутів і надання методів для отримання та встановлення значень (getter/setter).

class Person:  
 def __init__(self, name, age):  
 self.__age = age # Приватний атрибут  
 self.name = name  

 def get_age(self):  
 return self.__age  

 def set_age(self, age):  
 if age > 0:  
 self.__age = age  
 else:  
 print("Invalid age")

Поліморфізм — це здатність використовувати метод різними способами залежно від об'єкта. Досягається через перевизначення або перевантаження методів.

class Shape:  
 def draw(self):  
 print("Drawing a shape")  

class Circle(Shape):  
 def draw(self):  
 print("Drawing a circle")  

shape = Shape()  
shape.draw() # Output: Drawing a shape  

circle = Circle()  
circle.draw() # Output: Drawing a circle




Перекладено з: [Object Oriented Programming](https://medium.com/@michelamax2000610/object-oriented-programming-cafe21b3a291)

Leave a Reply

Your email address will not be published. Required fields are marked *