classi pubbliche nello stesso file .java

251 views
Skip to first unread message

Cristiano Tomasi

unread,
Jan 25, 2013, 4:11:38 PM1/25/13
to jug...@googlegroups.com
Ciao a tutti

ho trovato un modo per dichiarare più classi pubbliche nello stesso file java

es:

public class MyMainClass{

  public aSmalSupportClass{
  }
}

esistono contro indicazioni a questo tipo di approccio, il mio obbiettivo e' di non fare troppi file piccoli per le classi di supporto che contengono poca logica e quasi esclusivamente proprietà

saluti
Cris.

Chris Mair

unread,
Jan 25, 2013, 4:32:00 PM1/25/13
to jug...@googlegroups.com
> Ciao a tutti
>
> ho trovato un modo per dichiarare pi� classi pubbliche nello stesso file
> java
>
> es:
>
> public class MyMainClass{
>
> public aSmalSupportClass{
> }
> }
>
> esistono contro indicazioni a questo tipo di approccio, il mio
> obbiettivo e' di non fare troppi file piccoli per le classi di supporto
> che contengono poca logica e quasi esclusivamente propriet�
>
> saluti
> Cris.


Ciao,

questo va sotto il nome di "inner classes". Prova a googlare il
termine, per vedere use cases.

Non so perche` ti danno fastidio file piccoli..., ma non dovrebbe
essere quello il criterio che ti detta la struttura del tuo codice ;)

Bye,
Chris.





Cristiano Tomasi

unread,
Jan 25, 2013, 4:46:03 PM1/25/13
to jug...@googlegroups.com
Ciao Chris

grazie del suggerimento, il problema non sono i file piccoli, ma i tanti file, ti faccio l'esempio pratico che sto affrontando

se devo fare una classe UndoManager, che ha bisogno di una classe UndoBlock che ha bisogno di una classe UndoAction, avendole separate in più file in caso di debug, di errore nel codice e cosi via devo sempre saltare da una paletta all'altra nell'IDE mentre se sono tutte nello stesso file le trovo molto più velocemente.
Oltre tutto queste tre classi sono le sole classi che mi servono per implementare le mie operazioni di undo e  quindi e anche logico raggrupparle in un unico "blocco"
Ovviamente se queste tre classi fossero molto grandi un unico file java diventerebbe poco leggibile e quindi le avrebbe senso separarle su più file, viceversa no.
cmq. vado subito a vedere le "inner classes" ;) grazie mille

saluti
Cris.


2013/1/25 Chris Mair <ch...@1006.org>
Ciao a tutti

ho trovato un modo per dichiarare più classi pubbliche nello stesso file

java

es:

public class MyMainClass{

   public aSmalSupportClass{
   }
}

esistono contro indicazioni a questo tipo di approccio, il mio
obbiettivo e' di non fare troppi file piccoli per le classi di supporto
che contengono poca logica e quasi esclusivamente proprietà

saluti
Cris.


Ciao,

questo va sotto il nome di "inner classes". Prova a googlare il
termine, per vedere use cases.

Non so perche` ti danno fastidio file piccoli..., ma non dovrebbe
essere quello il criterio che ti detta la struttura del tuo codice ;)

Bye,
Chris.






--
You received this message because you are subscribed to the Google Groups "JUG Trentino Alto Adige Suedtirol" group.
To post to this group, send email to jug...@googlegroups.com.
To unsubscribe from this group, send email to jugtaa+unsubscribe@googlegroups.com.
Visit this group at http://groups.google.com/group/jugtaa?hl=en.
For more options, visit https://groups.google.com/groups/opt_out.



Martin Platter

unread,
Jan 26, 2013, 4:26:50 PM1/26/13
to jug...@googlegroups.com
Ciao, 

ti vorrei far notare che esistono anche static nested classes (il to esempio usa una non-static nested class o inner class). 
http://docs.oracle.com/javase/tutorial/java/javaOO/nested.html
Per il tuo scopo forse sarebbe meglio usare una static nested class. 
Sei voi usare una inner class non dimenticati che queste hanno una reference con l`outer class (e ti può capitare una memory leak (http://frickelblog.wordpress.com/2011/06/02/how-to-create-memory-leaks-by-using-inner-classes/)
Ti posso chiedere quale IDE use? 

Saluti
Martin
To unsubscribe from this group and stop receiving emails from it, send an email to jugtaa+un...@googlegroups.com.

To post to this group, send email to jug...@googlegroups.com.

Cristiano Tomasi

unread,
Jan 27, 2013, 4:17:39 AM1/27/13
to jug...@googlegroups.com
Ciao Martin

grazie del suggerimento, farò un po' di esperimenti, anche se le classi statiche non mi piacciono molto perchè hanno cmq alcune limitazioni rispetto alle classi non statiche.
per questo progetto sto usando netbeans.

Saluti
Cris.

2013/1/26 Martin Platter <mpla...@gmail.com>
To unsubscribe from this group, send email to jugtaa+un...@googlegroups.com.

Roberto Resoli

unread,
Jan 31, 2013, 1:12:55 PM1/31/13
to jug...@googlegroups.com


Il giorno 25/gen/2013 22:46, "Cristiano Tomasi" <ctom...@gmail.com> ha scritto:
>
> Ciao Chris
>
> grazie del suggerimento, il problema non sono i file piccoli, ma i tanti file, ti faccio l'esempio pratico che sto affrontando
>
> se devo fare una classe UndoManager, che ha bisogno di una classe UndoBlock che ha bisogno di una classe UndoAction, avendole separate in più file in caso di debug, di errore nel codice e cosi via devo sempre saltare da una paletta all'altra nell'IDE mentre se sono tutte nello stesso file le trovo molto più velocemente.

Questo non mi sembra un criterio molto valido, la struttura di un progetto dovrebbe credo osservare criteri di logica interna e chiarezza, non quella di "risparmio di click" per chi programma.

> Oltre tutto queste tre classi sono le sole classi che mi servono per implementare le mie operazioni di undo e  quindi e anche logico raggrupparle in un unico "blocco"

Questo mi sembra invece molto ragionevole; solitamente le inner classe sono classi private, usate solamente all'interno della classe che le racchiude, a cui offrono metodi di supporto.

In alcune occasioni si vede addirittura una classe definita contestualmente alla "new" con cui la si istanzia. Poco leggibile in generale, ma ha il vantaggio di raggruppare tutto il codice nell'unico punto in cui viene utilizzato. Un esempio è questo timer, che prevede come parametro un listener dichiarato al volo (riga 570):

http://j4sign.cvs.sourceforge.net/viewvc/j4sign/j4sign/src/java/core/it/trento/comune/j4sign/examples/PKCS11SignApplet.java?revision=1.8&view=markup

ciao,
rob

Reply all
Reply to author
Forward
0 new messages