Введение в ООП
Часть раздела Объектно-ориентированное программирование путешествия по Java на Coddy — урок 2 из 87.
Объектно-ориентированное программирование (ООП) — это способ структурирования кода с использованием объектов, которые содержат данные и поведение.
Класс — это чертеж
public class Animal {
String name;
public Animal(String name) {
this.name = name;
}
public String makeSound() {
return this.name + " makes a sound!";
}
}Объект — это экземпляр, созданный на основе чертежа
Animal dog = new Animal("Buddy");
System.out.println(dog.makeSound());Вывод:
Buddy makes a sound!ООП позволяет моделировать объекты реального мира. Каждый объект содержит данные (поля) и действия (методы). Четырьмя столпами ООП являются инкапсуляция, наследование, полиморфизм и абстракция.
Задание
ЛегкоСоздайте класс Animal, который демонстрирует основы ООП:
- Поле
name(String) - Конструктор, который устанавливает имя
- Метод
makeSound(), который возвращает"<name> makes a sound!"
Шпаргалка
Объектно-ориентированное программирование (ООП) структурирует код с помощью объектов, которые содержат данные и поведение.
Класс — это чертеж для создания объектов:
public class Animal {
String name;
public Animal(String name) {
this.name = name;
}
public String makeSound() {
return this.name + " makes a sound!";
}
}Объект — это экземпляр, созданный на основе класса:
Animal dog = new Animal("Buddy");
System.out.println(dog.makeSound());Объекты имеют данные (поля) и действия (методы). Четырьмя столпами ООП являются инкапсуляция, наследование, полиморфизм и абстракция.
Попробуйте сами
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
String name = scanner.nextLine();
Animal animal = new Animal(name);
System.out.println("Animal name: " + animal.name);
System.out.println(animal.makeSound());
}
}В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Объектно-ориентированное программирование
1Основы ООП
Внешние файлыВведение в ООПКлассы и объектыКлючевое слово thisМетодыПоля (атрибуты)Метод-конструкторПерегрузка конструкторовИтоги — Простой калькулятор4Наследование
Основы наследования (extends)Ключевое слово superПереопределение методов (@Override)Цепочка конструкторовКласс ObjectОдиночное и многоуровневое наследованиеПочему нет множественного наследования классовИтоги — Иерархия сотрудников7Специальные методы и класс Object
Метод toString()equals() и hashCode()Метод clone()compareTo() и ComparableИнтерфейс ComparatorПовторение — Кастомная сортировка2Модификаторы доступа и инкапсуляция
Обзор уровней доступаМетоды геттеры и сеттерыСокрытие данныхКлючевое слово finalИтоги — Менеджер банковского счета5Полиморфизм
Основы перегрузки методовПереопределение методов (Run-Time)Upcasting и DowncastingОператор instanceofАбстрактные классы и методыИтоги: Калькулятор фигур8Продвинутые концепции ООП
Композиция против наследованияАгрегация против композицииВнутренние, вложенные и анонимные классыEnums и методы перечисленийRecords (Java 16+)Sealed-классы (Java 17+)11Паттерны проектирования. Часть 1
Введение в паттерны проектированияПаттерн SingletonПаттерн FactoryПаттерн BuilderПаттерн ObserverПаттерн Strategy3Свойства класса и статические члены
Переменные экземпляра и статические переменныеСтатические методыСтатические блокиКонстанты (static final)Итоги: Счетчик и утилиты6Интерфейсы и абстрактные классы
Введение в интерфейсыРеализация интерфейсовРеализация нескольких интерфейсовDefault и Static методы в интерфейсахАбстрактные классы vs ИнтерфейсыФункциональные интерфейсыИтоги — Платежная система9Обобщения
Введение в обобщенияОбобщенные классыОбобщенные методыОграниченные параметры типаСимволы подстановки (Wildcards: ?, extends, super)Итоги — Обобщенный контейнер12Паттерны проектирования. Часть 2
Паттерн «Команда»Паттерн «Адаптер»Паттерн «Декоратор»Паттерн «Шаблонный метод»Паттерн «Состояние»Паттерн «Компоновщик»Паттерн «Итератор»