Объектно-ориентированное программирование

Объекты и классы

Последнее обновление: 03.02.2024
Упражнение 1

Определите класс Rectangle, который представляет прямоугольник. Через конструктор класс принимает ширину и длину и сохраняет их в атрибутах width и length соответственно. Также этом классе определите метод area, который возвращает площадь прямоугольника, и метод perimeter, который возвращает периметра прямоугольника.

После создания класса определите несколько объектов класса Rectangle и продемонстрируйте работу его методов.

Решение
class Rectangle:
 
    def __init__(self, w, l):
        self.width = w
        self.length = l
    
    def area(self):
        return self.width * self.length
        
    def perimeter(self):
        return 2 * (self.width + self.length)
 

rect1 = Rectangle(40, 40)
print("rect1 area: ", rect1.area())
print("rect1 perimeter: ", rect1.perimeter())

rect2 = Rectangle(20, 30)
print("rect2 area: ", rect2.area())
print("rect2 perimeter: ", rect2.perimeter())
Упражнение 2

Создайте класс BankAccount, который представляет банковский счет. Определите в этом классе атрибуты account_number и balance, которые представляют номер счета и баланс. Через параметры конструктора передайте этим атрибутам начальные значения.

Также в классе определите метод add, который принимает некоторую сумму и добавляет ее на баланс счета. И определите метод withdraw, который принимает некоторую сумму и снимает ее с баланса. При этом с баланса нельзя снять больше, чем имеется. Если на балансе недостаточно средств, то пользователю должно выводиться соответствующее сообщение.

Решение
class BankAccount:
 
    def __init__(self, number, sum):
        self.account_number = number
        self.balance = sum
        print(f"Создан счет. Начальный баланс: {sum} единиц")
    
    def add(self, sum):
        self.balance = self.balance + sum
        print(f"На счет зачислено: {sum} единиц")
        
    def withdraw(self, sum):
        if self.balance >= sum: 
            self.balance = self.balance - sum
            print(f"Со счета снято: {sum} единиц")
        else:
            print("Недостаточно средств на счете")
 

acc1 = BankAccount("123456577", 1000)
acc1.add(200)
acc1.withdraw(500)
acc1.withdraw(300)
acc1.withdraw(900)
Дополнительные материалы
Помощь сайту
Юмани:
410011174743222
Перевод на карту
Номер карты:
4048415020898850