Что такое объект в ООП?

«Что такое объект в ООП?» — вопрос из категории ООП, который задают на 28% собеседований C# Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Объект — это конкретный экземпляр класса, существующий в памяти во время выполнения программы. Он содержит:

  1. Состояние (State): Данные, хранящиеся в полях (свойствах) объекта.
  2. Поведение (Behavior): Операции, которые объект может выполнять, определённые его методами.
  3. Идентичность (Identity): Уникальная ссылка, позволяющая отличать один объект от другого, даже если их состояние идентично.

Объекты являются основными «строительными блоками» ООП-программ и взаимодействуют друг с другом через вызовы методов.

Пример на C#:

// Класс — это чертёж
public class BankAccount
{
    // Состояние (поля/свойства)
    public string AccountNumber { get; }
    public decimal Balance { get; private set; }
    public string Owner { get; set; }

    // Конструктор для инициализации состояния
    public BankAccount(string accountNumber, string owner)
    {
        AccountNumber = accountNumber;
        Owner = owner;
        Balance = 0;
    }

    // Поведение (методы)
    public void Deposit(decimal amount)
    {
        if (amount > 0)
            Balance += amount;
    }

    public bool Withdraw(decimal amount)
    {
        if (amount > 0 && Balance >= amount)
        {
            Balance -= amount;
            return true;
        }
        return false;
    }
}

// Создание объектов (экземпляров класса)
BankAccount account1 = new BankAccount("ACC123", "Alice");
BankAccount account2 = new BankAccount("ACC456", "Bob");

// Каждый объект имеет собственное состояние
account1.Deposit(1000); // Баланс account1 = 1000
account2.Deposit(500);  // Баланс account2 = 500

// Объекты взаимодействуют
account1.Withdraw(200);
Console.WriteLine(account1.Balance); // Вывод: 800

Ключевой принцип: Объекты инкапсулируют свои данные (состояние) и предоставляют контролируемый интерфейс (методы) для взаимодействия с ними.