Skip to content

Введение в классы в Java. Поля класса. Процедурное программирование и ООП

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

Цель:

  • Познакомиться с понятиями классов, объектов и полей.
  • Изучить основные принципы процедурного программирования и ООП.
  • Научиться базовым навыкам работы с классами и полями в Java.

Процедурное программирование

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

Ключевые характеристики: 1. Процедуры — функции, которые выполняют конкретные задачи. 2. Структурированность — программа делится на функции и модули для упрощения понимания. 3. Масштабируемость — добавление новых функций возможно, но трудно управлять большим количеством взаимосвязанных данных.

Пример программирования в процедурном стиле:

public class ProceduralExample {
    public static void main(String[] args) {
        int a = 5;
        int b = 10;
        int sum = addNumbers(a, b);
        System.out.println("Сумма: " + sum);
    }

    public static int addNumbers(int x, int y) {
        return x + y;
    }
}
  • В примере программа организована вокруг вызова функций (или процедур), таких как addNumbers.

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

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

Основные принципы ООП:

  1. Абстракция — процесс выделения главных характеристик объекта, скрывая сложные детали реализации.
  2. Инкапсуляция — объединение данных и методов, работающих с этими данными, в единую сущность (класс).
  3. Наследование — механизм, позволяющий одному классу наследовать свойства и методы другого.
  4. Полиморфизм — способность объектов обрабатывать разные данные с помощью одного интерфейса.

Введение в классы

Класс — это шаблон или схема, по которой создаются объекты. Класс определяет свойства (поля) и поведение (методы) объектов.

Структура класса:

  1. Поля класса — переменные, которые описывают состояние объекта. Это данные, которыми управляет объект.
  2. Методы класса — функции, определяющие поведение объекта.

Пример создания класса:

public class Person {
    // Поля класса
    String name;
    int age;

    // Конструктор класса
    public Person(String name, int age) {
        this.name = name;
        this.age = age;
    }

    // Метод класса
    public void greet() {
        System.out.println("Привет, меня зовут " + name + ", и мне " + age + " лет.");
    }
}
  • Поля: name и age — это свойства объекта.
  • Методы: greet() — это действие, которое объект может выполнить.

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

Объект — это экземпляр класса. Чтобы создать объект, необходимо использовать оператор new:

public class Main {
    public static void main(String[] args) {
        // Создание объекта класса Person
        Person person1 = new Person("Иван", 30);
        person1.greet();  // Вызов метода объекта
    }
}

Результат выполнения:

Привет, меня зовут Иван, и мне 30 лет.

Поля класса

Поля (или атрибуты) класса представляют собой переменные, которые хранят состояние объекта. В примере с классом Person поля name и age хранят имя и возраст человека.

Виды полей:

  1. Поля экземпляра — это поля, принадлежащие конкретному объекту. Каждый объект имеет свои значения этих полей.
  2. Статические поля — это поля, общие для всех объектов класса, принадлежащие самому классу.

Пример:

public class Car {
    // Статическое поле
    static int numberOfWheels = 4;

    // Поле экземпляра
    String model;

    public Car(String model) {
        this.model = model;
    }
}

Организация кода

Правильная организация кода важна для поддерживаемости и масштабируемости программ. При разработке на Java важно понимать, как эффективно организовывать код с использованием классов и объектов.

Основные принципы:

  1. Классы — ключевые единицы в ООП. Каждый класс отвечает за свою задачу.
  2. Методы — объединяют операции, которые должны быть выполнены объектом.
  3. Инкапсуляция — скрытие внутренних деталей реализации и предоставление только нужного интерфейса (методов) пользователю.
  4. Наследование — создание новых классов на основе существующих.
  5. Модули — классы и пакеты организуются в модули для разделения логики программы.

Процедурное программирование vs ООП

  • В процедурном программировании фокус на функциях и процедурах, которые обрабатывают данные. Данные передаются между функциями явно.
  • В ООП фокус на объектах, которые содержат данные и методы. Данные и функции объединяются внутри объектов, что упрощает управление сложными системами.
Процедурное программирование ООП
Программа состоит из процедур. Программа состоит из объектов.
Данные и функции отдельно. Данные и функции объединены.
Повторное использование кода через функции. Повторное использование через наследование.
Сложно масштабировать большие программы. Удобно для масштабирования и организации.

Пример: создание класса и объектов

Задача: создать класс BankAccount, который будет представлять банковский счёт клиента.

  1. Класс BankAccount:
  2. Поля: accountNumber, balance.
  3. Методы: deposit(), withdraw().

Пример кода:

public class BankAccount {
    // Поля экземпляра
    private String accountNumber;
    private double balance;

    // Конструктор
    public BankAccount(String accountNumber, double initialBalance) {
        this.accountNumber = accountNumber;
        this.balance = initialBalance;
    }

    // Метод для пополнения счета
    public void deposit(double amount) {
        balance += amount;
        System.out.println("Пополнение: " + amount + ". Новый баланс: " + balance);
    }

    // Метод для снятия со счета
    public void withdraw(double amount) {
        if (amount > balance) {
            System.out.println("Недостаточно средств.");
        } else {
            balance -= amount;
            System.out.println("Снятие: " + amount + ". Новый баланс: " + balance);
        }
    }

    // Метод для вывода информации о балансе
    public void printBalance() {
        System.out.println("Текущий баланс: " + balance);
    }
}

Использование класса:

public class Main {
    public static void main(String[] args) {
        // Создание объекта класса BankAccount
        BankAccount account = new BankAccount("12345", 1000);

        // Вызов методов
        account.deposit(500);
        account.withdraw(300);
        account.printBalance();
    }
}

Результат выполнения:

Пополнение: 500. Новый баланс: 1500.0
Снятие: 300. Новый баланс: 1200.0
Текущий баланс: 1200.0

Заключение

Классы и объекты — это основа объектно-ориентированного программирования, которое используется для построения сложных программ. ООП помогает организовать код таким образом, чтобы он был более структурированным и поддерживаемым. Поля класса описывают состояние объектов, а методы — их поведение. Организация кода с использованием классов делает программы более модульными и легко расширяемыми.

Важные моменты: - Процедурное программирование фокусируется на функциях, тогда как ООП — на объектах. - Классы в Java являются центральной частью программы, они объединяют данные и методы. - Правильная организация кода упрощает поддержку и расширение программ.

[[Programming/java/1. osnovi/Тема 3. Основы ООП/Урок 1. Введение в классы. Поля класса. Процедурное программирование, ООП, организация кода/задания по теме|задания по теме]]