Newsgroup: it.comp.java
Titolo: Domanda banale sui metodi

Ciao a tutti,
ho un dubbio.
Ma tutti i metodi che lavorano su dati di tipo primitivo devono essere 
statici,  giusto?
Ad esempio metodi che fanno calcoli, etc.
Ed � normale che possono essere chiamati solo anteponendo il nome della 
classe che li descrive?
Perch� ho scritto una funzione per calcolare il fattoriale, poi ho fatto 
una classe di test che richiama il metodo ma se non antepongo il nome 
della classe mi d� errore, invece ho visto che altre classi posso 
chiamare un metodo senza anteporre il nome della classe, per� finora ho 
notato che sono sempre metodi che hanno a che fare con gli oggetti.
 
Grazie.
 
-- 
*Valar morghulis*

 classe che li descrive?
 
Solo se sono statici e la classe che li descrive non è fra quelle importate.
Ci sarebbe da aggiungere altro riguardo i package e i qualificatori d'accesso, ma è meglio non approfondire.

 classe che li descrive
 
Si e no, ovvero i metodi statici hanno un contesto ed un'applicazione 
differente rispetto ai normali metodi. A tal proposito, ti consiglio di 
leggere meglio la documentazione: 
http://docs.oracle.com/javase/tutorial/java/javaOO/classvars.html
 
 
Enrico

 Solo se sono statici e la classe che li descrive non � fra quelle importate.
 
quindi un metodo NON statico pu� essere richiamato solo mettendone il 
nome (purch� le classi siano nello stesso percorso)?
 
 
Grazie.
 
 
-- 
*Valar morghulis*

 ArrayList<Fermata>();
 
Questo non e` un metodo, e` la dichiarazione di una variabile statica 
(listFermate) di tipo "array di Fermata", inizializzato all'array vuoto.
 
Bye.

 o non mi è affatto chiaro :(
 
Direi che ti sfugge parecchia roba, a questo punto ti conviene rivedere i 
tuoi studi
 
Enrico

 nome (purché le classi siano nello stesso percorso)?
Dovrai mettere il nome della variabile punto nome membro. Mentre se 
invece il membro è statico dovrai utilizzare nome classe  punto nome membro.
 
 

 o non mi � affatto chiaro :(
 
Come ti hanno gia' detto, non c'e' relazione tra la natura
di un dato (primitive, object) e la usa appatenenza alla
classe o ad un'istanza di essa. Puoi avere dati primitivi 
cha appartengono alla classe, e quindi statici, o all'istanza.
Idem per gli object.
 
Per cui puoi tranqullamente trovare dichiarazioni del tipo:
 
class Dummy(){
 
public static int getPippo(){ return pippo;}
public int getPluto(){ return pluto;}
 
 
private static int pippo = 0;
private int pluto = 10;
}
 
Pippo appartiene alla classe, pluto all'istanza. 
 
Per usare pippo puoi scrivere direttamente:
 
System.out.println(Dummy.getPippo());
 
Per usare pluto devi prima fare un'istanza 
di Dummy e poi dall'istanza usare getPluto:
 
Dummy ist = new Dummy();
System.out.println(ist.getPluto());
 
Di solito quando trovi degli esempi sono quasi sempre
statici perche' cosi' li puoi copincollare nella tua
classe dove c'e' il main e da li chiamarli senza dover
istanziare alcunche'.
 
 
 
 
-- 
Se fossi io a testimoniare di me stesso, la mia testimonianza non sarebbe
vera. C'e' un altro che da' testimonianza di me, e so che la testimonianza
che egli da di me e' vera.
 
 
 
 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it
 
 
 

 da metodi statici. 
 
Questa dimenticala, bo detto una sciocchezza.
