Джава – распространенный и достаточно легкий язык программирования. Приложив должные усилия, освоить его сможет любой.
Для того, чтобы писать на Java качественный софт, требуется изучить его базовые принципы, инструменты и функции. Немаловажную роль здесь играют объекты и функции. А еще – абстрактные классы Java. Именно о них пойдет речь далее.
Термины – что пригодится для понимания
Перед тем, как начинать изучать выбранное направление, стоит запомнить несколько ключевых понятий. Они пригодятся всем программистам, желающим писать софт на языках с объектно-ориентированными концепциями:
- Алгоритмы – инструкции, принципы и правила, которые необходимы для решения поставленной перед разработчиком задачи.
- API – интерфейс прикладного программирования. Процедуры и правила, а также протоколы, помогающие ПО взаимодействовать друг с другом и разнообразными службами.
- Аргумент – передаваемое в функцию или команду значение.
- Переменная – единица хранения информации. Именованная ячейка памяти.
- Объект – связанные между собой переменные, структурные данные и константы. Они обрабатываются и выбираются совместно.
- Константа – значение, которое по ходу выполнения кода никогда не меняется.
- Массив – список или группа схожих типов значений, прошедших предварительную группировку. Множество электронных материалов.
- Ключевое слово – слово, зарезервированное языком программирования. Необходимо для обозначения операций, команд, функций.
- Указатель – переменная, содержащая адрес места в памяти.
Также пользователю предстоит выяснить, что собой представляет метод и абстракция. Все это пригодится при попытках рассмотреть наглядный пример упомянутого ранее вида классов.
Несколько слов о методах
Метод – это блок кода, который имеет имя. Он объявляется внутри заданного класса. Содержит законченную последовательность операций, необходимых для решения поставленной изначально задачи. Соответствующий блок допускается использовать многократно.
Метод – функция, указывающая на то, что умеет делать имеющийся класс. В Java выступает членом classes. Обладает различными модификаторами доступа:
- Public – публичный. Методы и поля видимы другим классам в коде в пределах пакета или из внешних пакетов.
- Protected – «частный».
- Private – приватный. Методы и поля доступны в пределах заданного класса.
- По умолчанию. Применяется, когда модификатор отсутствует вовсе.
Теперь стоит рассмотреть абстрактные классы и методы более подробно.
Понятие класса
Class в Java – это шаблон или описание имеющегося в коде объекта. Object – это экземпляр класса. Пример – аналогия с человеком. У каждого есть две руки, ноги, глаза, туловище и так далее. Есть некий шаблон – это класс. Реально существующий человек – объект.
Задается класс при помощи ключевого слова class. Далее пишется его название и в фигурные скобках – описание. А именно – указываются поля и method.
Абстракции
Абстракция – качество общения с идеями, а не некоторыми событиями. Пример – электронная почта. Тут все скрыто от обычного пользователя: протоколы, а также детали происходящего во время отправки и получения сообщений. Но для того, чтобы написать и отослать e-mail, клиент может просто напечатать его содержимое. Далее – щелкнуть по кнопке, отвечающей за реализацию соответствующей функции.
Говоря об абстрактных классах в Джаве, нужно понимать, что собой представляет абстракция. Это – процедура скрытия деталей реализации от юзера. В конечном итоге пользователь увидит только итоговый функционал. Говоря простым языком – предоставляется информация о том, что делает объект, а не как он справляется с задачей.
Абстрактный класс
Класс, который содержит в себе ключевое слово abstract носит название абстрактного. Здесь программист должен запомнить следующее:
- abstract class может содержать абстрактные методы Java – без тела (public void get(););
- если обычный класс имеет хотя бы один единственный абстрактный метод, этот class объявляется абстрактным;
- реализовать абстрактный класс нельзя;
- для использования рассматриваемого элемента кода требуется наследовать его из другого класса – для обеспечения реализации методов абстрактного типа в его пределах.
Если применяется наследование абстрактного класса, требуется обеспечить полную реализацию всех соответствующих методов в нем.
Наглядный пример
Вот код, который продемонстрирует рассматриваемый компонент:
/* File name : Employee.java */
public abstract class Employee {
private String name;
private String address;
private int number;
public Employee(String name, String address, int number) { System.out.println("Собираем данные о работнике");
this.name = name;
this.address = address;
this.number = number;
} public double computePay() {
System.out.println("Внутри Employee computePay");
return 0.0;
}
public void mailCheck() {
System.out.println("Отправляем чек " + this.name + " " + this.address);
}
public String toString() {
return name + " " + address + " " + number;
}
public String getName() {
return name;
}
public String getAddress() {
return address;
}
public void setAddress(String newAddress) {
address = newAddress;
}
public int getNumber() {
return number;
}
}
Здесь можно увидеть класс Employee – он такой же, как обычный класс в Джаве. Он абстрактный, но имеет три поля, а также 7 методов и один конструктор.
Можно создать new экземпляр класса Employee:
/* File name : AbstractDemo.java */
public class AbstractDemo {
public static void main(String [] args) {
/* Следующие действия неверны и выдадут ошибку */
Employee e = new Employee("Иванов И.И.", "Минск, Беларусь", 43); System.out.println("\n Вызываем mailCheck, используя ссылку Employee --"); e.mailCheck();
}
}
Но при компиляции система выдаст ошибку.
Наследование
Вот код, который поможет рассмотреть наглядный пример наследования:
Здесь:
- Не получится создать экземпляр класса Employee.
- Можно создать экземпляр Salary. Его используют для получения доступа к трем полям и методам Employee.
После обработки кода на экране появится следующий результат:
Абстрактные методы
Пример абстрактного класса Java был рассмотрен выше. Чтобы class содержал конкретный метод, но фактическая реализация осуществлялась за счет дочерних классов, можно объявить в «родителе» абстрактный method.
Здесь стоит запомнить, что:
- для объявления используется слово abstract;
- ключевое слово ставится перед именем метода при его объявлении;
- абстрактный метод имеет сигнатуру method, но не имеет тела;
- вместо фигурных скобок ставится точка с запятой в конце.
Специализированные дистанционные компьютерные курсы помогут лучше разобраться в том, что такое public abstract void, extends, classes и не только.