Java: Zápis tříd
m (→Zprávy/metody: Oprava vzhledu.) |
(→Použití třídy: Oprava nadpisů a vzhledu, doplnění spouštění metod.) |
||
Řádka 89: | Řádka 89: | ||
<code>Automobil a1 = '''new''' Automobil(5);</code> | <code>Automobil a1 = '''new''' Automobil(5);</code> | ||
− | === | + | === Volání metod === |
− | + | * Volání metody instance nebo též zaslání zprávy instanci znamená, že ''spustíme'' kód, který je v metodě připraven. | |
+ | * Příkazy zapsané v metodě se tedy provedou a metoda případně vrátí návratovou hodnotu. | ||
+ | |||
+ | Syntaxe: | ||
+ | ''instance_třídy''.''nazevMetody'' '''(''' ''hodnoty_parametrů'' ''');''' | ||
+ | |||
+ | Příklady: | ||
+ | this.act(); | ||
+ | |||
+ | int vzdalenost = panacek.distanceTo(this); | ||
+ | |||
+ | double celkem; | ||
+ | celkem = this.ujetaVzdalenost(); | ||
+ | |||
+ | this.getWorld().pridejPanacka(3); | ||
+ | |||
Obdelnik o = new Obdelnik(5, 4); | Obdelnik o = new Obdelnik(5, 4); | ||
o.posun(10, 10); | o.posun(10, 10); | ||
System.out.println(o.plocha()); | System.out.println(o.plocha()); | ||
− | + | === Přístup k atributům === | |
o.poziceX = 10; | o.poziceX = 10; | ||
System.out.println(o.poziceY); | System.out.println(o.poziceY); | ||
− | Přístup k atributům je ovlivněn [[Java: Modifikátory přístupu|modifikátory | + | Přístup k atributům je ovlivněn [[Java: Modifikátory přístupu|modifikátory přístupu]]. |
<div class="Varovani">POZOR! Přistupovat k atributům třídy z jiných tříd porušuje dobré zvyklosti objektově orientovaného programování!</div> | <div class="Varovani">POZOR! Přistupovat k atributům třídy z jiných tříd porušuje dobré zvyklosti objektově orientovaného programování!</div> |
Verze z 19. 11. 2015, 22:57
Java je objektově orientovaný jazyk. Chování systému (a tedy algoritmus) popisujeme jako komunikaci mezi objekty, které mají vlastnosti (atributy) a posílají si zprávy.
Zde uvádíme pouze syntaxi zápisu v Javě s minimem teorie. Více o OOP a jeho principech a konstruktech viz Objektově_orientované_programování.
Při zápisu programu v Javě se budeme řídit dohodnutými konvencemi pro zápis kódu.
Obsah |
Třída
Třída představuje „předpis“ pro tvorbu objektů. Ve třídě je tedy popsáno:
- jaké vlastnosti mají objekty dané třídy
- a na jaké zprávy umí objekty dané třídy reagovat.
public class MojeTrida { // // popis vlastností třídy // // popis zpráv // }
Atributy
Nebo také vlastnosti popisují stav objektu. Z reálného objektu si vybíráme pouze ty vlastnosti, které jsou pro náš systém důležité.
Třeba třída Automobil
bude mít v nějakém systému jako vlastnost jmenoVlastnika
a nebude mít žádnou vlastnost, popisující výkon motoru. Pro náš systém je to tak vhodné. Jiný systém může u automobilu sledovat výkon a ne jméno vlastníka.
Zápis atributu:
- může být modifikátor přístupu
- datový typ
- název
Příklad:
int delka; public String jmeno;
Tedy ve třídě:
public class Zbozi { String nazev; TypZachazeni omezeni; int cena; ... }
Zprávy/metody
Metoda popisuje, co se má stát, když nám někdo pošle zprávu.
Syntaxe:
modifikátor_přístupu návratový_typ nazevMetody ( parametry_oddělené_čárkou ) { popis, co se má dělat v reakci na metodu }
Příklady:
public void act() { ... } public int distanceTo(Enemy enemy) { ... } protected double ujetaVzdalenost() { ... } private void pridejPanacka(int sloupec) { ... }
- Volání („spuštění“) metod viz kapitola Přístup do třídy → Volání metod.
Návratová hodnota metody
- Pokud má metoda návratový typ jiný než
void
, tak na konci potřebujeme vrátit výsledek. - Použijeme klíčové slovo
return
.
- Příklad
public double ujetaVzdalenost() { double vysledek = 0; // ... tady nějak spočítám výsledek... ;) return vysledek; }
Konstruktor
Použití třídy
Vytvoření instance
- Obecně
new NazevTridy(hodnoty_parametrů_konstruktoru)
- Například:
Automobil a1 = new Automobil(5);
Volání metod
- Volání metody instance nebo též zaslání zprávy instanci znamená, že spustíme kód, který je v metodě připraven.
- Příkazy zapsané v metodě se tedy provedou a metoda případně vrátí návratovou hodnotu.
Syntaxe:
instance_třídy.nazevMetody ( hodnoty_parametrů );
Příklady:
this.act();
int vzdalenost = panacek.distanceTo(this);
double celkem; celkem = this.ujetaVzdalenost();
this.getWorld().pridejPanacka(3);
Obdelnik o = new Obdelnik(5, 4); o.posun(10, 10); System.out.println(o.plocha());
Přístup k atributům
o.poziceX = 10; System.out.println(o.poziceY);
Přístup k atributům je ovlivněn modifikátory přístupu.
Další zdroje
- Pitner Tomáš. Programování v jazyce Java. 2003. Dostupné z: http://www.fi.muni.cz/~tomp/slides/pb162/printable.html