[ miljannet @ 10.04.2014. 02:50 ] @
Pozdrav,
sada sam radio zadatak sa konstruktorima i imam jedno malo pitanje u vezi njih.
Koliko sam ja shvatio. Konstruktor bukvalno sluzi samo da inicijalizuje vrednosti objekta. I ako ga mi ne deklarisemo java ce ga sama dodeliti
kada napravimo objekat ? I to je to sve sto treba da znam u vezi konstruktora ?

primer:
Code:

package Klase;

class Kutija10
{
    double sirina;
    double dubina;
    double visina;
    
    Kutija10()
    {
        sirina=10;
        dubina=15;
        visina=20;
    }
}




public class PrimerZaEs 
{
    public static void main(String args[])
    {
        Kutija10 novaKutija = new Kutija10();
    }
}


Code:

package Klase;

class Kutija10
{
    double sirina;
    double dubina;
    double visina;
}




public class PrimerZaEs 
{
    public static void main(String args[])
    {
        Kutija10 novaKutija = new Kutija10();
        novaKutija.sirina=10;
        novaKutija.dubina=15;
        novaKutija.visina=20;
    }
}



Znaci ovo je skroz isto, samo sto sam ja u prvom primeru sam napravio konstruktor i dodelio vrednosti objektu, a u drugom primeru
java je sama napravila konstruktor ? tj sama ga je dodelila ?
[ Rusi @ 10.04.2014. 11:45 ] @
Sa konstruktorom definises koje su to pocetne (da kazemo default) vrednosti objekta klase. Uzmimo npr. objekat klase lampa koju cemo definisati da bude iskljucena i ispravna. Zatim napisemo konstruktor u kome definisemo njeno pocetno stanje.

Code (java):
public Lampa {
    ukljucena = false;
    ispravna = true;
}
 

Sada svaki objekat klase Lampa, kada se napravi, biti iskljucena i ispravna.

Code (java):
Lampa la = new Lampa();


Lampa la je sada iskljucena i ispravna.
[ AMD guy @ 10.04.2014. 12:03 ] @
Konstruktor ti sluzi za kreiranje objekata, bilo pomocu default konstruktora koji je Rusi opisao ili ako zelus da ti dodelis pocetne vrednosti trebace ti ovo

Code (java):
class Kutija10
{
    double sirina;
    double dubina;
    double visina;
   
    Kutija10(double Sirina, double Dubina, doube Visina)
    {
        sirina = Sirina;
        dubina = Dubina;
        visina = Visina;
    }
}


[ FooLControL @ 10.04.2014. 12:36 ] @
Citat:
miljannet:
Koliko sam ja shvatio. Konstruktor bukvalno sluzi samo da inicijalizuje vrednosti objekta. I ako ga mi ne deklarisemo java ce ga sama dodeliti


Konstruktor sluzi sa kreiranje objekta date klase (instance). U kom ti mozes da inicijalizujes njegove vrednosti (atribute).

Ti si u svom prvom primeru napravio konstruktor koji ce incijalizovati vrednosti objekta, dok u drugom nisi, tj. pozvao si podrazumevani (default) konstruktor.

Podrazumevani (default) konstruktor postavlja vrednosti objekata na podrazumevane (default) vrednosti, i on se ne navodi zato se zove podrazumevani.

Tako je vazno znati, da se podrazumevani konstruktor ne moze pozvati ako vec ima neki definisani konstruktor u klasi.

Znaci ovo su tri ista primera:

Code:
//podrazumevani konstruktor ne navodi se
//kada se pozove postavice vrednost straniceA na 0 
public class Kvadrat {
    
    int stranicaA;    
}


Code:
//defininisani konstruktor bez parametara
//kada se pozove postavice vrednost straniceA na 0
public class Kvadrat {
    
    int stranicaA;
    
    public Kvadrat(){}    
}


Code:
//defininisani konstruktor bez parametara
//kada se pozove postavice vrednost straniceA na 0 u ovom slucaju
//ili na neku drugu vrednost ako zelimo
public class Kvadrat {
    
    int stranicaA;
    
    public Kvadrat(){
        stranicaA = 0;
    }    
}