Ciao, sono alle prime armi perciò sto facendo degli esercizi davvero stupidi per prendere confidenza con java.
In questo caso sto lavorando in una singola classe che fa un overload di un metodo, utilizzando parametri differenti. Quello che riscontro però non è un problema dell'overload bensì quando richiamo i membri da passare all'interno dei main.
Comincio dalla classe e dal costruttore
codice:
public class libero {
public libero() {
int x = 0;
double y = 0;
}
fin qui mi sembra di non aver sbagliato nulla, dichiaro la classe ed il costruttore con due variabili di tipo differente e le inizializzo.
Poi dichiaro l'overload e le istruzioni dei metodi
codice:
//overload
public int somma(int a, int b) {
int totale = a + b;
return totale;
}
public double somma(double c, double d) {
double totale = c + d;
return totale;
}
ed anche qui nessun problema, mi pare di aver scritto tutto correttamente.
Infine chiamo il main
codice:
public static void main(String[] args) {
x = somma(2,3);
y = somma(2.5,3.2);
System.out.println(x);
System.out.println(y);
}
Capisco che può sembrare una sciocchezza, ma per me che sono all'inizio proprio non riesco a capire quale sia il problema.
Gli errori che la console mi riporta sono:
Non riesce a risolvere x e y come variabili (eppure nel costruttore le ho dichiarate e inizializzate)
Non riesce a referenziare in un metodo statico (main) due metodi non statici.
In pratica se tolgo il modificatore static su main si risolve il problema.
Quello che non capisco è...perchè? i due metodi devono essere perforza statici? chiaramento se aggiungo ai metodi il modificatore static non appare più il problema, ma onestamente vorrei capire il nesso.
Grazie