Инкапсуляция в объектно-ориентированном программировании с примерами кода

Упомянутый вами термин «инкапсуляция» действительно является английским словом, обычно используемым в компьютерном программировании. Инкапсуляция – это концепция объектно-ориентированного программирования, которая предполагает объединение данных и методов внутри класса, сокрытие внутренних деталей класса и предоставление общедоступного интерфейса для взаимодействия с классом.

Вот пример на Python, иллюстрирующий инкапсуляцию:

class Car:
    def __init__(self, make, model, year):
        self.__make = make
        self.__model = model
        self.__year = year
    def get_make(self):
        return self.__make
    def get_model(self):
        return self.__model
    def get_year(self):
        return self.__year
    def set_year(self, year):
        self.__year = year

my_car = Car("Toyota", "Camry", 2021)
print(my_car.get_make())  # Output: Toyota
print(my_car.get_model())  # Output: Camry
print(my_car.get_year())  # Output: 2021
my_car.set_year(2022)
print(my_car.get_year())  # Output: 2022

В этом примере класс Carинкапсулирует марку, модель и год выпуска автомобиля. Атрибуты __make, __modelи __yearобъявляются частными путем добавления к ним двойного подчеркивания. Это делает их недоступными за пределами класса, поэтому их нельзя изменить напрямую.

Чтобы получить доступ к этим частным атрибутам или изменить их, мы предоставляем общедоступные методы, такие как get_make(), get_model(), get_year()и set_year(). Эти методы обеспечивают контролируемый доступ к частным атрибутам, обеспечивая инкапсуляцию.