|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Member
Iscritto dal: Jan 2007
Messaggi: 70
|
[java] problema con i campi
Avrei un problema con Java
![]() http://prog.dsi.unimi.it/Esami/Jan06/versione-1.pdf Allora nell'esercizio n. 4 non riesco proprio a capire perchè nel secondo punto l'espressione non viene compilata. Il fatto che sul libro c'è più volte scritto che quando si invoca un metodo il compilatore lo cerca partendo dalla classe effettiva dell'oggetto e, solo se non lo trova in questa classe, risale la gerarchia delle classi e continua la ricerca. Quindi un metodo di una classe viene compilato anche se la variabile riferimento è di una superclasse dell'oggetto. Qua invece, a quanto pare, quando si richiama un campo della classe effettiva il compilatore si incazza se il riferimento è di una superclasse della classe dell'oggetto. Il fatto che questo sul libro non c'è scritto da nessuna parte e mi sembra una cosa così stupida questa regola di java. ![]() Voi che dite?? (il prof tra l'altro oggi ha fatto vedere questo es e l'ha corretto come sul pdf...) ![]() Grazie mille ![]() |
![]() |
![]() |
![]() |
#2 |
Senior Member
Iscritto dal: Aug 2006
Messaggi: 365
|
se un campo è private non è visibile neanche alle sottoclassi, se vuoi renderlo visibile solo alle sottoclassi devi dichiararlo protected
|
![]() |
![]() |
![]() |
#3 |
Senior Member
Iscritto dal: Jul 2002
Messaggi: 4334
|
Un riferimento di tipo A vede solo i metodi e i campi definiti in A
e in superclassi di A. Per vedere obj.b, obj deve essere un riferimento di tipo B.
__________________
|Java Base| |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 16:54.