sreda, 24. november 2010

Kreiranje objektov

Razred Delavec samo opisuje zgradbo objektov, ne kreira pa nobenega objekta. Kreiranje objektov poteka v dveh korakih. Prvi korak zahteva, da objekt deklariramo kot spremenljivko. Za tip objekta uporabimo kar tip razreda.
Delavec d; // tip objekta je določen z imenom razreda, v katrem je opisana zgradba tega objekta
                 // v drugem koraku dodelimo porostor za objekt in vzpostavimo začetne vrednosti atributov.
d = new Delavec();
// new: operator, ki v pomnilniku dodeli prostor za objekt
// Delavec: konstruktor, ki nastavi začetne vrednosti atributov
// Oba koraka lahko združimo:
// Delavec d = new Delavec();

Konstruktor je posebna metoda, ki se kliče skupaj z operatorjem new. Ime konstruktorja mora biti enako imenu razreda. Če mi ne napišemo lastnega konstruktorja, se uporabai standarden (default) konstruktor, ki je v Javi na razpolago avtomatsko. Glavna naloga konstruktorja je, da nastavi začetne vrednosti atributov, lahko pa izvaja tudi kakšne druge operacije. Konstruktor nikoli ne vrača vrednosti.

Standardni konstruktor dodeli atributom naslednje vrednosti:
- numerični atributi dobijo vrednost 0
- atributi tipa char dobijo vrednost ¨\u0000¨
- atributi tipa boolean dobijo vrednost false
- atributi tipa String dobijo vrednost null  (enako velja za vse atribute objektnega tipa in za tabele)

Imamo 2 vrsti podatkovnih tipov:
-vrednostni tipi : spremenljivka hrani vrednost nekega podatka (byte, short, int, long, float, double, char, boolean)
- sklicni tipi: spremenljivka vsebuje naslov podatka (String, tabele)

Nadaljevanje primera Delavec: Razred TestDelavec, ki uporablja razred Delavec


Naša rešitev obsega 2 razreda: RazredDelavec ki opisuje zgradbo objektov in razred TestDelavec, ki predstavlja aplikacijo, v katrei uporabljamo objekte tipa Delavec (application class)

public class TestDelavec{
   public static void main(String[] args){
   // kreiranje objekta
   Delavec d = new Delavec();
   //vpis vrednosti atributov
    d.vpisiMatSt(234);
    d.vpisiPriimek("Novak");
    d.vpisiIme("Janez");
    d.vpisiStUr(172);
    //izpis vrednosti atributov s pomočjo metod getter
    System.out.println("Maticna stevilka: " + d.vrniMatSt());
    System.out.println("Priimek in ime: " +d.vrniPriimek() + " " + d.vrniIme());
    System.out.println("Stevilo ur: " + d.vrniStUr());

   // izpis vseh atributov na enkrat z metodo izpisiVse
    d.izpisiVse();

   //izpis vsebine objekta s pomočjo metode toString
   System.out.println(d.toString());

   //izpis bruto osebnega dohodka
   System.out.println("Bruto OD:" + d.izracunajBrutoOD(10.5));
    }
}

Sklicevanje na metode in atribute razreda, ki opisuje zgradbo objektov
Splošno pravilo za sklicevanje metod, ki so vezane na objekte:
. ( )

Če bi bili v razredu Delavec atributi matSt, priimek, ime in stUr deklarirani z določilom public, bi jih lahko uporabljali na nasleden način:

d.matSt
d.priimek
d.ime
d.stUr
.

Ni komentarjev:

Objavite komentar

Tu lahko podate svoje mnenje.
Če ste zapis označili kot pomanjkljiv, povejte kaj bi dodali.