|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Senior Member
Iscritto dal: Aug 2005
Messaggi: 2755
|
[Java] Gerarchie di package
Ciao a tutti non mi è moto chiaro se è possibile creare delle gerarchie di package con java (Eclipse non mi lascia creare un package dentro un altro).
Se è possibile una classe nel super-package che visibilità ha delle classi nei sotto package?
__________________
|
![]() |
![]() |
![]() |
#2 |
Senior Member
Iscritto dal: Nov 2004
Città: Tra Verona e Mantova
Messaggi: 4553
|
Che io sappia, in Java non ci sono gerarchie di package. Del genere:
it e it.pippo non sono correlati. C'è o c'era un JSR avente lo scopo di introdurre un modificatore di accesso inter-package ma non so che fine abbia fatto. Spero che sia stato incenerito ![]()
__________________
Uilliam Scecspir ti fa un baffo? Gioffri Cioser era uno straccione? E allora blogga anche tu, in inglese come me! |
![]() |
![]() |
![]() |
#3 | |
Senior Member
Iscritto dal: Aug 2005
Messaggi: 2755
|
Quote:
Io mi sto avvicinando ora a java (Per il corso di ingegneria del software) e in un esercizio che ci è stato dato devo creare un programma per gestire l'aeroporto. Ho creato un package aerei in cui ho vari tipi di aerei, ciascuno con i metodi per aggiungere passeggeri e bagagli. Ho poi una classe check in che si occupa di controllare se i bagagli sono pericolosi o meno e, nel caso siano pericolosi, lo notifica a delle classi responsabili della sicurezza. Il mio problema è che il metodo che devo usare per fare salire i passeggeri sull'aereo è nella classe CheckIn, mentre gli aerei sono nel package aerei. Concettualmente solo la classe CheckIn dovrebbe avere la possibilità di accedere al metodo aereo.add per caricare i passeggeri, ma allo stesso tempo non ha molto senso mettere CheckIn nel package aerei e quindi mi trovo con un problema di visibilità. Vorrei che pur mantenendo Aereo e CheckIn in due package differenti solo CheckIn abbia la visibilità di aereo.add.
__________________
|
|
![]() |
![]() |
![]() |
#4 |
Senior Member
Iscritto dal: Nov 2004
Città: Tra Verona e Mantova
Messaggi: 4553
|
Il problema è che, ultimamente, se esistono due modi per introdurre una nuova funzione quelli si Sun scelgono la più contorta
![]() Mancando un modificatore d'accesso tra package non puoi fare quanto vorresti. Puoi esprimere l'esclusività della relazione usando un'interfaccia ma è un attrezzo che esprime un significato senza costringere all'uso.
__________________
Uilliam Scecspir ti fa un baffo? Gioffri Cioser era uno straccione? E allora blogga anche tu, in inglese come me! |
![]() |
![]() |
![]() |
#5 |
Senior Member
Iscritto dal: Aug 2005
Messaggi: 2755
|
Cmq forse è più utile lasciare il metodo public, in effetti non tutti gli aerei hanno necessità di un check in per imbarcare passeggeri...
Mettendo add(passeggero P) come private perderei questa possibilità... anche se mi sembrerebbe più corretto che una volta creato il check in si debba utilizzare solo quello. Dopo che ti parlano di information hiding e cose simili ti viene un po la mania di mettere tutto a private.
__________________
|
![]() |
![]() |
![]() |
#6 |
Senior Member
Iscritto dal: Nov 2004
Città: Tra Verona e Mantova
Messaggi: 4553
|
Se prendiamo l'orientamento agli oggetti nella sua espressione originaria allora ogni metodo in quanto tale dovrebbe essere pubblico. Smalltalk docet. Quelli che oggi noi definiamo come metodi privati sono in verità metodi pubblici di altri oggetti. Provando a farlo viene fuori un affascinante spezzatino.
__________________
Uilliam Scecspir ti fa un baffo? Gioffri Cioser era uno straccione? E allora blogga anche tu, in inglese come me! |
![]() |
![]() |
![]() |
#7 | |
Senior Member
Iscritto dal: Aug 2005
Messaggi: 2755
|
Quote:
Io ora provo un po con wikipedia.
__________________
|
|
![]() |
![]() |
![]() |
#8 |
Senior Member
Iscritto dal: Nov 2004
Città: Tra Verona e Mantova
Messaggi: 4553
|
Cerca un manuale su Smalltalk, on line se ne trovano parecchi (A Little Smalltalk oppure Smalltalk and Object Orientation ma ce ne sono molti altri). C'era anche un sito ma ora non ricordo esattamente quale (forse lo trovi partendo da www.squeak.org).
Non so se sia più contorto. A me appare più semplice nel senso che ci sono meno cose con cui fare i conti. Tutti i campi sono privati, tutti i metodi sono pubblici, fine della storia. Se oggi posso definire un (una categoria di) oggetto con un metodo privato a cui mi appoggio per fare i conti, "ieri" quei conti erano il comportamento di un secondo oggetto che il primo usava come campo. Insomma, oggetti diversi per compiti diversi. Ma non ho mai provato ad applicare la cosa a programmi Java che fossero qualcosa di più che isolati esperimenti.
__________________
Uilliam Scecspir ti fa un baffo? Gioffri Cioser era uno straccione? E allora blogga anche tu, in inglese come me! Ultima modifica di PGI-Bis : 15-04-2007 alle 21:49. |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 18:32.