Apstrakcija u Java
U čemu je apstrakcija Java?
Apstrakcija je koncept objektno orijentiranog programiranja koji "pokazuje" samo bitne atribute i "skriva" nepotrebne informacije. Glavna svrha apstrakcije je skrivanje nepotrebnih detalja od korisnika. Apstrakcija je odabir podataka iz veće skupine kako bi se korisniku prikazali samo relevantni detalji objekta. Pomaže u smanjenju složenosti programiranja i napora. To je jedan od najvažnijih koncepata OOP-a.
Kliknite ovdje ako video nije dostupan
Proučimo apstrakciju u OOP-ovima na primjeru:
Pretpostavimo da želite izraditi bankovnu aplikaciju i od vas se traži da prikupite sve podatke o svom klijentu. Postoje šanse da ćete doći do sljedećih informacija o kupcu
No, nisu sve gore navedene informacije potrebne za izradu bankovne aplikacije. Dakle, trebate odabrati samo korisne informacije za svoje bankarsku aplikaciju iz tog bazena. Podaci kao što su ime, adresa, porezni podaci itd. imaju smisla za bankovnu aplikaciju koja je primjer apstrakcije u OOP-ovima
Budući da smo dohvatili/uklonili/odabrali podatke o klijentima iz većeg skupa, proces se naziva apstrakcija u OOP-ovi. Međutim, iste informacije nakon što su izvučene mogu se koristiti za širok raspon primjena. Na primjer, možete koristiti iste podatke za bolničku prijavu, prijavu na portalu za posao, državnu bazu podataka itd. s malo ili bez ikakvih izmjena. Stoga to postaje vaš glavni podatak. Ovo je prednost apstrakcije u OOP-ovima.
Razlika između apstrakcije i enkapsulacije
Apstrakcija | ovijanje |
---|---|
Apstrakcija u objektno orijentiranom programiranju rješava probleme na razini dizajna. | Enkapsulacija rješava razinu implementacije. |
Apstrakcija u programiranju je skrivanje neželjenih detalja dok se prikazuju najbitnije informacije. | Enkapsulacija znači povezivanje koda i podataka u jednu jedinicu. |
Apstrakcija podataka u Java omogućuje fokusiranje na ono što informacijski objekt mora sadržavati | ovijanje znači skrivanje unutarnjih detalja ili mehanike načina na koji objekt radi nešto iz sigurnosnih razloga. |
Razlika između apstraktne klase i sučelja
Sažetak klase | Sučelje |
---|---|
Apstraktna klasa može imati i apstraktne i neapstraktne metode. | Sučelje može imati samo apstraktne metode. |
Ne podržava višestruko nasljeđivanje. | Podržava višestruko nasljeđivanje. |
Može osigurati implementaciju sučelja. | Ne može osigurati implementaciju apstraktne klase. |
Apstraktna klasa može imati zaštićene i apstraktne javne metode. | Sučelje može imati samo javne apstraktne metode. |
Apstraktna klasa može imati konačnu, statičku ili statičku konačnu varijablu s bilo kojim specifikatorom pristupa. | Sučelje može imati samo javnu statičku finalnu varijablu. |
Što je apstraktna klasa?
APSTRAKTNI RAZRED je vrsta klase u Java, koji deklariraju jednu ili više apstraktnih metoda. Ove klase mogu imati apstraktne metode kao i konkretne metode. Normalna klasa ne može imati apstraktne metode. Apstraktna klasa je klasa koja sadrži najmanje jednu apstraktnu metodu. Koncept možemo razumjeti prema primjer oblika u Javi.
Razmotrite sljedeću hijerarhiju klasa koja se sastoji od klase Shape koju nasljeđuju tri klase Rectangle, Circle i Troangle. Klasa Oblik stvorena je za uštedu na zajedničkim atributima i metodama koje dijele tri klase Pravokutnik, Krug i Trokut. CalculateArea() je jedna takva metoda koju dijele sve tri podređene klase i prisutna je u klasi Shape.
Sada pretpostavimo da pišete kod za stvaranje objekata za gore prikazane klase. Promotrimo kako ove predmeti će izgledati u praktičnom svijetu. Objekt klase rectangle će dati pravokutnik, oblik koji tako često vidimo u svakodnevnom životu.
Objekt klase trokut će dati trokut, opet uobičajeni svakodnevni oblik.
Ali kako bi objekt Class Shape izgledao u praktičnom svijetu??
Ako promatrate klasu Oblik služi u naš cilj postizanja baština i polimorfizam. Ali nije napravljen da se instancira. Takve se klase mogu označiti Sažetak. Apstraktnu java klasu nije moguće instancirati.
Sintaksa:
abstract class Shape{ // code }
Moguće je da klasu oblika NE označite kao sažetak i zatim je instancirate. Ali takav objekt neće imati koristi u vašem kodu i otvorit će prostor za potencijalne pogreške. Stoga ovo nije poželjno.
U čemu su apstraktne metode Java?
APSTRAKTNA METODA in Java, je metoda koja ima samo definiciju metode, ali ne sadrži implementaciju. Metoda bez tijela poznata je kao apstraktna metoda. Mora se deklarirati u apstraktnoj klasi. Apstraktna metoda nikada neće biti konačna jer apstraktna klasa mora implementirati sve apstraktne metode.
Kao što svi znamo, formula za izračunavanje površine za pravokutnik, krug i trokut je različita. Naslijeđene klase morat će nadjačati metodu calculateArea(). Nema smisla definirati ga u klasi Shape, ali moramo biti sigurni da sve nasljeđujuće klase imaju metodu.
Takve metode mogu se označiti sažetak.
Sintaksa:
abstract public void calculateArea();
Za apstraktna metoda, nije potrebna implementacija. Definiran je samo potpis metode.
Primjer koda apstrakcije
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(); } }
Prednosti apstrakcije
- Glavna prednost korištenja apstrakcije u Programiranje je da vam omogućuje grupiranje nekoliko povezanih klasa kao braće i sestara.
- Apstrakcija u objektno orijentiranom programiranju pomaže smanjiti složenost procesa dizajna i implementacije softvera.
Konačna ključna riječ u Java
Konačni modifikator primjenjuje se na klase, metode i varijable. Značenje finala varira od konteksta do konteksta, ali bitna ideja je ista.
- Konačna klasa se ne može naslijediti
- Konačna varijabla postaje konstanta i njena se vrijednost ne može mijenjati.
- Konačna metoda ne može se poništiti. To se radi iz sigurnosnih razloga, a ove se metode koriste za optimizaciju.
Primjer : - Naučiti sažetke i završne ključne riječi
Korak 1) Kopirajte sljedeći kod u Editor.
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(){} }
Korak 2) Spremite, kompajlirajte i pokrenite kod.
Korak 3) Greška =? Apstraktna metoda nije implementirana u klasi Rectangle. Da biste riješili problem, uklonite komentar iz retka #15.
Korak 4) Odkomentirajte redak # 13. Spremite i kompajlirajte kod.
Korak 5) Greška = ? varijabla b je konačna
Kada koristiti apstraktne metode i apstraktne klase?
Apstraktne metode se uglavnom deklariraju tamo gdje dvije ili više podklasa također rade istu stvar na različite načine kroz različite implementacije. Također proširuje istu apstraktnu klasu i nudi različite implementacije apstraktnih metoda.
Apstraktne klase pomažu u opisivanju generičkih tipova ponašanja i hijerarhije klasa objektno orijentiranog programiranja. Također opisuje potklase kako bi ponudio detalje implementacije apstraktne klase.
Sažetak:
- Apstrakcija u programiranju je proces odabira važnih skupova podataka za Objekt u vašem softveru i izostavljajući one beznačajne.
- Nakon što modelirate svoj objekt pomoću apstrakcije podataka u Java, isti skup podataka mogao bi se koristiti u različitim aplikacijama.