Sažetak klasa i metoda: opis, karakteristike i značajke. Koja je razlika između apstraktne klase i sučelja
Svatko tko ima najmanje minimalno znanje o programiranju, pitao se zašto postoje apstraktne klase baze. Koja je njihova svrha? Kako stvoriti apstraktni razred? Koje prednosti daju u praksi? Zašto su im potrebni u programiranju i koje značajke njihove primjene moraju uzeti u obzir?
sadržaj
Sažetak klase
Dakle, u programiranju se naziva jedinica programskog koda, na temelju kojeg se objekti ne mogu stvoriti. Treba napomenuti da nasljednici ove klase ne mogu biti apstraktni. Stoga je stvaranje objekata na njihovoj osnovi sasvim moguće. Ako uzmemo u obzir primjer iz Jave, tada konstruiramo takav model: možemo opisati graditelje u klasi A. Ali ih ne možemo koristiti. Izlaz iz ove situacije jest deklarirati varijablu kao referencu. I potrebno je jasno navesti da to ukazuje na objekt klase A. Ali kako se to može učiniti? Glumci će nam pomoći u tome. Treba napomenuti da se roditeljska klasa uvijek smatra univerzalnijim od djeteta. U mnogim programskim jezicima, lijevanje se automatski koristi. No, ako nema povjerenja u dostupnost takvog mehanizma, morate izričito navesti poziv na objekt.
Metode sazrijevanja
Što su oni? Imena sažetka su one metode koje nemaju implementaciju u razmatranoj klasi. Dakle, nakon zagrade (koji navodi argumente koji se koriste u ovome) ne daju oblikovanog otvora (nakon čega se nalazi blok opis metode), a samo jedan zarez. Dakle, u ovom slučaju nema podataka o tome što radi. Ovdje možete postaviti pitanje: "Zašto je metoda bez provedbe?" Uostalom, ne može se koristiti! Naravno, to nije moguće u klasi u kojoj je opisana. Ali ako ovu situaciju smatramo s gledišta potomka, onda se to može nazvati. A funkcija će funkcionirati prema specifičnom opisu dostupnom u ovoj klasi.
Značajke apstraktnih metoda
Postoje ograničenja u njihovoj uporabi. Razmotrimo to na primjer Java programski jezik. Ovdje postoji takav zahtjev: ako postoji barem jedna takva metoda u razredu, ona mora nužno biti apstraktna. U kojim slučajevima je prikladno koristiti takve konstrukcije? Pogledajmo ovo u slučaju klasa ljubimca. Za početak treba razumjeti da nema zvuka koji svi objavljuju. Stoga, u najopćenitijoj klasi, nije određena implementacija zvukovne metode. Ali za njega stvara se tijelo, koje je razdvojeno blokovima. I već u budućnosti, kada će se stvoriti klasa psa, mačke ili hrčka, bit će propisana zasebna metoda u kojoj će se otkriti sve značajke.
sučelje
U programiranju su stvoreni mnogi alati čija je svrha pomoći osobi da proizvodi dobru kvalitetu. U okviru teme koja se razmatra, potrebno je obratiti pažnju na ovaj aspekt, tako da svatko zna razliku između apstraktne klase i sučelja. Dakle, osobitost potonjeg je da ne može imati svojstva, a metode ne definiraju tijela. Istraživanje onoga što se apstraktna klasa razlikuje od sučelja, treba se smatrati još jednom značajkom. Dakle, prvi je naslijeđen, a drugi je realiziran. Neiskusnoj osobi to može izgledati beznačajno. Ali činjenica je da se samo jedna klasa može naslijediti, a bilo koji broj se može provesti. Ovako se razlikuje sučelje apstraktni razred. Java ima te značajke da može opisati samo apstraktne javne metode i statičke konstante. Ali sučelja se također mogu naslijediti. U ovom slučaju potrebno je naznačiti da su korišteni operatori javni uz pomoć javnosti.
Više nasljedstva sučelja
Ova funkcija nije dostupna za nastavu na mnogim programskim jezicima (na primjer, u Javi koju razmišljamo). To je zbog brojnih problema. Kao takav, navedite dvosmislenost koja se javlja kod nasljeđivanja. To je bio razlog za uvođenje višestrukih nasljednih sučelja. To djelomično rješava postojeće probleme, ali ne sve. Dakle, zahvaljujući načelima kućištima i polimorfizam, sučelja može se uspješno provesti u različitim klasama prema različitim metodama (iako će oni imaju isto ime). Ali nemojte zaboraviti na postojeće probleme. Dakle, kada radite s više sučelja, morat ćete uvijek odrediti tko to misli. Također, pojavit će se problemi prilikom pokušaja rada s dvije metode istog naziva, u kojem se slučaju ne mogu koristiti. Stoga je za takve slučajeve potrebno voditi brigu o dostupnosti zajedničke realizacije.
Sažetak podataka
Ovaj je koncept ključan u programiranju. U ovom slučaju, apstrakcija se smatra neovisnim razmatranjem i razdvajanjem sučelja i njezine implementacije. Pogledajmo primjer. Imamo TV, koji je objekt ili modul. Ima sučelje. Kao takav postoje kontrole, kao i reprodukcija zvuka i slike. Što je naprednije korištenje sučelja, to je prikladnije što je TV u tijeku. Možemo prebaciti programe klikom na bilo koju tipku. U ovom slučaju, nema potrebe razmišljati o fizičkim procesima na televizoru. Njima se brinu stručnjaci koji prikupljaju uređaj. Zanima nas samo entiteti kao korisnici. Vraćajući se programiranju, možemo reći da su po ovoj analogiji su sučelje i implementacija. Također, ako je osoba sigurna u svoje znanje, onda može "ukloniti" poklopac s naše hipotetičke TV i poboljšati ga. Iako to može dovesti do lokalnih uspjeha, u većini slučajeva konačni rezultat je negativan. Stoga, u programiranju, pristup je uskraćen i unutarnje komponente su skrivene za apstraktne podatke. Princip ovog mehanizma osigurava načine za sprečavanje namjerne ili slučajne izmjene unutarnjih komponenti. A kad pričaju o apstraktnim vrstama podataka, oni znače njihovu zbirku s nizom operacija koje se mogu izvršiti na njima.
objekti
Već smo ispitali apstraktni razred i sučelje općenito i općenito. Sada imamo malo detalja o našem znanju. Prvo ćemo obratiti pažnju na objekte. Njima se u općem slučaju shvaćaju dio okolne stvarnosti koja postoji u prostoru i vremenu. Ali, prilično je teško formalno definirati objekte u okviru programiranja (s filozofske i teoretske točke gledišta). Stoga je to učinjeno zbog svojih svojstava. Kao primjer, može se navesti sljedeće: objekt može biti jedinstveno identificiran (ima jedinstveno ime), to je u određenom stanju i koristi određeni model ponašanja.
baština
Budući da se programiranje temelji na izgradnji hijerarhijskog stabla odnosa između objekata, postavlja se pitanje da se svojstva roditeljskih kodnih knjižnica prenose na osnovne vrste. Nasljeđivanje se shvaća kao odnos kada ponavljamo ponašanje i strukturu nečeg drugog. U običnom životu to se može naći posvuda. Ovo je također preneseno na programiranje s obzirom na apstraktne elemente. Kao usporedba, možemo navesti činjenicu da takav organizam nema kao ptica. Ovo je apstraktno ime. Kao specifični uzorak, donosite galeb, zveckanje ili vrapca. Zbog nasljeđivanja možemo koristiti biblioteke klase i razviti ih za određeni program. Takav alat omogućuje stvaranje novih objekata, istovremeno dodavanje ili promjenu svojstava već stvorenih. Nasljednik dobiva sve metode i polja svog predaka i, ako je potrebno, stječe svoje osobine. Zbog činjenice da postoje apstraktni elementi i načelo baštine, postoje brojne prilike za izmjenu u okviru objektno orijentiranog programiranja. Osim toga, omogućuje vam fleksibilno pristupanje rješavanju zadataka. Kada naslijedite, podaci i funkcije prenose se na novu klasu.
polimorfizam
Potrebno je za primjenu iste funkcije za rješavanje različitih vrsta zadataka. U ovom slučaju, predviđeno je da postoji mogućnost izvođenja različitih radnji čiji sadržaj ovisi o vrsti objekta s kojim se rad obavlja. Polimorfizam se shvaća kao svojstvo elemenata koji imaju jedan zajednički roditelj, izvode slične probleme u semantičkom značenju na različite načine. Povucimo analogiju sa životinjama. Postoji takva akcija - za pokretanje. Svi razumijemo kako se to događa. Ali s različitim životinjama (lav, slon, čimpanza, krokodil, kornjača) ta se akcija izvodi drugačije. U tom je slučaju razvojni programer odgovoran za njihovo kretanje, što, ako je potrebno, može uzrokovati određeni podprogram za određeni slučaj, razviti algoritam i uspješno ga implementirati. To je učinjeno pomoću skup metoda. U ovom slučaju, u svakoj zasebnoj klasi, programer označava koji objekt ima koja svojstva su inherentna. Promjenom nečega u potomcima, u ovom slučaju možete postići određene, neophodne radnje. Takav utjecaj zove se polimorfizam objekta. Općenito, abstraktna klasa je izuzetno koristan programski alat.
- Odaberite automobil: klase automobila
- Opasni objekti (potencijali) mogu biti blizu
- Sažetak slika kao način da odražava vaš unutarnji svijet
- Sažetak crteža - kako i što ga možete izvući?
- Što je rekurzija? Rekurzija u programiranju (primjeri)
- Ukratko o Mercedesovim automobilima: A-klasa, E-klasa, C klase i S klase
- Ciklus s postcondition i petlja s preduvjetom
- Što je to encapsulation? Inkapsuliranje u programiranju
- Pitanje vremena: kako napraviti datum formatu i gdje tražiti datum bit
- Java: InputStream. Ulazni tokovi
- Java Generics: Opis i metode
- Najbliža susjedna metoda: primjer posla
- Što je?
- Java: rad s datotekama - pisanje, čitanje i brisanje
- Elementi Java modela objekta: sažetak klase, sučelje
- PHP konstrukt: stvaranje primjeraka klase
- Varijabla u programiranju u potpunosti je obilježena time što?
- Klase - što je to? Značenje i sinonimi za riječ "razred"
- Objektno orijentirano programiranje u Pythonu: klase, opis i značajke
- Kako pisati u datoteku u Javi
- Kako napisati sažetak na radni rad