Введение в классы в 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
.
Объектно-ориентированное программирование (ООП)
ООП фокусируется на объектах, которые представляют реальные сущности или абстракции, объединяя данные и методы, которые работают с этими данными. Основная идея заключается в том, что программа состоит из объектов, которые взаимодействуют между собой.
Основные принципы ООП:
- Абстракция — процесс выделения главных характеристик объекта, скрывая сложные детали реализации.
- Инкапсуляция — объединение данных и методов, работающих с этими данными, в единую сущность (класс).
- Наследование — механизм, позволяющий одному классу наследовать свойства и методы другого.
- Полиморфизм — способность объектов обрабатывать разные данные с помощью одного интерфейса.
Введение в классы
Класс — это шаблон или схема, по которой создаются объекты. Класс определяет свойства (поля) и поведение (методы) объектов.
Структура класса:
- Поля класса — переменные, которые описывают состояние объекта. Это данные, которыми управляет объект.
- Методы класса — функции, определяющие поведение объекта.
Пример создания класса:
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
хранят имя и возраст человека.
Виды полей:
- Поля экземпляра — это поля, принадлежащие конкретному объекту. Каждый объект имеет свои значения этих полей.
- Статические поля — это поля, общие для всех объектов класса, принадлежащие самому классу.
Пример:
public class Car {
// Статическое поле
static int numberOfWheels = 4;
// Поле экземпляра
String model;
public Car(String model) {
this.model = model;
}
}
Организация кода
Правильная организация кода важна для поддерживаемости и масштабируемости программ. При разработке на Java важно понимать, как эффективно организовывать код с использованием классов и объектов.
Основные принципы:
- Классы — ключевые единицы в ООП. Каждый класс отвечает за свою задачу.
- Методы — объединяют операции, которые должны быть выполнены объектом.
- Инкапсуляция — скрытие внутренних деталей реализации и предоставление только нужного интерфейса (методов) пользователю.
- Наследование — создание новых классов на основе существующих.
- Модули — классы и пакеты организуются в модули для разделения логики программы.
Процедурное программирование vs ООП
- В процедурном программировании фокус на функциях и процедурах, которые обрабатывают данные. Данные передаются между функциями явно.
- В ООП фокус на объектах, которые содержат данные и методы. Данные и функции объединяются внутри объектов, что упрощает управление сложными системами.
Процедурное программирование | ООП |
---|---|
Программа состоит из процедур. | Программа состоит из объектов. |
Данные и функции отдельно. | Данные и функции объединены. |
Повторное использование кода через функции. | Повторное использование через наследование. |
Сложно масштабировать большие программы. | Удобно для масштабирования и организации. |
Пример: создание класса и объектов
Задача: создать класс BankAccount
, который будет представлять банковский счёт клиента.
- Класс
BankAccount
: - Поля:
accountNumber
,balance
. - Методы:
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. Введение в классы. Поля класса. Процедурное программирование, ООП, организация кода/задания по теме|задания по теме]]