Abstracvstoupit Java
Co je to bลiลกnรญ svalytracvstoupit Java?
Abstracvรกnรญ je koncept objektovฤ orientovanรฉho programovรกnรญ, kterรฝ โzobrazujeโ pouze zรกkladnรญ atributy a โskrรฝvรกโ nepotลebnรฉ informace. Hlavnรญm รบฤelem abstracskrรฝvรก pลed uลพivateli nepotลebnรฉ detaily. AbstracCรญlem je vybrat data z vฤtลกรญho mnoลพstvรญ dat, aby se uลพivateli zobrazily pouze relevantnรญ detaily objektu. Pomรกhรก to snรญลพit sloลพitost a รบsilรญ programovรกnรญ. Je to jeden z nejdลฏleลพitฤjลกรญch konceptลฏ objektovฤ orientovanรฝch programลฏ (OOP).
kliknฤte zde pokud video nenรญ pลรญstupnรฉ
Pojฤme cviฤit bลiลกnรญ svalytracv objektovฤ orientovanรฝch programovacรญch metodรกch s pลรญkladem:
Pลedpoklรกdejme, ลพe chcete vytvoลit bankovnรญ aplikaci a budete poลพรกdรกni o shromรกลพdฤnรญ vลกech informacรญ o vaลกem zรกkaznรญkovi. Existuje ลกance, ลพe pลijdete s nรกsledujรญcรญmi informacemi o zรกkaznรญkovi

K vytvoลenรญ bankovnรญ aplikace vลกak nejsou nutnรฉ vลกechny vรฝลกe uvedenรฉ informace. Musรญte tedy vybrat pouze uลพiteฤnรฉ informace pro vรกs bankovnรญ aplikace z tohoto fondu. Data jako jmรฉno, adresa, daลovรฉ informace atd. dรกvajรญ smysl pro bankovnรญ aplikaci, kterรก je Abstracpลรญklad v objektovฤ orientovanรฝch programovacรญch metodรกch
Protoลพe jsme naฤetli/odebrali/vybrali informace o zรกkaznรญkovi z vฤtลกรญho fondu, proces se oznaฤuje jako Abs.tracvstoupit OOPStejnรฉ informace vลกak po extracDatabรกzi ted lze pouลพรญt pro ลกirokou ลกkรกlu aplikacรญ. Napลรญklad stejnรก data mลฏลพete pouลพรญt pro ลพรกdosti o pลijetรญ do nemocnice, ลพรกdosti o pracovnรญ portรกl, vlรกdnรญ databรกzi atd. s malรฝmi nebo ลพรกdnรฝmi รบpravami. Stanou se tak vaลกimi hlavnรญmi daty. To je vรฝhoda Abs.tracv OOP.
Rozdรญl mezi bลiลกnรญmi svalytraca zapouzdลenรญ
| Abstracvรกnรญ | Zapouzdลenรญ |
|---|---|
| AbstracObjektovฤ orientovanรฉ programovรกnรญ ลeลกรญ problรฉmy na รบrovni nรกvrhu. | Zapouzdลenรญ to ลeลกรญ na รบrovni implementace. |
| AbstracCรญlem programovรกnรญ je skrรฝt neลพรกdoucรญ detaily a zรกroveล zobrazit nejdลฏleลพitฤjลกรญ informace. | Zapouzdลenรญ znamenรก spojenรญ kรณdu a dat do jedinรฉ jednotky. |
| Data Abstracvstoupit Java umoลพลuje zamฤลit se na to, co musรญ informaฤnรญ objekt obsahovat | Zapouzdลenรญ znamenรก skrytรญ vnitลnรญch detailลฏ nebo mechaniky toho, jak objekt nฤco dฤlรก, z bezpeฤnostnรญch dลฏvodลฏ. |
Rozdรญl mezi bลiลกnรญmi svalytracTลรญda a rozhranรญ t
| AbstracTลรญda t | Rozhranรญ |
|---|---|
| Bลiลกnรญ svalytracTลรญda T mลฏลพe mรญt obฤ bลiลกnรญ svalytract a neabsolventnรญtracmetody. | Rozhranรญ mลฏลพe mรญt pouze abstracmetody. |
| Nepodporuje vรญcenรกsobnou dฤdiฤnost. | Podporuje vรญcenรกsobnou dฤdiฤnost. |
| Mลฏลพe zajistit implementaci rozhranรญ. | Nemลฏลพe zajistit implementaci abs.tractลรญda t. |
| Bลiลกnรญ svalytracTลรญda t mลฏลพe mรญt chrรกnฤnรฉ a abstracveลejnรฉ metody. | Rozhranรญ mลฏลพe mรญt pouze veลejnรฉ abstracmetody. |
| Bลiลกnรญ svalytracTลรญda t mลฏลพe mรญt promฤnnou typu final, static nebo static final s libovolnรฝm specifikรกtorem pลรญstupu. | Rozhranรญ mลฏลพe mรญt pouze veลejnou statickou koneฤnou promฤnnou. |
Co je to bลiลกnรญ svalytracTลรญda t?
bลiลกnรญ svalyTRACTลรDA T je typem tลรญdy v Java, kterรฉ deklarujรญ jeden nebo vรญce abstract metody. Tyto tลรญdy mohou mรญt abstract metody, stejnฤ jako konkrรฉtnรญ metody. Normรกlnรญ tลรญda nemลฏลพe mรญt abstracmetody. AbstracTลรญda t je tลรญda, kterรก obsahuje alespoล jeden abstracmetoda t. Koncept mลฏลพeme chรกpat pomocรญ pลรญklad tvaru v Javฤ.
Zvaลพte nรกsledujรญcรญ hierarchii tลรญd sestรกvajรญcรญ z tลรญdy Shape, kterรก je zdฤdฤna tลemi tลรญdami Rectangle, Circle a Triangle. Tลรญda Shape je vytvoลena, aby ลกetลila spoleฤnรฉ atributy a metody sdรญlenรฉ tลemi tลรญdami Rectangle, Circle a Triangle. Jednou z takovรฝch metod sdรญlenรฝch vลกemi tลemi podลรญzenรฝmi tลรญdami a pลรญtomnรฝmi ve tลรญdฤ Shape je metoda countArea().
Nynรญ pลedpoklรกdejme, ลพe pรญลกete kรณd pro vytvoลenรญ objektลฏ pro tลรญdy zobrazenรฉ vรฝลกe. Podรญvejme se, jak tyto pลedmฤty budou vypadat v praktickรฉm svฤtฤ. Objekt tลรญdy obdรฉlnรญk dรก obdรฉlnรญk, tvar, kterรฝ tak bฤลพnฤ pozorujeme v kaลพdodennรญm ลพivotฤ.
Objekt tลรญdnรญho trojรบhelnรญku dรก trojรบhelnรญk, opฤt bฤลพnรฝ kaลพdodennรญ tvar.
Ale jak by vypadal pลedmฤt Class Shape v praktickรฉm svฤtฤ?
Pokud pozorujete, ลพe tลรญda Shape slouลพรญ v nรกลก cรญl dosรกhnout dฤdictvรญ a polymorfismus. Nebylo to ale stavฤno pro vytvรกลenรญ instancรญ. Takovรฉ tลรญdy mohou bรฝt oznaฤeny AbstractBลiลกnรญ svalytracTลรญdu t v Javฤ nelze vytvoลit.
Syntaxe:
abstract class Shape{
// code
}
Je moลพnรฉ, ลพe tลรญdu Shape NEOZNAฤUJETE jako Abs.tract a potรฉ vytvoลit jeho instanci. Takovรฝ objekt ale nebude mรญt ve vaลกem kรณdu ลพรกdnรฉ vyuลพitรญ a otevลe prostor pro potenciรกlnรญ chyby. Proto to nenรญ ลพรกdoucรญ.
Co jsou bลiลกnรญ svalytracMetody v Java?
bลiลกnรญ svalyTRACT-METODA in Java, je metoda, kterรก mรก pouze definici metody, ale neobsahuje implementaci. Metoda bez tฤla se nazรฝvรก Abs.tracMetoda t. Musรญ bรฝt deklarovรกna v abstractลรญda t. Bลiลกnรญ svalytracMetoda t nikdy nebude koneฤnรก, protoลพe abstracTลรญda t musรญ implementovat vลกechny abstracmetody.
Jak vลกichni vรญme, vzorec pro vรฝpoฤet plochy pro obdรฉlnรญk, kruh a trojรบhelnรญk je jinรฝ. Metoda countArea() bude muset bรฝt pลepsรกna dฤdรญcรญmi tลรญdami. Nemรก smysl ji definovat ve tลรญdฤ Shape, ale musรญme se ujistit, ลพe vลกechny dฤdรญcรญ tลรญdy majรญ metodu.
Takovรฉ metody mohou bรฝt oznaฤeny abstract.
Syntaxe:
abstract public void calculateArea();
Pro abstracU metody t nenรญ nutnรก ลพรกdnรก implementace. Definuje se pouze podpis metody.
Abstracvรกnรญ Code Pลรญklad
abstract class Shape{
abstract void calculateArea();
}
class guru99 extends Shape{
void calculateArea(){System.out.println("Area of Shape");}
public static void main(String args[]){
Shape obj = new guru99();
obj.calculateArea();
}
}
Vรฝhody bลiลกnรญch svalลฏtracvรกnรญ
- Hlavnรญ vรฝhoda pouลพรญvรกnรญ bลiลกnรญch svalลฏtracvstoupit Programovรกnรญ spoฤรญvรก v tom, ลพe vรกm umoลพลuje seskupit nฤkolik pลรญbuznรฝch tลรญd jako sourozence.
- AbstracTechnologie v objektovฤ orientovanรฉm programovรกnรญ pomรกhรก snรญลพit sloลพitost procesu nรกvrhu a implementace softwaru.
Koneฤnรฉ klรญฤovรฉ slovo v Java
Poslednรญ modifikรกtor se vztahuje na tลรญdy, metody a promฤnnรฉ. Vรฝznam koncovรฉho se liลกรญ od kontextu k kontextu, ale zรกkladnรญ myลกlenka je stejnรก.
- Poslednรญ tลรญdu nelze zdฤdit
- Koneฤnรก promฤnnรก se stรกvรก konstantou a jejรญ hodnotu nelze zmฤnit.
- Koneฤnou metodu nelze pลepsat. To se provรกdรญ z bezpeฤnostnรญch dลฏvodลฏ a tyto metody se pouลพรญvajรญ pro optimalizaci.
Pลรญklad :- Nauฤit se bลiลกnรญ svalytracklรญฤovรก slova t a final
Krok 1) Zkopรญrujte nรกsledujรญcรญ kรณd do editoru.
abstract class Shape{
final int b = 20;
public void display(){
System.out.println("This is display method");
}
abstract public void calculateArea();
}
public class Rectangle extends Shape{
public static void main(String args[]){
Rectangle obj = new Rectangle();
obj.display();
//obj.b=200;
}
//public void calculateArea(){}
}
Krok 2) Uloลพte, zkompilujte a spusลฅte kรณd.
Krok 3) Chyba =? Bลiลกnรญ svalytracMetoda t nenรญ implementovรกna ve tลรญdฤ Rectangle. Pro opravu problรฉmu odkomentujte ลรกdek ฤ. 15.
Krok 4) Odkomentujte ลรกdek ฤ. 13. Uloลพte a zkompilujte kรณd.
Krok 5) Chyba = ? promฤnnรก b je koneฤnรก
Kdy pouลพรญvat bลiลกnรญ svalytracMetody a bลiลกnรญ svalytracTลรญda t?
AbstracMetody t se vฤtลกinou deklarujรญ tam, kde dvฤ nebo vรญce podtลรญd dฤlajรญ stejnou vฤc rลฏznรฝmi zpลฏsoby prostลednictvรญm rลฏznรฝch implementacรญ. Takรฉ rozลกiลujรญ stejnรฉ Abs.tractลรญda t a nabรญzรญ rลฏznรฉ implementace bลiลกnรญch svalลฏtracmetody.
AbstracTลรญdy t pomรกhajรญ popisovat obecnรฉ typy chovรกnรญ a hierarchii tลรญd objektovฤ orientovanรฉho programovรกnรญ. Popisuje takรฉ podtลรญdy, kterรฉ nabรญzejรญ podrobnosti o implementaci abs.tractลรญda t.
Shrnutรญ:
- AbstracVรฝbฤr v programovรกnรญ je proces vรฝbฤru dลฏleลพitรฝch datovรฝch sad pro Objekt ve vaลกem softwaru a vynechejte ty nepodstatnรฉ.
- Jakmile si vymodelujete objekt pomocรญ Data Abstracvstoupit Java, stejnรก sada dat mลฏลพe bรฝt pouลพita v rลฏznรฝch aplikacรญch.




