Domanda qualcuno mi saprebbe correggere questo codice?

Samu03cs

Utente Iron
17 Novembre 2020
10
5
0
11
Ultima modifica da un moderatore:
Salve a tutti, sto avendo problemi con un esercizio da ore e non so più cosa fare e per questo vi chiedo di aiutrmi a corregere questo codice mandandomi quello giusto per favore.
Si tratta di un esercizio che però non mi esce quando lo vado a compilare su java....
il testo dell'esercizio dice questo: "progetta la gerarchia di classi per definire una classe Pianoforte a partire da una superclasse StrumentoMusicale"
il codice è il seguente:


Java:
import java.util.Scanner;
public class StrumentoMusicale { // prima classe
    public static String nomeStrumento;
   
    StrumentoMusicale(){
    }
    StrumentoMusicale(String n){
        nomeStrumento=n;
       
    }
    public static void setNomeStrumento(String n) {
        n=nomeStrumento;
    }
   
    public String getNomeStrumento(String n ) {
        return n;
    }
    public String getTipoStrumento (String t) {
        return t;
    }
    public void stampa() {
        System.out.println("lo strumento e' un"+nomeStrumento);
   
    }
}
class strumentiaCorde extends StrumentoMusicale{// seconda classe
    public static  String tipoStrumento;
    strumentiaCorde(){
    }
strumentiaCorde (String t) {
    t=tipoStrumento;   
    }
public void stampa() {
    System.out.println("lo strumento appartiene alla famiglia degli strumenti a "+tipoStrumento);
}
}
class pianoforte extends strumentiaCorde{ //terza classe
    public static String tasti;
    pianoforte(){
    }
    pianoforte(String s){
        s=tasti;   
    }
    public void stampa(){
        System.out.println("il pianoforte ha "+tasti+"tasti");
    }
public class prova{
public void main(String[] args) {
    StrumentoMusicale sm= new StrumentoMusicale("PIANOFORTE");
    System.out.println("\nStrumentoMusicale");
    sm.stampa();
   
    strumentiaCorde sc= new strumentiaCorde("corde");
    System.out.println("\nstrumentiaCorde");
    sc.stampa();
   
    pianoforte pi= new pianoforte("80 tasti");
    System.out.println("\npianoforte");
    pi.stampa();
}
}
}
QUANDO LO VADO A COMPILARE ESCE UN ERRORE CHE POTETE VEDERE NELLA FOTO CHE HO ALLEGATO.
GRAZIE IN ANTICIPO E BIUONA SERATA.
 

Allegati

  • WhatsApp Image 2021-01-05 at 9.54.28 PM.jpeg
    WhatsApp Image 2021-01-05 at 9.54.28 PM.jpeg
    1,005.4 KB · Visualizzazioni: 28
L'errore e' molto esplicativo, ti manca static nella dichiarazione della funzione main:
Java:
// Sostituisci
public void main(String[] args)
// Con
public static void main(String[] args)

Per il prossimo thread usa il tag per il codice, in modo che venga visualizzato con gli spazi corretti e i colori per facilitare la lettura.
 
L'errore e' molto esplicativo, ti manca static nella dichiarazione della funzione main:
Java:
// Sostituisci
public void main(String[] args)
// Con
public static void main(String[] args)

Per il prossimo thread usa il tag per il codice, in modo che venga visualizzato con gli spazi corretti e i colori per facilitare la lettu
Salve a tutti, sto avendo problemi con un esercizio da ore e non so più cosa fare e per questo vi chiedo di aiutrmi a corregere questo codice mandandomi quello giusto per favore.
Si tratta di un esercizio che però non mi esce quando lo vado a compilare su java....
il testo dell'esercizio dice questo: "progetta la gerarchia di classi per definire una classe Pianoforte a partire da una superclasse StrumentoMusicale"
il codice è il seguente:


Java:
import java.util.Scanner;
public class StrumentoMusicale { // prima classe
    public static String nomeStrumento;
  
    StrumentoMusicale(){
    }
    StrumentoMusicale(String n){
        nomeStrumento=n;
      
    }
    public static void setNomeStrumento(String n) {
        n=nomeStrumento;
    }
  
    public String getNomeStrumento(String n ) {
        return n;
    }
    public String getTipoStrumento (String t) {
        return t;
    }
    public void stampa() {
        System.out.println("lo strumento e' un"+nomeStrumento);
  
    }
}
class strumentiaCorde extends StrumentoMusicale{// seconda classe
    public static  String tipoStrumento;
    strumentiaCorde(){
    }
strumentiaCorde (String t) {
    t=tipoStrumento;  
    }
public void stampa() {
    System.out.println("lo strumento appartiene alla famiglia degli strumenti a "+tipoStrumento);
}
}
class pianoforte extends strumentiaCorde{ //terza classe
    public static String tasti;
    pianoforte(){
    }
    pianoforte(String s){
        s=tasti;  
    }
    public void stampa(){
        System.out.println("il pianoforte ha "+tasti+"tasti");
    }
public class prova{
public void main(String[] args) {
    StrumentoMusicale sm= new StrumentoMusicale("PIANOFORTE");
    System.out.println("\nStrumentoMusicale");
    sm.stampa();
  
    strumentiaCorde sc= new strumentiaCorde("corde");
    System.out.println("\nstrumentiaCorde");
    sc.stampa();
  
    pianoforte pi= new pianoforte("80 tasti");
    System.out.println("\npianoforte");
    pi.stampa();
}
}
}
QUANDO LO VADO A COMPILARE ESCE UN ERRORE CHE POTETE VEDERE NELLA FOTO CHE HO ALLEGATO.
GRAZIE IN ANTICIPO E BIUONA SERATA.
Ciao,ho provato a fare come hai detto tu ma non cambia niente. Ti allego cosa mi dice
 

Allegati

  • Screenshot_2021-01-06-16-06-05-201_com.android.chrome.jpg
    Screenshot_2021-01-06-16-06-05-201_com.android.chrome.jpg
    314.9 KB · Visualizzazioni: 22
Appunto, senza spazi non avevo visto che la classe prova e' dentro la classe pianoforte, tirala fuori.
Ti suggerisco di usare un IDE normale, dagli screen sembra che tu stia usando un qualche servizio online nel browser.
 
Appunto, senza spazi non avevo visto che la classe prova e' dentro la classe pianoforte, tirala fuori.
Ti suggerisco di usare un IDE normale, dagli screen sembra che tu stia usando un qualche servizio online nel browser.
Esatto ma anche su Eclipse mi dà un errore. Io davvero non so come fare e per questo ti chiedo se puoi mandarmi tutto il codice modificato se puoi perché se aspetto che la mia prof mi aiuti arrivo a 140 anni