Triedy a objekty Java

1. Prehľad

V tomto rýchlom výučbe sa pozrieme na dva základné stavebné prvky programovacieho jazyka Java - triedy a objekty. Sú to základné koncepty objektovo orientovaného programovania (OOP), ktoré používame na modelovanie skutočných entít.

V OOP triedy sú plány alebo šablóny pre objekty. Používame ich na opis typov entít.

Na druhej strane, objekty sú živé bytosti, vytvorené z tried. Obsahujú určité stavy v rámci svojich polí a svojimi metódami prezentujú určité správanie.

2. Triedy

Jednoducho povedané, trieda predstavuje definíciu alebo typ objektu. V Jave môžu triedy obsahovať polia, konštruktory a metódy.

Pozrime sa na príklad použitia jednoduchej triedy Java predstavujúcej a Auto:

trieda Auto {// polia Typ reťazca; Reťazcový model; Farba šnúrky; rýchlosť int; // konštruktor Car (typ reťazca, model reťazca, farba reťazca) {this.type = type; this.model = model; this.color = farba; } // metódy int increaseSpeed ​​(int prírastok) {this.speed = this.speed + prírastok; vrátiť túto.speed; } // ...} 

Táto trieda Java predstavuje auto všeobecne. Z tejto triedy môžeme vytvoriť akýkoľvek typ automobilu. Používame polia na udržanie stavu a konštruktor na vytváranie objektov z tejto triedy.

Každá trieda Java má predvolene prázdny konštruktor. Používame ho, ak neposkytujeme konkrétnu implementáciu, ako sme to urobili vyššie. Tu je príklad, ako by predvolený konštruktor hľadal náš Auto trieda:

Auto(){} 

Tento konštruktor jednoducho inicializuje všetky polia objektu s ich predvolenými hodnotami. Reťazce sú inicializované na nulový a celé čísla na nulu.

Naša trieda má teraz konkrétny konštruktor, pretože chceme, aby mali naše objekty definované polia, keď ich vytvárame:

Auto (typ reťazca, model reťazca) {// ...} 

Keď to zhrnieme, napísali sme triedu, ktorá definuje auto. Jeho vlastnosti sú popísané poliami, ktoré obsahujú stav objektov triedy, a jeho chovanie je popísané pomocou metód.

3. Predmety

Zatiaľ čo sa triedy prekladajú počas kompilácie, objekty sa vytvárajú z tried za behu programu.

Objekty triedy sa nazývajú inštancie a my ich vytvárame a inicializujeme pomocou konštruktorov:

Zameranie vozidla = nové auto („Ford“, „Focus“, „červené“); Auto auris = nové auto („Toyota“, „Auris“, „modré“); Auto golf = nové auto („Volkswagen“, „Golf“, „zelené“); 

Teraz sme vytvorili rôzne Auto predmety, všetko z jednej triedy. Toto je podstata všetkého, definovať plán na jednom mieste a potom ho opakovane použiť na mnohých miestach.

Zatiaľ ich máme tri Auto objekty a všetky sú zaparkované, pretože ich rýchlosť je nulová. Môžeme to zmeniť odvolaním sa na naše zvýšenie rýchlosti metóda:

focus.increaseSpeed ​​(10); auris.increaseSpeed ​​(20); golf.increaseSpeed ​​(30); 

Teraz sme zmenili stav našich automobilov - všetky sa pohybujú rôznymi rýchlosťami.

Ďalej môžeme a mali by sme definovať riadenie prístupu k našej triede, jej konštruktorom, poliam a metódam. Môžeme tak urobiť pomocou modifikátorov prístupu, ako uvidíme v nasledujúcej časti.

4. Modifikátory prístupu

V predchádzajúcich príkladoch sme kvôli zjednodušeniu kódu vynechali modifikátory prístupu. Tým sme vlastne použili predvolený modifikátor súkromného balíka. Tento modifikátor umožňuje prístup do triedy z ktorejkoľvek inej triedy v rovnakom balíku.

Zvyčajne by sme použili a verejné modifikátor pre konštruktory, ktorý umožňuje prístup zo všetkých ostatných objektov:

verejné auto (typ reťazca, model reťazca, farba reťazca) {// ...} 

Každé pole a metóda v našej triede mali tiež definovať kontrolu prístupu konkrétnym modifikátorom. Triedy zvyčajne majú verejné modifikátory, ale máme tendenciu si ponechávať svoje polia súkromné.

Polia obsahujú stav nášho objektu, preto chceme riadiť prístup do tohto stavu. Niektoré si môžeme nechať súkromné, a ďalšie verejné. Dosahujeme to špecifickými metódami nazývanými getre a setre.

Pozrime sa na našu triedu s plne špecifikovanou kontrolou prístupu:

public class Car {private String type; // ... verejné auto (typ reťazca, model reťazca, farba reťazca) {// ...} verejné reťazec getColor () {návratová farba; } public void setColor (farba reťazca) {this.color = color; } public int getSpeed ​​() {rýchlosť návratu; } // ...} 

Naša trieda je označená verejné, čo znamená, že ho môžeme použiť v akomkoľvek balení. Konštruktér tiež je verejné, čo znamená, že môžeme vytvoriť objekt z tejto triedy vo vnútri ktoréhokoľvek iného objektu.

Naše polia sú označené súkromné, čo znamená, že nie sú prístupné priamo z nášho objektu, ale poskytujeme k nim prístup prostredníctvom getrov a setterov.

The typu a Model polia nemajú getry a setre, pretože obsahujú interné údaje našich objektov. Definovať ich môžeme iba cez konštruktor počas inicializácie.

Ďalej farba je možné pristupovať a meniť ich, zatiaľ čo rýchlosť je prístupný iba, ale nezmení sa. Úpravy rýchlosti sme vynútili prostredníctvom špecializovaných verejné metódy increaseSpeed ​​() a poklesRýchlosti ().

Inými slovami, používame riadenie prístupu na zapuzdrenie stavu objektu.

5. Záver

V tomto článku sme si prešli dva základné prvky jazyka Java, triedy a objekty, a ukázali sme si, ako a prečo sa používajú. Taktiež sme predstavili základy riadenia prístupu a demonštrovali jeho použitie.

Ak sa chcete dozvedieť ďalšie koncepty jazyka Java, navrhujeme ako ďalší krok prečítať si o dedičnosti, super kľúčovom slove a abstraktných triedach.

Celý zdrojový kód tohto príkladu je k dispozícii na GitHub.


$config[zx-auto] not found$config[zx-overlay] not found