Errore creazione metodo

di Anonimizzato26275 il
6 risposte
Salve a tutti! La mia probabilmente sarà una domanda banale, ma non capisco perché continuo a ricevere un errore nella creazione di un metodo, anche copiando parte di codice da internet. Ad ogni modo, voglio creare un semplice metodo di prova per l'area del parallelogramma, quindi scrivo:

public double areaParallelogramma(double base, double altezza) {
			
			double area= base * altezza;
			
			return area;
			
		}
Ricevo però un errore relativo alla riga in cui dichiaro il metodo (e anche un warning per il "return area" in quanto Eclipse sostiene che il tipo del motodo sia void). L'errore che ricevo è:

Exception in thread "main" java.lang.Error: Unresolved compilation problems: 
	Illegal modifier for parameter areaParallelogramma; only final is permitted
	Syntax error on token "(", ; expected
	Syntax error on token ",", ; expected
	Syntax error on token ")", ; expected
	Void methods cannot return a value
	
Cosa sto sbagliando?

6 Risposte

  • Quiquoqua48 ha scritto:


    Ricevo però un errore relativo alla riga in cui dichiaro il metodo (e anche un warning per il "return area" in quanto Eclipse sostiene che il tipo del motodo sia void). L'errore che ricevo è:
    
    Exception in thread "main" java.lang.Error: Unresolved compilation problems: 
    	Illegal modifier for parameter areaParallelogramma; only final is permitted
    	Syntax error on token "(", ; expected
    	Syntax error on token ",", ; expected
    	Syntax error on token ")", ; expected
    	Void methods cannot return a value
    	
    Posta il codice completo, se possibile. Perché il solo metodo che hai riportato di per sé è CORRETTO.
  • Il resto del codice è una classe vuota.. il codice completo è:
    
    package experiment;
    
    public class provaMetodo {
    
    	public static void main(String[] args) {
    	
            public double areaParallelogramma(double base, double altezza) {
    			
    			double area= base * altezza;
    			
    			return area;
    			
    		}
    
    	}
    
    }
    
  • Quiquoqua48 ha scritto:


    
    	public static void main(String[] args) {
    	
            public double areaParallelogramma(double base, double altezza) {
    			
    			double area= base * altezza;
    			
    			return area;
    			
    		}
    
    	}
    
    Ah ecco! Hai definito areaParallelogramma dentro il main. E' questo che non è corretto.
  • Già, che errore... come le funzioni in C, anche i metodi vanno dichiarati fuori dal main (che è esso stesso un metodo), giusto?
  • Quiquoqua48 ha scritto:


    Già, che errore... come le funzioni in C, anche i metodi vanno dichiarati fuori dal main (che è esso stesso un metodo), giusto?
    Sì. In Java un metodo NON può contenere direttamente un altro metodo.
    Potrebbe contenere al massimo una local o una anonymous inner class che a sua volta contiene dei metodi. Ma è un altro discorso ...
  • Perfetto, grazie mille per le risposte!
Devi accedere o registrarti per scrivere nel forum
6 risposte