Java, nome programma e classe
Salve. Buona Domenica.
Ho da poco intrapreso lo studio di java e sto seguendo piano piano un libro trovato su internet. Ogni tanto inserisce dei programmi che implemento e mando in esecuzione giusto per capire quali sono le regole da seguire.
Al momento ho implementato al calcolatore il seguente di codice.
Probabilmente, anzi sicuramente c'è qualcosa che non ho capito. Il compilatore dà il seguente errore:
Uno.java:1: error: class Aritmetica is public, shoud be declared in un file name Aritmetica.java
L'errore sembrerebbe chiaro, ovvero non ho messo lo stesso nome della classe contente il main al file di estensione .java, ma il codice invece sembrerebbe corretto, dove sbaglio quindi?
Grazie.
Ho da poco intrapreso lo studio di java e sto seguendo piano piano un libro trovato su internet. Ogni tanto inserisce dei programmi che implemento e mando in esecuzione giusto per capire quali sono le regole da seguire.
Al momento ho implementato al calcolatore il seguente di codice.
public class Aritmetica { public int somma(int a, int b) { return (a + b); } } public class Uno { public static void main(String args[]) { Aritmetica oggetto1 = new Aritmetica(); int risultato = oggetto1.somma(5, 6); System.out.println(oggetto1.somma(5,6)); } }
Probabilmente, anzi sicuramente c'è qualcosa che non ho capito. Il compilatore dà il seguente errore:
Uno.java:1: error: class Aritmetica is public, shoud be declared in un file name Aritmetica.java
L'errore sembrerebbe chiaro, ovvero non ho messo lo stesso nome della classe contente il main al file di estensione .java, ma il codice invece sembrerebbe corretto, dove sbaglio quindi?
Grazie.
Risposte
In Java, una classe pubblica DEVE essere definita all'interno di un file con lo stesso nome. L'errore è esattamente questo.
Se ho capito dovrei fare così:
chiamando il file Uno.java
public class Uno { public static class Aritmetica { public int somma(int a, int b) { return(a+b); } } public static void main(String args[]) { Aritmetica oggetto1 = new Aritmetica(); int risultato = oggetto1.somma(5,6); } }
chiamando il file Uno.java
In definitiva se ho capito un programma java deve avere una unica classe, costituita da sottoclassi che possono essere richiamate in qualche modo, e la classe contenente queste sottoclassi deve avere lo stesso nome del file di estensione .java
No, puoi avere tutte le classi che vuoi, ma il nome del file contenente la classe deve avere lo stesso nome della classe.