Перейти к основному содержанию
EDU-MMCS
  • В начало
  • Дополнительно
Вы используете гостевой доступ
Вход
В начало
  1. Prog_2
  2. Лабораторная работа 13. Объекты и классы

Лабораторная работа 13. Объекты и классы

Требуемые условия завершения
Открыто с: вторник, 5 ноября 2024, 00:00
Срок сдачи: пятница, 8 ноября 2024, 23:59
Объекты и классы в Python

Объектно-ориентированное программирование (ООП) — это подход к программированию, при котором данные и функции, работающие с ними, объединяются в объекты. В Python классы служат для создания объектов, которые имеют свои свойства и методы.

Создание класса в Python

Чтобы создать класс, используйте ключевое слово class. Внутри класса можно определять атрибуты и методы.

class Animal:
    def __init__(self, name, age):
        self.name = name  # Атрибут объекта
        self.age = age  # Атрибут объекта

    def speak(self):
        print(f"{self.name} издаёт звук.")

Создание объекта класса

Для создания объекта класса необходимо вызвать класс как функцию, передав ему необходимые параметры.

dog = Animal("Шарик", 5)
print(dog.name)  # Шарик
print(dog.age)  # 5
dog.speak()  # Шарик издаёт звук.

Атрибуты класса и объекта

  • Атрибуты объекта: уникальны для каждого объекта, например, self.name и self.age в примере выше.
  • Атрибуты класса: общие для всех объектов класса, их можно объявить вне метода __init__.
class Dog:
    species = "Canis lupus"  # Атрибут класса

    def __init__(self, name, age):
        self.name = name
        self.age = age

Методы экземпляра класса

Методы экземпляра — это функции, которые работают с данными конкретного объекта. Метод __init__ — это конструктор, он вызывается при создании объекта.

class Car:
    def __init__(self, model):
        self.model = model

    def drive(self):
        print(f"{self.model} едет.")

Наследование

Наследование позволяет создавать новый класс на основе существующего. Новый класс наследует все атрибуты и методы родительского класса.

class Bird(Animal):
    def fly(self):
        print(f"{self.name} может летать.")

Полиморфизм

Полиморфизм — это способность функций обрабатывать данные разных типов. Например, метод speak может быть определён в разных классах и выполнять различную логику.

class Cat(Animal):
    def speak(self):
        print(f"{self.name} мяукает.")

class Dog(Animal):
    def speak(self):
        print(f"{self.name} лает.")

Инкапсуляция

Инкапсуляция позволяет скрывать внутренние данные и методы класса, защищая их от случайного изменения. В Python для этого используются методы и атрибуты с подчеркиванием.

class BankAccount:
    def __init__(self, balance):
        self.__balance = balance  # Закрытый атрибут

    def get_balance(self):
        return self.__balance
    
     def get_balance(self):
         return self.__balance

     def set_balance(self, amount):
         self.__balance = amount


Задания для самостоятельной работы

  1. Создайте класс Person с атрибутами name и age и методом для вывода информации о человеке.
  2. Напишите класс Student, который наследуется от Person, и добавьте ему атрибут grade.
  3. Реализуйте полиморфизм, создайте несколько классов с общим методом describe, который выводит разные сообщения.
  4. Создайте класс с инкапсуляцией данных и методами доступа к закрытым атрибутам.
  5. Создайте класс Employee с атрибутами:

    • name (имя),
    • salary (зарплата),
    • и методом display_info, который выводит информацию о сотруднике.

    Затем создайте класс Manager, который наследует Employee, добавив атрибут department (отдел) и переписав метод display_info так, чтобы он выводил также и отдел. 

    6. Создайте класс LibraryBook, который представляет книгу в библиотеке. Атрибуты:

    • title (название),
    • author (автор),
    • __is_checked_out (закрытый атрибут, показывающий, взята ли книга).

    Добавьте методы:

    • check_out(), который проверяет, доступна ли книга и, если да, изменяет статус на "взята",
    • return_book(), который возвращает книгу, делая её доступной,
    • get_status(), который выводит, доступна ли книга.



Служба поддержки сайта
Вы используете гостевой доступ (Вход)
Сводка хранения данных
Скачать мобильное приложение Яндекс.Метрика
На платформе Moodle