View Full Version : java array
eyesevil7777777
01-11-2011, 10:25
salve ragazzi, vorrei sapere come utilizzare i valori di un array in un metodo, nel senso per esempio io ho creato un array di 4 valori, come faccio a far usare ad un metodo che per esempio mi dice la somma di questi 4 valori?
public class Main {
public static void main(String[] args) {
int[4] dati = { 3, 6, 93, 894 };
System.out.println(somma(dati));
}
private static int somma(int[] dati) {
int somma = 0;
for(int i = 0; i < dati.length; i++)
somma += dati[i];
return somma;
}
}
eyesevil7777777
01-11-2011, 11:45
grazie per la tempestiva risposta, ti chiedo un altra cosa, perchè hai messo static? cosa cambiava se non lo mettevi?
Immagino tu intenda nel metodo somma. Se non l'avessi messo avresti avuto bisogno di un riferimento ad un oggetto Main per chiamare quel metodo. In questo caso ha poco senso.
eyesevil7777777
01-11-2011, 12:36
e come si farebbe a richiamare quel metodo? se io ho creato una nuova classe dove ho inseriro il metodo somma, come faccio a far usare i valori dell'array nel main alla classe dove ho inserito il metodo somma?
Non puoi imparare il Java a colpi di risposte su un forum. Senza considerare che non ne sarei in grado.
http://download.oracle.com/javase/tutorial/reallybigindex.html
e come si farebbe a richiamare quel metodo? se io ho creato una nuova classe dove ho inseriro il metodo somma, come faccio a far usare i valori dell'array nel main alla classe dove ho inserito il metodo somma?
QUOTO NDAKOTA, java non si può imparare su un forum. Ad ogni modo, al fine aiutarti ti spiegherò brevemente la questione.
Java è un linguaggio ad oggetti. Un oggetto è da considerarsi come un insieme di dati e funzioni (attributi e metodi per la precisione) che possono essere allocati/creati dinamicamente quando se ne richiede l'uso.
Un metodo appartenente ad un OGGETTO può essere invocato solo se l'oggetto esiste. Perciò se vuoi chiamare un metodo appartenente ad una classe devi aver instanziato un oggetto di quella classe.
In altre parole:
public class Sommatore {
public static void main(String[] args) {
Sommatore oggettoSommatore = new Sommatore();
int[4] dati = { 3, 6, 93, 894 };
System.out.println(oggettoSommatore.somma(dati));
}
private int somma(int[] dati) {
int somma = 0;
for(int i = 0; i < dati.length; i++)
somma += dati[i];
return somma;
}
}
Ndakota ha inserito la clausola static prima del metodo somma. Tale clausola crea un "metodo globale" (è una definizione orrenda e scorretta, ma ti rende l'idea) accessibile da qualsiasi altro oggetto/codice in esecuzione. In tal modo non avresti avuto la necessità di creare instanziare l'oggetto Sommatore nel main.
E' più chiaro?
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.