Java Abstraction - освоение ООП с абстракцией в Java



Эта статья об абстракции Java поможет вам понять использование абстрактного класса и интерфейса и то, как добиться этого с помощью абстракции.

В предыдущем блоге вы узнали о в Java. Теперь в этом блоге мы поймем еще один важный столп То есть Java Abstraction, основная функция которого - скрыть внутренние детали реализации.

В этой статье я затрону указанные ниже темы:





Вы также можете просмотреть эту запись где вы можете подробно разобраться в тематике с примерами.



преобразования в информатике с примером

Абстракция в ООП

Когда мы обычно говорим об абстракции, программный язык является примером абстракции. Давайте возьмем пример и напишем утверждение как:

х = у + г

В приведенном выше заявлении мы добавляем две переменные, которые хранятся в двух разных местах, а затем сохраняем результат в новом месте. Итак, что будет дальше? Как вы, возможно, знаете, здесь задействованы регистры, наборы команд, счетчики программ, блоки памяти и т. Д. Когда мы говорим об абстракции в Java, мы говорим об абстракции в и как это достигается. Идея абстракции в ООП начинается прямо в момент зарождения класса. Абстракция применяется повсюду в программном обеспечении и ООП.



Что такое абстракция Java?

Абстракция - это не что иное, как способность работать с идеями, а не с событиями. В основном он занимается сокрытием внутренних деталей и показом пользователю важных вещей.

Вызов - Java Abstraction - Edureka

Если вы посмотрите на гифку выше, вы увидите, что когда вам звонят, у нас есть возможность либо ответить, либо просто отклонить звонок. Но на самом деле в фоновом режиме работает много кода. Итак, здесь вы не знаете, как генерируется вызов внутренней обработки, в этом вся прелесть абстракции. Вы можете добиться абстракции двумя способами:

а) Абстрактный класс

б) Интерфейс

Давайте разберемся с этими концепциями более подробно.

разница между aws и лазурью

Абстрактный класс

Абстрактный класс содержит ключевое слово «abstract». Но что именно это означает? Если вы сделаете класс абстрактным, его нельзя будет создать, т.е. вы не сможете создать объект абстрактного класса. Кроме того, абстрактный класс может содержать как абстрактные, так и конкретные методы.

Заметка: Вы можете добиться абстракции 0–100%, используя абстрактный класс.

Чтобы использовать абстрактный класс, вы должны унаследовать его от базового класса. Здесь вы должны предоставить реализации для абстрактных методов, иначе он станет абстрактным классом.

Давайте посмотрим на синтаксис абстрактного класса:

Абстрактный класс Sports {// абстрактный класс Sports Abstract void jump () // абстрактный метод}

Интерфейс

Интерфейс в Java - это набор абстрактных методов и статических констант. Как вы, возможно, знаете в интерфейсе, каждый метод является открытым и абстрактным, но не содержит конструктора. Наряду с абстракцией интерфейс также помогает достичь множественного наследования в Java.
Заметка: Вы можете добиться 100% абстракции, используя интерфейсы.

По сути, интерфейс - это группа связанных методов с пустыми телами. Давайте разберемся с интерфейсами на примере интерфейса Shape ’со связанными с ним методами.

форма публичного интерфейса {public void draw () public double getArea ()}

Эти методы должны присутствовать в каждой «форме», верно? Но их работа будет другой.

Предположим, вы хотите нарисовать фигуру, например круг, квадрат, прямоугольник и т. Д. Вы уже знаете, что каждая фигура имеет свои собственные размеры, такие как радиус, высоту и ширину. Скажем, я хочу нарисовать круг и вычислить его площадь. Принимая во внимание то же самое, я создал два метода в приведенном выше коде, а именно draw () и getArea (). Теперь, используя эти методы, я могу нарисовать любую фигуру и вычислить площадь, реализовав ее интерфейс.

Теперь давайте рассмотрим функциональные возможности того, как можно реализовать этот интерфейс.
Чтобы реализовать этот интерфейс, имя вашего класса изменится на любое из Shape, скажем, «Circle». Итак, чтобы реализовать интерфейс класса, я буду использовать ключевое слово «реализации»:

разница между перегрузкой метода и переопределением метода
открытый класс Circle реализует Shape {частный двойной радиус public Circle (double r) {this.radius = r} void draw () {System.out.println ('Drawing Circle')} public double getArea () {return Math.PI * this.radius * this.radius} public double getRadius () {return this.radius}} открытый класс Test {public static void main (String args []) {Shape c = new Circle (8) c.draw () System. out.println ('Площадь =' + c.getArea ())}}

В приведенном выше примере я указал функциональные возможности различных методов и рассчитал площадь круга. Здесь, при реализации интерфейса, он позволяет классу более формально описывать поведение, которое он обеспечивает. Вы также можете создать другой класс, например класс «Прямоугольник», который может наследовать ту же «форму» интерфейса с различными функциями.

Пример абстракции в java в реальном времени

Допустим, у нас есть Sport в качестве интерфейса. Здесь реализацию обеспечат классы «Бадминтон» и «Футбол». В реальном сценарии конечный пользователь не будет знать о классе реализации. Следовательно, объект класса реализации может быть предоставлен фабричным методом. Заводской метод можно использовать для создания объекта класса реализации на основе некоторого критерия.
Давайте реализуем то же самое и создадим интерфейс под названием Sport.java.

public Interface Sport {void play ()} // Теперь мы создадим класс с именем «Бадминтон». Открытый класс. Бадминтон реализует Спорт {@Override public void play () {System.out.println ('Playing badminton')}} // Теперь давайте создадим наш последний общедоступный класс «Футбол». Футбол реализует Спорт {@Override public void play () {System.out.println ('Играем в футбол')}

Последний шаг - создать основной класс с именем «SportInterface».

public SportInterface {public static void main (String args []) {// здесь ваш код}}

Когда вы выполните указанную выше программу, результат будет таким, как показано ниже:

Игра в бадминтон ------------------- Игра в футбол

Я надеюсь, что вы, ребята, понимаете интерфейс и то, как с его помощью можно добиться абстракции. Теперь давайте завершим эту статью сравнением абстракции и инкапсуляции.

Абстракция против инкапсуляции

Абстракция Инкапсуляция
Решает проблему на уровне дизайнаРешает проблему на уровне реализации
Используется для сокрытия нежелательных данных и получения релевантных результатовИнкапсуляция означает сокрытие кода и данных в одном блоке для защиты данных от внешнего мира.
Внешний вид - используется с точки зрения дизайнаВнутренний макет - используется с точки зрения реализации

Надеюсь, вы поняли разницу между абстракцией и инкапсуляцией. На этом мы подошли к концу блога Java Abstraction. Надеюсь, вы нашли его информативным и помогли повысить ценность ваших знаний. Если вы хотите узнать больше о Java, вы можете обратиться к

Теперь, когда вы поняли «Что такое абстракция Java», ознакомьтесь с от Edureka, надежной компании по онлайн-обучению с сетью из более чем 250 000 довольных учащихся по всему миру. Курс обучения и сертификации по Java J2EE и SOA от Edureka предназначен для студентов и профессионалов, которые хотят стать Java-разработчиками. Курс разработан, чтобы дать вам хорошее начало в программировании на Java и обучить вас как основным, так и продвинутым концепциям Java, а также различным средам Java, таким как Hibernate и Spring.

Есть вопрос к нам? Пожалуйста, укажите это в разделе комментариев этого блога «Java Abstraction», и мы свяжемся с вами как можно скорее.