В результате функции, известной как «абстракция данных», пользователю показывается только самая актуальная информация. Пользователю не показываются неактуальные или ненужные измерения. Пример: мы склонны думать об автомобиле в целом, а не о его составных частях.
Термин «абстракция данных» относится к практике выбора только важных характеристик элемента без учета остальных. Характеристики и действия вещи отличают ее от других в своем роде и помогают классифицировать ее.
Абстрактные классы и программные интерфейсы — это средства, с помощью которых в Java осуществляется абстракция. Используя интерфейсы, мы можем добиться полной абстракции.
Продолжительность курса разработчика Java может варьироваться от шести недель до одного года.
ИСПОЛЬЗОВАНИЕ РЕЗЮМЕ КЛАССОВ И РЕЗЮМЕ МЕТОДОВ
- Объявление ключевого слова abstract делает класс абстрактным.
- Методы, которые определены, но не реализованы, считаются абстрактными.
- Ни один или все методы класса не должны быть абстрактными, чтобы он считался абстрактным классом. Возможно, некоторые из них являются реальными полезными методами.
- Когда создается абстрактный метод, подкласс всегда должен переопределять его, принудительно переопределяя или делая подкласс абстрактным.
- Ключевое слово abstract должно использоваться при объявлении класса, имеющего какие-либо абстрактные методы.
- Абстрактные классы не имеют конкретных экземпляров. Иными словами, оператор new нельзя использовать для создания экземпляра абстрактного класса.
- Функция по умолчанию Object() { [собственный код] } присутствует в каждом абстрактном классе, и разрешены параметризованные конструкторы.
КОГДА ИСПОЛЬЗОВАТЬ РЕФЕРАТНЫЕ ЗАНЯТИЯ И РЕФЕРАТНЫЕ МЕТОДЫ С ПРИМЕРОМ
Иногда нам нужно только указать структуру абстракции в суперклассе, не давая полной реализации каждой отдельной функции. Часто желательно построить суперкласс, который не предоставляет никаких подробностей реализации, а скорее определяет форму обобщения, которая является общей для всех его подклассов.
Возьмем в качестве примера вездесущую «форму» в САПР или игровом симуляторе. Каждая форма имеет свой уникальный цвет, размер и другие атрибуты, а «форма» является основным типом данных. Различные формы, такие как круги, квадраты, треугольники и т. д., наследуют это свойство и могут отображать широкий спектр возможных вариантов поведения и характеристик. Некоторые формы, например, могут быть инвертированы. Например, при попытке определить область формы вы можете столкнуться с неожиданным поведением. Иерархия типов представляет параллели и расхождения между формами и структурами.
ИНКАПСУЛЯЦИЯ ПРОТИВ АБСТРАКЦИИ ДАННЫХ
- Скрыть информацию с помощью инкапсуляции и скрыть детали с помощью абстракции (скрытие реализации).
- В отличие от инкапсуляции, которая объединяет данные и методы, работающие с данными, абстракция данных направлена на то, чтобы сделать интерфейс понятным для пользователя, скрывая при этом детали реализации.
- В то время как абстрактные классы и интерфейсы могут использоваться для создания абстракции, инкапсулированные классы в Java предназначены для сокрытия данных от посторонних глаз.
- Разница между инкапсуляцией и абстракцией заключается в том, что первая происходит на этапе реализации, а вторая — на этапе проектирования.
Курс веб-разработки на Java улучшит ваши навыки.
ПРЕИМУЩЕСТВА АБСТРАКЦИИ
- В результате повышается простота.
- Снижает вероятность ошибок, вызванных дублированием кода, и максимизирует повторное использование кода.
- Способствует лучшей защите конфиденциальных данных внутри программного обеспечения или приложения, ограничивая доступ пользователей только к той информации, которая им необходима для ее использования.
- В результате повышается ремонтопригодность приложения.
- В результате повышается модульность приложения.
- Поскольку мы можем вносить любые коррективы в нашу внутреннюю систему, внедрение обновления не составит труда.
// Java-программа для иллюстрации
// концепция абстракции
абстрактный класс Shape {
Цвет строки;
// это абстрактные методы
абстрактная двойная область();
общедоступная абстрактная строка toString();
// абстрактный класс может иметь конструктор
общедоступная форма (цвет строки)
{
System.out.println("Вызван конструктор формы");
этот.цвет = цвет;
}
// это конкретный метод
public String getColor() { возвращаемый цвет; }
}
класс Circle расширяет форму {
двойной радиус;
публичный круг (цвет строки, двойной радиус)
{
// вызов конструктора формы
супер(цвет);
System.out.println("Вызван конструктор круга");
this.radius = радиус;
}
@Переопределить двойную область()
{
return Math.PI * Math.pow(радиус, 2);
}
@Переопределить общедоступную строку toString()
{
вернуть «Цвет круга» + super.getColor()
+ «и площадь: « + площадь();
}
}
класс Rectangle расширяет форму {
двойная длина;
двойная ширина;
общедоступный прямоугольник (цвет строки, двойная длина,
двойная ширина)
{
// вызов конструктора формы
супер(цвет);
System.out.println("Вызван конструктор прямоугольника");
это.длина = длина;
this.width = ширина;
}
@Override double area() { возвращаемая длина * ширина; }
@Переопределить общедоступную строку toString()
{
return "Цвет прямоугольника" + super.getColor()
+ «и площадь: « + площадь();
}
}
открытый класс Тест {
public static void main (аргументы String [])
{
Форма s1 = новый круг («Красный», 2.2);
Форма s2 = новый прямоугольник («Желтый», 2, 4);
System.out.println(s1.toString());
System.out.println(s2.toString());
}
}
Выход
Конструктор формы называется
Конструктор круга называется
Конструктор формы называется
Вызывается конструктор прямоугольника
Цвет круга красный и площадь: 15.205308443374602
Цвет прямоугольника — желтый, а площадь: 8,0.
Курс разработки Java-приложений улучшит вашу карьеру.