Java Объектно-Ориентированное Программирование
Java относится к языкам объектно-ориентированного типа, поэтому, прежде чем приступать к написанию программ, следует познакомиться с принципами объектно-ориентированного программирования.
Основными концепциями здесь являются понятия объект и класс. Программа на языке Java состоит из классов, а каждый класс, в свою очередь, представляет объект реального света. Например, в качестве объекта возьмем робота, в этом случае, в классе Robot, представляющем этот объект, будут описаны его характеристики и поведение, то есть атрибуты и методы.
Класс Robot может состоять из таких атрибутов как:
- ID
- имя
- тип
- цвет
- вес
- скорость передвижения
можно придумать много других атрибутов.
Также класс Robot будет содержать методы, отвечающие за его поведение. К примеру, на начальном этапе робот умеет:
- Спрашивать имя
- Приветствовать по имени
- Выполнять какую-либо работу
Абстракция
Важно помнить, что описывая поведение какого-либо объекта, нужно выбрать подходящий для решения конкретной задачи уровень абстракции. Объекты реального света могут быть достаточно сложны, чтобы описать все их характеристики, более того, решение конкретных задач потребует лишь наличие некоторых из них. Таким образом, мы должны абстрагироваться от некоторых конкретных деталей объекта. Но также важно, чтобы абстракция не была слишком обобщенной и позволила правильно моделировать поведение объекта.
Далее рассмотрим 3 главных принципа, на которых строится объектно-ориентированное программирование:
- Инкапсуляция;
- Наследование;
- Полиморфизм.
Инкапсуляция
Инкапсуляция это механизм, объединяющий атрибуты и методы (которые составляют объект) и охраняющий их от внешнего вмешательства. Инкапсуляция — защитная оболочка, позволяющая обращаться к атрибутам и методам класса только внутри этого класса или при помощи специально спроектированного интерфейса.
Атрибуты или методы класса могут быть открытыми (public) или закрытыми (private). Закрытые атрибуты и методы могут быть доступны только внутри класса, в котором они находятся, они не доступны той части программного кода, которая находится вне этого класса. Открытые атрибуты и методы доступны, в том числе, и коду программы вне класса. Таким образом, открытые методы используются для предоставления контролируемого интерфейса к закрытым элементам класса.