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

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

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

Так что наследование — хорошая особенность ООП.

Сегодняшний ежедневный проект заключался в реализации класса, который моделирует часть игры. Это может быть шахматная или шашечная фигура. Фигура имеет местоположение, заданное координатами x и y, как вы можете видеть на игровой доске. Класс реализует некоторые поведения для перемещения по доске, а также имеет методы freeze и unfreeze, которые делают фигуру неподвижной.

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

Я уверен, что когда мы приступим к таким вещам, как использование Spring Framework и разработка веб-приложений с помощью Java, сложность проектов возрастет.

И последнее замечание: сегодня Apple анонсировала свой новый iPhone.

1000 долларов за телефон.

Я просто ошеломлен.