PDA

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?

ndakota
01-11-2011, 11:19
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?

ndakota
01-11-2011, 12:04
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?

ndakota
01-11-2011, 14:26
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

webking
09-11-2011, 00:23
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?