Java Abstraction- Mastering OOP with Abstraction in Java



Tento článok o Java Abstraction vám pomôže pochopiť použitie triedy a rozhrania Abstract a ako ich dosiahnuť pomocou Abstraction.

V predchádzajúcom blogu ste sa dozvedeli o v Jave. Teraz v tomto blogu pochopíme ešte jeden dôležitý pilier tj. Java Abstraction, ktorej hlavnou funkciou je skryť podrobnosti vnútornej implementácie.

Nižšie uvedeným témam sa budem venovať v tomto článku:





Môžete tiež prejsť týmto záznamom kde môžete podrobne porozumieť témam pomocou príkladov.



Abstrakcia v OOP

Keď hovoríme všeobecne o abstrakcii, softvérový jazyk je príkladom abstrakcie. Zoberme si príklad a napíšme vyhlásenie

x = y + z

Vo vyššie uvedenom príkaze pridávame dve premenné, ktoré sú uložené na dvoch rôznych miestach, a potom uložíme výsledok do nového umiestnenia. Čo sa stane potom? Ako možno viete, sú do toho zapojené registre, sady inštrukcií, počítadlá programov, pamäťové jednotky atď. Keď hovoríme o abstrakcii v Jave, hovoríme o abstrakcii v a ako sa to dosahuje. Koncept abstrakcie v OOP začína práve v okamihu, keď je trieda počatá. Abstrakcia sa aplikuje všade v softvéri a OOP.



Čo je to Java Abstraction?

Abstrakcia nie je nič iné ako kvalita riešenia myšlienok, nie udalosti. V zásade ide o skrytie vnútorných detailov a zobrazenie základných vecí používateľovi.

Volanie - Java Abstraction -Edureka

Ak sa pozriete na vyššie uvedený obrázok GIF, môžete zistiť, či vám pri hovore príde hovor, dostaneme možnosť ho buď zdvihnúť, alebo iba odmietnuť. Ale v skutočnosti existuje veľa kódu, ktorý beží na pozadí. Takže tu nepoznáte interné spracovanie toho, ako sa generuje hovor, to je krása abstrakcie. Abstrakciu môžete dosiahnuť dvoma spôsobmi:

a) Abstraktná trieda

b) Rozhranie

Pochopme tieto pojmy podrobnejšie.

Abstraktná trieda

Abstraktná trieda obsahuje kľúčové slovo „abstraktné“. Čo to ale presne znamená? Ak urobíte triedu abstraktnou, nemožno ju vytvoriť inštanciou, to znamená, že nemôžete vytvoriť objekt abstraktnej triedy. Abstraktná trieda môže tiež obsahovať abstraktné aj konkrétne metódy.

ako dynamicky alokovať pole v jave

Poznámka: Pomocou abstraktnej triedy môžete dosiahnuť 0-100% abstrakciu.

Ak chcete použiť abstraktnú triedu, musíte ju zdediť od základnej triedy. Tu musíte poskytnúť implementácie pre abstraktné metódy, inak sa stane abstraktnou triedou.

Pozrime sa na syntax abstraktnej triedy:

Abstraktná trieda Šport {// abstraktná trieda šport Abstraktné void jump () // abstraktná metóda}

Rozhranie

Rozhranie v Jave je súborom abstraktných metód a statických konštánt. Ako možno viete v rozhraní, každá metóda je verejná a abstraktná, neobsahuje však žiadny konštruktor. Spolu s abstrakciou rozhranie tiež pomáha dosiahnuť viacnásobné dedičstvo v Jave.
Poznámka: 100% abstrakciu dosiahnete pomocou rozhraní.

Rozhranie je v zásade skupina príbuzných metód s prázdnymi telami. Poďme si porozumieť rozhraniam na príklade rozhrania služby Shape s príslušnými metódami.

tvar verejného rozhrania {public void draw () public double getArea ()}

Tieto metódy musia byť prítomné v každom „tvare“, nie? Ich práca však bude iná.

Predpokladajme, že chcete nakresliť tvar, napríklad kruh, štvorec, obdĺžnik atď. Už viete, že každý tvar má svoje vlastné rozmery, ako je polomer, výška a šírka. Povedzme, že chcem nakresliť kruh a vypočítať jeho plochu. Vzhľadom na to isté som vo vyššie uvedenom kóde vytvoril dve metódy, tj. Draw () a getArea (). Teraz pomocou týchto metód môžem nakresliť ľubovoľný tvar a vypočítať plochu implementáciou jej rozhrania.

Teraz sa pozrime na funkčnosť, ako môžete implementovať toto rozhranie.
S cieľom implementovať toto rozhranie by sa názov vašej triedy zmenil na ľubovoľný tvar, povedzme „kruh“. Na implementáciu rozhrania triedy teda využijem kľúčové slovo ‘implement’:

public class Circle implements Shape {private double radius 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}} public class Test {public static void main (String args []) {Shape c = new Circle (8) c.draw () System. out.println ('Plocha =' + c.getArea ())}}

Vo vyššie uvedenom príklade som špecifikoval funkcionality pre rôzne metódy a vypočítanú plochu kruhu. Tu pri implementácii rozhrania umožňuje triede formalizovať správanie, ktoré poskytuje. Môžete tiež vytvoriť ďalšiu triedu, napríklad triedu „Obdĺžnik“, ktorá môže zdediť rovnaký tvar „rozhrania“ s rôznymi funkciami.

Príklad abstrakcie v Jave v reálnom čase

Predpokladajme, že máme Sport ako rozhranie. Tu budú implementáciu zabezpečovať triedy zvané „badminton“ a „futbal“. V skutočnom scenári koncový používateľ nebude vedieť o triede implementácie. Preto objekt implementačnej triedy možno poskytnúť továrenskou metódou. Na vytvorenie kritéria triedy implementácie je možné na základe nejakého kritéria použiť továrenskú metódu.
Implementujme to isté a vytvorme rozhranie s názvom Sport.java.

public Interface Sport {void play ()} // Teraz vytvoríme triedu s názvom 'Badminton' public class Badminton implementuje Sport {@Override public void play () {System.out.println ('Playing badminton')}} // Ďalej poďme vytvoriť našu poslednú triedu „Futbal“, ktorá je verejnou triedou Futbal implementuje Šport {@Override public void play () {System.out.println ('Playing football')}

Posledným krokom je vytvorenie hlavnej triedy s názvom „SportInterface“.

public SportInterface {public static void main (String args []) {// váš kód tu}}

Po vykonaní vyššie uvedeného programu bude výstup nasledovný:

Hrať bedminton ------------------- Hrať futbal

Dúfam, že máte prehľad o rozhraní a o tom, ako pomocou neho dosiahnete abstrakciu. Teraz uzavrime tento článok porovnaním Abstrakcie a Zapuzdrenia.

Abstrakcia vs zapuzdrenie

Abstrakcia Zapuzdrenie
Rieši problém na dizajnovej úrovniRieši problém na úrovni implementácie
Používa sa na skrytie nežiaducich údajov a poskytnutie relevantných výsledkovZapuzdrenie znamená skrytie kódu a údajov do jednej jednotky na ochranu údajov pred vonkajším svetom
Vonkajšie usporiadanie - používané z hľadiska dizajnuVnútorné usporiadanie - používa sa z hľadiska implementácie

Dúfam, že ste pochopili rozdiel medzi Abstrakciou a Zapuzdrením. Týmto sme skončili na blogu Java Abstraction. Dúfam, že ste to zistili informatívne a pomohlo vám to zhodnotiť vaše vedomosti. Ak sa chcete dozvedieť viac informácií o prostredí Java, môžete sa pozrieť na stránku

Teraz, keď ste pochopili „Čo je to Java Abstraction“, pozrite sa na autor: Edureka, dôveryhodná online vzdelávacia spoločnosť so sieťou viac ako 250 000 spokojných študentov rozmiestnených po celom svete. Výcvikový a certifikačný kurz Edureka Java J2EE a SOA je určený pre študentov a profesionálov, ktorí chcú byť vývojármi Java. Kurz je navrhnutý tak, aby vám dal náskok v programovaní v jazyku Java a naučil vás základné aj pokročilé koncepty jazyka Java spolu s rôznymi rámcami Java, ako je Hibernate & Spring.

Máte na nás otázku? Uveďte to prosím v sekcii komentárov v tomto blogu „Java Abstraction“ a my sa vám ozveme čo najskôr.