Java - Třídy (29.díl)

Napsal O webu (») 25. 4. 2008 v kategorii Programování, přečteno: 4542×
obrazky/java_logo.png

Gettery a settery

Dodržujeme -li princip zapouzdření, k datovým položkám třídy (deklarovaným jako private) můžeme přistupovat a manipulovat s nimi pouze prostřednictvím metod (deklarovaných jako public). V Javě jsou standardizovány názvy pro určité typy metod:

  • Pro nastavení hodnot datových položek jsou používány tzv. settery, tj. metody mající ve svém názvu slovo set. V případě vzorové třídy můžeme pro nastavení hodnot datových položek delka/uhel vytvořit metody:
    public void setDelka(double d)
    {
    this.delka=d;
    }
    public void setUhel(double u)
    {
    this.uhel=u;
    }

  • Pro získávání hodnot datových položek bývají používány tzv. gettery, tj. metody mající ve svém názvu slovo get. V případě vzorové třídy můžeme pro získání hodnot datových položek delka/uhel vytvořit metody:
    public double getDelka() {return this.delka;}
    public double getUhel() {return this.uhel;}

    Nic nám nebrání, metody pro nastavení a získání hodnot pojmenovat jinak, nicméně výše uvedený způsob je v Javě velmi často používán. Navíc řada vývojových prostředí umí automaticky generovat pro datové položky gettery a settery.

    Pole objektů

    Pracujeme -li s větším množstvím instancí jedné třídy, je vhodné ukládat je do pole. Práce s polem objektů je podobná jako práce s polem primitivních datových typů. Nestačí však vytvořit pouze pole, musíme provést i druhý krok, a tím je vytvoření instancí jednotlivých objektů prostřednictvím operátoru new.

    K jednotlivým objektům lze následně přistupovat prostřednictvím indexu. Postup budeme ilustrovat na praktickém případě třídy Souradnice. Budeme vytvářet pole 10 objektů. V prvním kroku deklarujeme odkaz ukazující na pole objektů.
    Souradnice [] pole;
    Následně vytvoříme pole pole odkazů na objekty, kterým inicializujeme odkaz:
    pole=new Souradnice[10];
    V tomto okamžiku však jednotlivé prvky pole neukazují na žádné konkrétní objekty, jejich hodnota je null. Teprve nyní vytvoříme jednotlivé objekty, odkazy na ně inicializujeme položky pole. Inicializace proměnných instance může proběhnout jak prostřednictvím implicitního, tak prostřednictvím explicitního konstruktoru; v našem případě proběhne inicializace prostřednictvím explicitního konstruktoru.
    for (int i=0;i<pole.length;i++)
    {
    pole[i]=new Souradnice(10,20);
    }

    S jednotlivými objekty můžeme pracovat prostřednictvím odkazů, Jednotlivé hodnoty souřadnic x, y můžeme např. vypsat za použití cyklu.
    for (int i=0;i<pole.length;i++)
    {
    System.out.println(X=+pole[i].x()+ Y=+pole[i].y());
    pole[i]=new Souradnice(10,20);
    }


    Předávání objektů jako parametrů

    Objekty jsou na rozdíl od primitivních datových typů v Javě předávány odkazem. Pro připomenutí uveďme, že se tento přístup týká i práce s poli. Formálním parametrem v metodě je odkaz na objekt třídy, tj. reference. Skutečný parametr představuje odkaz na již existující objekt. Oba odkazy by měly být stejného datového typu. Prostřednictvím reference může metoda přistupovat k metodám volajícícho objektu (popř. k datovým položkám, nejsou –li deklarovány jako privátní). Tímto způsobem můžeme prostřednictvím formálního parametru měnit hodnoty skutečného parametru, tj. volající data.

    Tento přístup ilustrujeme na nové třídě Prevod, kterou vytvoříme. Bude v ní implementována i metoda vzdalenost(), která zpětně z pravoúhlých souřadnic spočte jednu z polárních souřadnic: vzdálenost.
    public class Prevod
    {
    public double vzdalenost (Souradnice objekt)
    {
    return Math.sqrt(Math.power(objekt.x(),2)+Math.power(objekt.y,2));
    }
    }

    Metoda má jako formální parametr odkaz na objekt třídy Souradnice. Prostřednictvím formálního parametru přistupuje k metodám x() a y() volajícího objektu. V metodě main() třídy Souradnice vytvoříme dva objekty.
    public static void main (String [] args)
    {
    //Vytvoreni instanci
    Souradnice sour=new Souradnice(10, 20);
    Prevod prev=new Prevod();
    //Volani metody a predani odkazu na objekt
    System.out.println(Vzdalenost=+prev.vzdalenost(sour));
    }

    Metodě vzdalenost() předáme odkaz na objekt sour, spočtenou vzdálenost následně vytiskneme.

    Autor: Filip Koval
  • Štítky: Java
    Facebook Twitter Topčlánky.cz Linkuj.cz

    Komentáře

    Zobrazit: standardní | od aktivních | poslední příspěvky | všechno
    Článek ještě nebyl okomentován.


    Nový komentář

    Téma:
    Jméno:
    Notif. e-mail *:
    Komentář:
      [b] [obr]
    Odpovězte prosím číslicemi: Součet čísel pět a jedenáct