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

static atributi u nadklasi

[es] :: Java :: static atributi u nadklasi

[ Pregleda: 4899 | Odgovora: 9 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

samilen
Saša Milenković
Beograd

Član broj: 11606
Poruke: 106
*.etf.bg.ac.yu.



Profil

icon static atributi u nadklasi11.03.2005. u 23:52 - pre 231 meseci
Da li se static atribut u nekoj klasi, ili apstraktnoj klasi, nasleđuju izvedene klase, ili postoji samo jedna vrednost za sve instance svih podklasa.
 
Odgovor na temu

StMilan

Član broj: 5061
Poruke: 144
*.ptt.yu.



Profil

icon Re: static atributi u nadklasi12.03.2005. u 01:54 - pre 231 meseci
Mislim da ti je najlakše da za 5 minuta napišeš test kod i da probaš.

Statička polja i metodi su vezani za klasu u kojoj su deklarisani i nemaju veze ni sa jednom instancom. Ne možeš da imaš polimorfizam sa statičkim metodama npr.

Tako da se zapravo (bar ja tako gledam) statička polja i metodi zapravo ne nasleđuju, mada tako može da se čini zbog vidljivosti u podklasama. Odgovor na tvoje pitanje bi bio da postoji samo jedna vrednost. (naravno, prvo sam napisao kod i probao, pa onda filozofirao :))
 
Odgovor na temu

samilen
Saša Milenković
Beograd

Član broj: 11606
Poruke: 106
*.bg.ac.yu
Via: [es] mailing liste



Profil

icon Re: static atributi u nadklasi12.03.2005. u 21:52 - pre 231 meseci
>
Citat:
Mislim da ti je najlakše da za 5 minuta napišeš test kod i da
probaš.

Istina je da me je mrzelo da kucam kod, ali priznajte da je tema zanimljiva
i zaslužuje da bude ovde bar dokumentaciono, kako bi početnici mogli nešto
da shvate bez da probaju. Pošto sam još uvek lenj, a želeo bih odgovore,
pitanje nastavlja svoj život, ali se sada odnosi samo na apstraktne klase.

Da li to isto važi i za apstraktne klase i interfejse?

:)Pitanje počinje da evoluira u mojoj glavi i poprima oblike užasnih pitanja
svih pitanja: ZAŠTO JE TO TAKO?
DA LI JE TO OPRAVDANO?
 
Odgovor na temu

Dragi Tata
Malo ispod Kanade

Član broj: 1958
Poruke: 3906
*.bos.east.verizon.net.



+6 Profil

icon Re: static atributi u nadklasi12.03.2005. u 22:55 - pre 231 meseci
Static promenljive su samo drugo ime za globalne promenljive.
 
Odgovor na temu

logotet
Beograd

Član broj: 49849
Poruke: 42
*.nat-pool.bgd.sbb.co.yu.

Sajt: www.logotet.com


Profil

icon Re: static atributi u nadklasi13.03.2005. u 13:39 - pre 231 meseci
Citat:
Dragi Tata: Static promenljive su samo drugo ime za globalne promenljive.

Ne bih se složio.
Ako imaš
Code:
private static int broj;

to se teško može nazvati globalom promenljivom.
Static članovi (polja ili metode) su zajednički za sve INSTANCE jedne klase. I to po mom mišlenju dovoljno sve objašnjava.
To što se programerska poteba da napravi nešto globalno realizuje preko static članova, ne znači da je static drugo ime za globalnu promenljivu.
 
Odgovor na temu

Dragi Tata
Malo ispod Kanade

Član broj: 1958
Poruke: 3906
*.bos.east.verizon.net.



+6 Profil

icon Re: static atributi u nadklasi13.03.2005. u 14:25 - pre 231 meseci
Ako je staviš da bude private, onda je to grubo rečeno ekvivalentno globalnoj u C-u sa internim linkovanjem. Pristup je ograničen na jedan deo koda, ali taj deo koda i dalje koristi promenljivu kao da je globalna.
 
Odgovor na temu

samilen
Saša Milenković
Beograd

Član broj: 11606
Poruke: 106
*.bg.ac.yu
Via: [es] mailing liste



Profil

icon Re: static atributi u nadklasi13.03.2005. u 15:03 - pre 231 meseci
>

Sve to nije sporno, samo bi bilo interesantnije da mogu da se nasleuđju, što
bi u nekim slučajevima olakšalo programiranje.
Recimo da hoću da svaka podklasa ima static promenljivu/metodu istog naziva,
ali da svaka instanca ima različitu vrednost. Ok, to uvek može i drugačije,
ali recimo da je u konkretnom slučaju važno da promenljiva bude statična
(npr. nasleđivanje specifičnog singletona koji ima protected static Object
instance=null; promenljivu)
 
Odgovor na temu

logotet
Beograd

Član broj: 49849
Poruke: 42
*.nat-pool.bgd.sbb.co.yu.

Sajt: www.logotet.com


Profil

icon Re: static atributi u nadklasi13.03.2005. u 18:59 - pre 231 meseci
Citat:
samilen: >
...Recimo da hoću da svaka podklasa ima static promenljivu/metodu istog naziva,
ali da svaka instanca ima različitu vrednost.

Ovde nešto ne štima. Ako hoćeš da svaka instanca ima različitu vrednost, onda to nije static, već "normalna" promenljiva ili metoda.
A, da se vratimo na prvobitno pitanje.
Ako u klasi A imaš neki static član, on je zajednički za sve instance te klase i njenih potklasa, naravno pod uslovom da potklasa B nema član istog imena, a takođe static.
A to je i vrlo logično.
Static čan se "instancira" kreiranjem prve instance klase. Prilikom instanciranja objekta potklase, konstruktor natklase se takođe izvršava i to dovodi do "stvaranja" static člana. To važi za polja. Za metode je nevažno, jer su static metode zapravo funkcije koje pozivaš sa Klasa.metoda() i njih možeš prebaciti i u neku desetu klasu, ništa se ne menja. Static metode se programiraju u oviru neke klase radi preglednije i bolje organizacije koda, a ne zato što im je tu prirodno mesto, dok se "obične" metode programiraju u okviru neke klase jer definišu ponašanje objekta te klase.
 
Odgovor na temu

samilen
Saša Milenković
Beograd

Član broj: 11606
Poruke: 106
*.etf.bg.ac.yu.



Profil

icon Re: static atributi u nadklasi14.03.2005. u 02:20 - pre 231 meseci
Izvinjavam se sto sam upotrebio rec instanca gde joj nije mesto, kucao sam na brzinu ubijajuci viruse drugom rukom :). Mislio sam, zapravo, na podklasu.
Citat:
Static čan se "instancira" kreiranjem prve instance klase.
Cini mi se da i ovde nesto ne stima. Zapravo za poziv static clana nije potrebno nikakvo instanciranje klase(ako je public). Mora da je pominjanje singletona izazvalo zbrku.
 
Odgovor na temu

logotet
Beograd

Član broj: 49849
Poruke: 42
*.nat-pool.bgd.sbb.co.yu.

Sajt: www.logotet.com


Profil

icon Re: static atributi u nadklasi14.03.2005. u 17:07 - pre 231 meseci
U poglavlju 12 specifikacije jezika je pojašnjen redosled prilikom inicijalizacije klase. I , iako različiti ClassLoaderi i JVM mogu imati sitne specifičnosti, važi generalno pravilo da se inicijalizacija obavlja prilikom prvog poziva konstruktora, ili prilikom prvog "poziva" static metode ili dodeljivanja vrednosti static članu.
Tom prilikom se vrši i inicijalizacija natklasa, ako već nisu inicijalizovane. Ovde se koristi termin inicijalizacija, da bi se razlikovalo od instanciranja. Zato sam u prethodnom postu stavio instanciranje pod znake navoda, ali očigledno nije bilo jasno.
 
Odgovor na temu

[es] :: Java :: static atributi u nadklasi

[ Pregleda: 4899 | Odgovora: 9 ] > FB > Twit

Postavi temu Odgovori

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