Если вы уже знакомы с основами объектно-ориентированного программирования (ООП), то можете пропустить эту главу или выборочно прочитать некоторые разделы, чтобы освежить знания в памяти. В любом случае, без понимания концепции ООП вы не сможете программировать на языке Java.
Забегая вперед, отметим, что объектно—ориентированный подход – не панацея от всех проблем и не инструмент на все случаи жизни. Не случайно в языке Java, начиная с версии Java 8, добавлены лямбда—выражения, при помощи которых намного удобнее реализуется отложенное выполнение кода и программирование обработки событий. Об этом будет рассказано в главе 11.
Ответу на вопрос «Зачем нужно ООП и как оно работает?» посвящено много статей и книг. Решив заняться программированием всерьез, вы не сможете обойтись без глубокого изучения массива информации. Но это будет позже. Сейчас мы разберем основные понятия ООП и обрисуем общую картину. Этого будет вполне достаточно на первое время, особенно для программирования на уровне хобби.
Любая прикладная программа реализует последовательность действий для решения некой задачи. Иными словами, программа – это инструмент, который мы создаем своими руками. Поскольку большинство задач можно решить различными способами, то и внутреннее устройство инструмента может быть разным. С этой точки зрения ООП – один из подходов к конструкции инструмента.
С другой стороны, ООП – это специальный образ мышления, особая философия. Необходимость научиться мыслить новыми понятиями вызывает затруднения у начинающих программистов. В данном случае бесполезно заучивать определения – необходимо понять суть.
Парадигма ООП заключается в том, что решаемую задачу можно разделить на обособленные объекты, над которыми мы совершаем определенные действия. Здесь нас подстерегает первая проблема: