|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Junior Member
Iscritto dal: Aug 2008
Messaggi: 1
|
[java] quando dichiarare un metodo "static"
c'e' qualcuno che mi potrebbe spiegare in modo molto semplice quando un metodo va dichiarato static?
|
![]() |
![]() |
![]() |
#2 |
Senior Member
Iscritto dal: Nov 2005
Messaggi: 2773
|
Per dirla nel modo più semplice io direi quando non fa uso della parola chiave this (neanche implicitamente naturalmente). Dalle implicazioni di ciò dovresti capire anche a cosa serve
|
![]() |
![]() |
![]() |
#3 |
Member
Iscritto dal: Jan 2008
Città: roma
Messaggi: 296
|
un metodo static puo essere utilizzato in modo indipendente , senza riferimento a una istanza specifica , infatti e possibile accedere a un metodo static prima che venga creato qualsiasi oggetto della sua classe e senza riferimento ad alcun oggetto , e possibile dichiarare static anche le variabili , che in sostanza sono variabili globali ...
inoltre i metodi static possono chiamare solo altri metodi statici , ( e nn possono fare riferimento a this o a super ) quoto veej e aggiungo che i metodi statici di solito sono metodi di "utilità" |
![]() |
![]() |
![]() |
#4 | ||
Senior Member
Iscritto dal: May 2005
Città: Roma
Messaggi: 7929
|
Quote:
non capisco Quote:
__________________
My gaming placement |
||
![]() |
![]() |
![]() |
#5 |
Bannato
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7027
|
|
![]() |
![]() |
![]() |
#6 |
Senior Member
Iscritto dal: May 2005
Città: Roma
Messaggi: 7929
|
c'entro....con un buon lubrificante c'entro..... :P
volevo solo fare un esempio che magari è sotto gli occhi.....tipo, oltre alla classe Math anche la classe System
__________________
My gaming placement |
![]() |
![]() |
![]() |
#7 |
Senior Member
Iscritto dal: May 2001
Messaggi: 12814
|
Semplicemente quando non hai bisogno che un determinato metodo debba essere eseguito su un oggetto in particolare. Ti faccio un esempio:
Mettiamo che tu voglia creare una classe Amministratore, e per diversi motivi vuoi che si debba creare una sola istanza di Amministratore (cioè un solo amministratore). Come fai? Codice:
public class Amministratore { private static Amministratore admin; private String nome; private Amministratore(String nome) { this.nome = nome; } public static Amministratore creaAmministratore(String nome) { if (admin!=null) { System.out.println("Attenzione amministratore già creato!"); return admin; } System.out.println("Creo un nuovo amministratore col nome: "+nome); admin = new Amministratore(nome); return admin; } public String getNome() { return nome; } ... } Notare anche che il costruttore è privato quindi non puoi creare direttamente oggetti col classico new Amministratore(nome) ma devi invocare il metodo STATICO creaAmministratore(String nome). Se chiamo Amministratore amm = Amministratore.creaAmministratore("Io") -> La prima volta l'output sarà: Codice:
Creo un nuovo amministratore col nome: Io Codice:
Attenzione amministratore già creato! Variabili e metodi Static esistono prima di ogni istanza dell'oggetto. Ultima modifica di WarDuck : 15-08-2008 alle 18:07. |
![]() |
![]() |
![]() |
#8 |
Senior Member
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26110
|
static si usa anche per implementare questo: http://en.wikipedia.org/wiki/Singleton_pattern
Ma sto già sentendo tuoni e fulmini che partono da Guilford in direzione Catania. ![]()
__________________
Per iniziare a programmare c'è solo Python con questo o quest'altro (più avanzato) libro @LinkedIn Non parlo in alcun modo a nome dell'azienda per la quale lavoro Ho poco tempo per frequentare il forum; eventualmente, contattatemi in PVT o nel mio sito. Fanboys |
![]() |
![]() |
![]() |
#9 | |
Member
Iscritto dal: Jan 2008
Città: roma
Messaggi: 296
|
Quote:
![]() ![]() |
|
![]() |
![]() |
![]() |
#10 |
Senior Member
Iscritto dal: May 2001
Messaggi: 12814
|
|
![]() |
![]() |
![]() |
#11 |
Senior Member
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26110
|
Oops. Scusate, non me n'ero reso conto (si vede che debbo ancora digerire il megapranzo di ferragosto
![]() ![]()
__________________
Per iniziare a programmare c'è solo Python con questo o quest'altro (più avanzato) libro @LinkedIn Non parlo in alcun modo a nome dell'azienda per la quale lavoro Ho poco tempo per frequentare il forum; eventualmente, contattatemi in PVT o nel mio sito. Fanboys |
![]() |
![]() |
![]() |
#12 |
Senior Member
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26110
|
"Il Singleton NON ESISTE!!!" - (C) 2007-2008 fek
![]()
__________________
Per iniziare a programmare c'è solo Python con questo o quest'altro (più avanzato) libro @LinkedIn Non parlo in alcun modo a nome dell'azienda per la quale lavoro Ho poco tempo per frequentare il forum; eventualmente, contattatemi in PVT o nel mio sito. Fanboys |
![]() |
![]() |
![]() |
#13 |
Senior Member
Iscritto dal: Oct 2006
Città: milano
Messaggi: 1439
|
|
![]() |
![]() |
![]() |
#14 |
Senior Member
Iscritto dal: Jan 2002
Città: Napoli
Messaggi: 1726
|
non conosco la discussione a riguardo, ma quando si usa Spring, per fare un esempio, è spring che gestisce il fatto che un bean sia prototype o singleton, la classe viene programmata in modo identico, cambia poi come la si usa e la si istanzia tramite spring.
__________________
Se buttassimo in un cestino tutto ciò che in Italia non funziona cosa rimarrebbe? Il cestino. |
![]() |
![]() |
![]() |
#15 |
Senior Member
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26110
|
Dipende dal tipo di problema.
Ma prima ci si dovrebbe chiedere: "ho veramente bisogno di GARANTIRE che una classe venga istanziata soltanto una volta?" ![]() x VeeJ: di niente. ![]()
__________________
Per iniziare a programmare c'è solo Python con questo o quest'altro (più avanzato) libro @LinkedIn Non parlo in alcun modo a nome dell'azienda per la quale lavoro Ho poco tempo per frequentare il forum; eventualmente, contattatemi in PVT o nel mio sito. Fanboys |
![]() |
![]() |
![]() |
#16 |
Senior Member
Iscritto dal: Nov 2005
Messaggi: 2773
|
|
![]() |
![]() |
![]() |
#17 | |
Senior Member
Iscritto dal: Jun 2002
Città: Dublin
Messaggi: 5989
|
Quote:
![]() ![]()
__________________
C'ho certi cazzi Mafa' che manco tu che sei pratica li hai visti mai! |
|
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 18:39.