Re: pitanja
----- Original Message ----
From: Djole <djolent@gmail.com>
To: ir4pp1@rti.etf.bg.ac.yu
Sent: Tuesday, January 9, 2007 5:53:37 PM
Subject: [ir4pp1] pitanja
2. Ako posmatram sledeci fragment koda
Class Program
Class Unutra1{
int a;
}
Class Unutra2{
Unutra1 b[];
}
Class Unutra3{
Unutra2 c[];
}
{
Unutra3 metod1(Unutra1 x) {...}
void main()
Unutra1 un1; // (**)
Unutra2 un2;
Unutra3 un3;
{
...
metod1(un3.c[7].b[4]).c[9].b[1].a=75; // (***)
}
}
Da li treba da se detektuje
koriscenje i greske u kompatibilnosti za ovakvo igranje sa poljima
klase i povratnim tipovima metoda, posto je ovaj izraz (***) sasvim
regularan za zadatak 1a, varijanta od 8 poena? Primer sa vezbi ne
konstatuje sta ce biti rezultat izraza npr. b[1], kog je on tipa, vec
kao resultat vraca RESULT = b, tj. sam niz.
E, sad, ono shto mene buni je da, po mom misljenju, (***) nije
sintaksno ispravno u MJ. Naime, nisam uspeo da pronadjem redosled smena
u MJ specifikaciji po kome se moze napisati neshto kao:
m().polje
(sto bi u pravoj Javi sluzilo za pristup polju "polje" objekta koji kao rezultat vraca metoda m(), pod uslovom da je deklarisana sa povratnim tipom tipa neke klase koja izmedju ostalog sadrzi polje "polje").
Zapravo, deo ' "." ident ' se pojavljuje jedino u IdentExprList smeni u gramatici koju smo dobili uz postavku prvog dela domaceg:
IdentExprList = IdentExprList "[" Expr "]"
| ident
| IdentExprList "." ident.
Kao sto se vidi, pre ' "." ident ' moze stajati jedino niz nadovezanih indeksiranja i/ili pristupa polju, ali ne i poziv metode. Asistent je odgovorio na Djoletovo pitanje potvrdno, pa nisam siguran da li je meni promaklo da je ovo ipak sintaksno moguce, ili Djole i asistent nisu primetili da je u MJ navedeno neispravno.
Takodje me zanima da li u iskazu tipa:
a = new ImeKlase;
(gde je a npr. globalna promenljiva tipa ImeKlase, a ImeKlase, logicno, ime neke unutrasnje klase u glavnom programu) treba, pored upotrebe simbola a, prijaviti i upotrebu simbola ImeKlase?
Zanima me i da li je, pri nailasku na upotrebu polja klase, potrebno napisati i kojoj klasi pripada to polje, ili je dovoljno samo navesti da se koristi polje to-i-to, a kojoj klasi pripada se vidi iz simbola koji je upotrebljen pre tacke za pristup polju (tj. iz deklaracije tog simbola u MJ kodu)?
Zamolio bih da mi neko (ako je moguce asistent) razjasni ovih par dilema (narocito onu prvu sa sintaksnom ispravnoscu iskaza m().polje u MJ).
Hvala unapred!
Pozdrav,
Marko
__________________________________________________
Do You Yahoo!?
Tired of spam? Yahoo! Mail has the best spam protection around
http://mail.yahoo.com
Previous by date: Re: pitanje za asistenta
Next by date: Izvinjenje
Previous by thread: Re: pitanje za asistenta Next by thread: pitanja
Previous by thread: Re: pitanje za asistenta Next by thread: pitanja