logo

Java OOP концепции

  1. Обектно-ориентирано програмиране
  2. Предимство на ООП пред процедурно-ориентирания език за програмиране
  3. Разлика между обектно-ориентиран и обектно-базиран език за програмиране.

На тази страница ще научим за основите на ООП. Обектно-ориентираното програмиране е парадигма, която предоставя много концепции, като напр наследяване , обвързване на данни , полиморфизъм и т.н.

начало се смята за първия обектно-ориентиран език за програмиране. Програмната парадигма, при която всичко е представено като обект, е известна като истински обектно-ориентиран език за програмиране.

Общи приказки се смята за първия наистина обектно-ориентиран език за програмиране.

Популярните обектно-ориентирани езици са Java , ° С# , PHP , Python , C++ и т.н.

Основната цел на обектно-ориентираното програмиране е да се реализират обекти от реалния свят, например обект, класове, абстракция, наследяване, полиморфизъм и т.н.

java int за удвояване

OOP (обектно-ориентирана система за програмиране)

Обект означава обект от реалния свят, като писалка, стол, маса, компютър, часовник и др. Обектно-ориентирано програмиране е методология или парадигма за проектиране на програма, използваща класове и обекти. Той опростява разработката и поддръжката на софтуер, като предоставя някои концепции:

Освен тези концепции, има някои други термини, които се използват в обектно-ориентирания дизайн:

  • Съединител
  • Кохезия
  • Асоциация
  • Агрегиране
  • Състав
Java OOP концепции

Обект

Java обект

Всеки обект, който има състояние и поведение, е известен като обект. Например стол, химикал, маса, клавиатура, велосипед и т.н. Може да бъде физически или логически.

Обектът може да бъде дефиниран като екземпляр на клас. Обектът съдържа адрес и заема място в паметта. Обектите могат да комуникират, без да знаят подробностите за данните или кода на другия. Единственото необходимо нещо е типът прието съобщение и типът отговор, върнат от обектите.

Пример: Кучето е обект, защото има състояния като цвят, име, порода и т.н., както и поведение като махане с опашка, лай, хранене и т.н.

Клас

Колекция от предмети се нарича клас. Това е логическа единица.

Класът може да се дефинира и като план, от който можете да създадете отделен обект. Класът не заема място.

Наследство

Когато един обект придобие всички свойства и поведение на родителски обект , то е известно като наследство. Осигурява повторно използване на кода. Използва се за постигане на полиморфизъм по време на изпълнение.

Полиморфизъм в Java

Полиморфизъм

Ако една задача се изпълнява по различни начини , това е известно като полиморфизъм. Например: да убеди клиента в различното, да нарисува нещо, например форма, триъгълник, правоъгълник и т.н.

В Java ние използваме претоварване на метода и отмяна на метода, за да постигнем полиморфизъм.

Друг пример може да бъде да говорите нещо; например, котка говори мяу, куче лае woof и т.н.

Абстракция

Скриване на вътрешни детайли и показване на функционалност е известно като абстракция. Например телефонно обаждане, ние не знаем вътрешната обработка.

В Java използваме абстрактен клас и интерфейс, за да постигнем абстракция.

Концепции за капсулиране в Java OOPs

Капсулиране

Свързването (или обвиването) на код и данни заедно в една единица е известно като капсулиране . Например капсула, тя е обвита с различни лекарства.

Java клас е пример за капсулиране. Java bean е напълно капсулиран клас, тъй като всички членове на данните са лични тук.

Съединител

Свързването се отнася до знанието или информацията или зависимостта от друг клас. Възниква, когато класовете са наясно един с друг. Ако даден клас има подробна информация за друг клас, има силно свързване. В Java използваме частни, защитени и публични модификатори, за да покажем нивото на видимост на клас, метод и поле. Можете да използвате интерфейси за по-слабото свързване, защото няма конкретно изпълнение.

Кохезия

Кохезията се отнася до нивото на компонент, който изпълнява една добре дефинирана задача. Една-единствена добре дефинирана задача се изпълнява чрез силно сплотен метод. Слабо кохезионният метод ще раздели задачата на отделни части. Пакетът java.io е силно сплотен пакет, защото има I/O свързани класове и интерфейс. Пакетът java.util обаче е слабо свързан пакет, защото има несвързани класове и интерфейси.

Асоциация

Асоциацията представлява връзката между обектите. Тук един обект може да бъде свързан с един обект или много обекти. Може да има четири вида асоциации между обектите:

  • Едно към едно
  • Един към много
  • Много към едно и
  • Много към много

Нека разберем връзката с примери в реално време. Например, една държава може да има един министър-председател (един към един), а министър-председателят може да има много министри (един към много). Освен това много депутати могат да имат един министър-председател (много към един), а много министри могат да имат много отдели (много към много).

Асоциацията може да бъде еднопосочна или двупосочна.

Агрегиране

Агрегацията е начин за постигане на асоциация. Агрегирането представлява връзката, при която един обект съдържа други обекти като част от своето състояние. Представлява слабата връзка между обектите. Нарича се още като a има връзка в Java. Например, наследството представлява е връзка. Това е друг начин за повторно използване на обекти.

Състав

Композицията също е начин за постигане на асоциация. Композицията представлява връзката, при която един обект съдържа други обекти като част от своето състояние. Съществува силна връзка между съдържащия обект и зависимия обект. Това е състояние, при което съдържащите обекти нямат независимо съществуване. Ако изтриете родителския обект, всички дъщерни обекти ще бъдат изтрити автоматично.


Предимство на ООП пред процедурно-ориентирания език за програмиране

1) OOP улесняват разработката и поддръжката, докато в програмния език, ориентиран към процедури, не е лесно да се управлява, ако кодът расте с увеличаване на размера на проекта.

приложения за облачни изчисления

2) OOPs осигурява скриване на данни, докато в процедурно-ориентиран език за програмиране глобалните данни могат да бъдат достъпни от всяко място.

Глобални данни

Фигура: Представяне на данни в процедурно-ориентираното програмиране


Данни за обекта

Фигура: Представяне на данни в обектно-ориентираното програмиране

3) OOPs предоставя възможност за симулиране на събитие от реалния свят много по-ефективно. Можем да предоставим решението на реална текстова задача, ако използваме езика за обектно-ориентирано програмиране.


Каква е разликата между обектно-ориентиран език за програмиране и обектно-базиран език за програмиране?

Обектно базираният език за програмиране следва всички характеристики на ООП с изключение на наследяването. JavaScript и VBScript са примери за обектно-базирани езици за програмиране.



Знаеш ли?
  • Можем ли да претоварим главния метод?
  • Конструктор на Java връща стойност, но какво?
  • Можем ли да създадем програма без основен метод?
  • Какви са шестте начина за използване на тази ключова дума?
  • Защо множественото наследяване не се поддържа в Java?
  • Защо да използваме агрегация?
  • Можем ли да отменим статичния метод?
  • Какво представлява ковариантният тип връщане?
  • Какви са трите употреби на ключовата дума Java super?
  • Защо да използвате блок за инициализиране на екземпляр?
  • Каква е употребата на празна крайна променлива?
  • Какво е маркер или етикетиран интерфейс?
  • Какво е полиморфизъм по време на изпълнение или изпращане на динамичен метод?
  • Каква е разликата между статично и динамично обвързване?
  • Как е възможно даункастинг в Java?
  • Каква е целта на частния конструктор?
  • Какво е клониране на обект?
Какво ще научим в OOPs Concepts?
  • Предимство на ООП
  • Конвенция за именуване
  • Обект и клас
  • Претоварване на метода
  • Конструктор
  • статична ключова дума
  • тази ключова дума с шест употреби
  • Наследство
  • Агрегиране
  • Замяна на метода
  • Ковариантен тип връщане
  • супер ключова дума
  • Блок за инициализиране на екземпляри
  • крайна ключова дума
  • Абстрактен клас
  • Интерфейс
  • Полиморфизъм по време на изпълнение
  • Статично и динамично обвързване
  • Преобразуване надолу с оператор instanceof
  • Пакет
  • Модификатори за достъп
  • Капсулиране
  • Клониране на обекти