Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Trik pitanje fundamentalnog znacaja

[es] :: Java :: Trik pitanje fundamentalnog znacaja

[ Pregleda: 4332 | Odgovora: 4 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

markob15
Marko Berar
Beograd

Član broj: 156982
Poruke: 79
*.eunet.yu.



+11 Profil

icon Trik pitanje fundamentalnog znacaja30.05.2008. u 23:23 - pre 193 meseci
Oprostite na "laickom" pitanju ali muci me vec duze vreme a adekvatnog odgovora niodkuda..

Dakle, kako je moguce da main-funkcija unutar neke klase poziva konkretan objekat te klase pre nego sto je uopste zavrsena definicija te iste klase??

Npr. :
Code:

//main f-ja koja koristi objekat klase u kojoj se nalazi
public class Test 
{
    private int a;
    private int b;
    
    public void set_a(int a)
    {
        this.a = a;
    }
     //poziv main-fje!!!! u sred doticne klase
    public static void main(String[] argumenti)
    {
        Test test_objekat = new Test(); //kreiranje objekta tekuce klase!!
        test_objekat.set_a(5);
        test_objekat.set_b(6);
        test_objekat.get_a();
        test_objekat.get_b();
        
    }
    
    public void set_b(int b)
    {
        this.b = b;
    }
    public void get_a()
    {
        System.out.println(a);
    }
    public void get_b()
    {
        System.out.println(b);
    }
}//kraj definicije klase !!


namerno sam stavio main-funkciju u sred definicije da vidim kako ce se ponasati.. i radi! kako?!
Kako je moguce da klasa u samoj svojoj definiciji poziva konkretan objekat?!
 
Odgovor na temu

anon156554

Član broj: 156554
Poruke: 100
*.vektor.net.



Profil

icon Re: Trik pitanje fundamentalnog znacaja30.05.2008. u 23:30 - pre 193 meseci
Neka te to ne zbunjuje.
Konstrukcijom objekta ti inicijalizujes neke atribute istog, najcesce. Ovde kod tebe je to empty default constructor, koji nista ne cini manje vise.
Nakon toga pozivas metode tog objekta, koje su definisane najnormalnije u telu klase.
Ne vidim sta bi trebalo da bude problem u svemu?
 
Odgovor na temu

karas

Član broj: 5574
Poruke: 482
*.dynamic.sbb.rs.



+1 Profil

icon Re: Trik pitanje fundamentalnog znacaja31.05.2008. u 12:02 - pre 193 meseci
Obrati pažnju da je ovde u pitanju main() koja je static i ponasa se na neki način nezavisno od objekta kojem pripada, dakle već ima gotovu definiciju klase kada počne sa izvršavanjem.
Sveti Avgustin: "Dobar hrišćanin treba da se kloni matematičara i svih onih koji daju lažna proročanstva. Postoji opasnost da su matematičari već sklopili pakt sa Đavolom, da pomrače čovekov um i da ga okuju okovima pakla."
 
Odgovor na temu

samilen
Saša Milenković
Beograd

Član broj: 11606
Poruke: 106
89.216.81.*



Profil

icon Re: Trik pitanje fundamentalnog znacaja31.05.2008. u 22:07 - pre 193 meseci
Sve static metode se inicijalizuju i dostupne su pre kreiranja instance klase, tj. objekta, to su kao neke konstantne procedure ili slično.
S druge strane redosled metoda u klasi je nevažan.

Još nešto da dodam - svaka klasa u javi ima podrazumevani konstruktor bez parametara koji ne radi ništa, čak i kada nije eksplicitno napisan.
Klasa može da se prevari kada se eksplicitno navede takav konstruktor, ali se deklariše kao private, što znači da van klase ne može da se pozove (čitaj: ne postoji van klase).
 
Odgovor na temu

boskicthebrain
Boško Stupar
programer, DMS Group Novi Sad
Novi Sad

Član broj: 178573
Poruke: 20
*.rcub.bg.ac.yu.



Profil

icon Re: Trik pitanje fundamentalnog znacaja31.05.2008. u 23:30 - pre 193 meseci
Upravo zbog toga je
Code:
public static void main(...)


Kao sto je neko gore vec rekao staticke metode i atributi se mogu koristiti bez instanciranja objekta date klase. Najvise zbog toga i postoje u objektnom programiranju.

To gde se nalazi metoda - na pocetku - na kraju - u sredini nema bas nikakve veze jer je ovo objektno a ne strukturirano programiranje. U objektnim jezicima ne postoji ocigledna sekvenca izvrsavanja (osim koda u funkcijama, naravno).

Metoda main je jedina kriticna tacka objektnog jezika i to je jedan od razloga sto C++ nije objektni vec hibridni jezik. Java to resava na ovaj nacin: statickom metodom.
ako vec ne programiras, onda trci ili tako nesto...
 
Odgovor na temu

[es] :: Java :: Trik pitanje fundamentalnog znacaja

[ Pregleda: 4332 | Odgovora: 4 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.