Visualizzazione dei risultati da 1 a 9 su 9
  1. #1

    Errore sconosciuto :D

    non capisco dov'è l'errore:

    No constructor matching Person() found in class Person.

    il codice che voglio compilare è questo:

    (file: Mitglied.java)
    codice:
    public class Mitglied extends Person{
     protected String Eintrittsdatum;
     protected double Mitgliedsbeitrag;
     protected String OutputMitglied;
    
     public Mitglied(String Eintrittsdatum, double Mitgliedsbeitrag){
      this.Eintrittsdatum   = Eintrittsdatum;
      this.Mitgliedsbeitrag = Mitgliedsbeitrag;
      super(PersonalNummer, Nachname, Vorname, Alter, Gehalt, MitgliedVerify);
     }
    
     public String getMitglied(){
      this.OutputMitglied   = "Eintrittsdatum: " + this.Eintrittsdatum + "\n";
      this.OutputMitglied  += "Vorname: " + this.Vorname + "\n";
      this.OutputMitglied  += "Mitgliedsbeitrag: " + this.Mitgliedsbeitrag + " EURO\n";
      return this.OutputMitglied;
     }
    }
    è scritto in tedesco , ma è intuitivo dai
    Visita il mio Sito Web: http://www.distefanogiuseppe.it

  2. #2
    Utente di HTML.it L'avatar di Angelo1974
    Registrato dal
    Feb 2003
    Messaggi
    1,107
    Ciao. Allora quando tu crei una sottoclasse da una classe la parola super deve essere la prima che appare nel costruttore. Ad esempio:

    public class Prova{
    public String name;
    public Prova( String nome ){
    name = nome;
    }
    }

    public class Prova2{
    public String cognome;

    public Prova2( String nome, String cogno ){
    cognome = cogno;
    super( nome );

    ERRATO
    }

    }



    La classe scritte sopra ( + esattamente la Prova2 ) è ERRATA; infatti se il compilatore non trova super( nome ); come prima istruzione, va nella superclasse ( e cioè Prova ) e cerca il costruttore di default ( quello che non accetta parametri in ingresso ); se non lo trova ti da l'errore che hai visto. Se scrivi Prova2 in quasta maniera:

    public class Prova2{
    public String cognome;

    public Prova2( String nome, String cogno ){

    super( nome );
    cognome = cogno;


    }

    }


    Dovrebbe abdare; tornando al tuo esempio, dovresti, secondo me, scrivere la classe in questa maniera:

    public class Mitglied extends Person{
    protected String Eintrittsdatum;
    protected double Mitgliedsbeitrag;
    protected String OutputMitglied;

    public Mitglied(String Eintrittsdatum, double Mitgliedsbeitrag){
    super(PersonalNummer, Nachname, Vorname, Alter, Gehalt, MitgliedVerify);
    this.Eintrittsdatum = Eintrittsdatum;
    this.Mitgliedsbeitrag = Mitgliedsbeitrag;

    }

    public String getMitglied(){
    this.OutputMitglied = "Eintrittsdatum: " + this.Eintrittsdatum + "\n";
    this.OutputMitglied += "Vorname: " + this.Vorname + "\n";
    this.OutputMitglied += "Mitgliedsbeitrag: " + this.Mitgliedsbeitrag + " EURO\n";
    return this.OutputMitglied;
    }
    }
    Se vuoi trovare l'arcobaleno, devi sopportare la pioggia

  3. #3
    ciao,
    ho provato a chiamare super() per primo, proprio come hai scritto te ma continua a darmi errore:

    Mitglied.java:7: Can't reference PersonalNummer before the superclass constructor has been called.
    super(PersonalNummer, Nachname, Vorname, Alter, Gehalt, MitgliedVerify);

    l'errore può essere nella classe Person? :master:
    Visita il mio Sito Web: http://www.distefanogiuseppe.it

  4. #4
    Utente di HTML.it L'avatar di Angelo1974
    Registrato dal
    Feb 2003
    Messaggi
    1,107
    Ma PersonalNummer che oggetto è? Una stringa o cosa? Non lo vedo ne come parametro passato al costruttore ne come variabile della sottoclasse......
    Se vuoi trovare l'arcobaleno, devi sopportare la pioggia

  5. #5
    PersonalNummer è (protected) int ed è dichiarata(?) nella classe Person.

    questa è la classe Person, così forse ti è più chiaro:

    codice:
    public class Person{
     protected int PersonalNummer;
     protected String Nachname;
     protected String Vorname;
     protected int Alter;
     protected double Gehalt;
     protected boolean MitgliedVerify;
     protected String Output;
    
     public Person(int PersonalNummer, String Nachname, String Vorname, int Alter, double Gehalt, boolean MitgliedVerify){
      this.PersonalNummer = PersonalNummer;
      this.Nachname       = Nachname;
      this.Vorname        = Vorname;
      this.Alter          = Alter;
      this.Gehalt         = Gehalt;
      this.MitgliedVerify = MitgliedVerify;
     }
    
     public String getPerson(){
      this.Output         = "Personalnummer: " + this.PersonalNummer + "\n";
      this.Output        += "Vor- und Nachname: " + this.Vorname + " " + this.Nachname + "\n";
      this.Output        += "Alter: " + this.Alter + "\n";
      this.Output        += "Gehalt: " + this.Gehalt + " EURO\n";
      this.Output        += "[ Mitglied: " + this.MitgliedVerify + " ]\n";
    
      if(this.MitgliedVerify == true){
       this.Output       += "test\n";
      }
      else{
       this.Output       += "";
      }
      return this.Output;
     }
    }
    Visita il mio Sito Web: http://www.distefanogiuseppe.it

  6. #6
    Utente di HTML.it L'avatar di Angelo1974
    Registrato dal
    Feb 2003
    Messaggi
    1,107
    Allora, partendo dal presupposto che non so cosa tu debba fare, io farei, per fare un esempio:


    public class Mitglied extends Person{
    protected String Eintrittsdatum;
    protected double Mitgliedsbeitrag;
    protected String OutputMitglied;

    public Mitglied(String Eintrittsdatum, double Mitgliedsbeitrag){

    super( 08133334,"Angelo","1974",29,5.0,true );
    this.Eintrittsdatum = Eintrittsdatum;
    this.Mitgliedsbeitrag = Mitgliedsbeitrag;
    }

    public String getMitglied(){
    this.OutputMitglied = "Eintrittsdatum: " + this.Eintrittsdatum + "\n";
    this.OutputMitglied += "Vorname: " + this.Vorname + "\n";
    this.OutputMitglied += "Mitgliedsbeitrag: " + this.Mitgliedsbeitrag + " EURO\n";
    return this.OutputMitglied;
    }
    }


    Così deve andare, spero :adhone: Ciao
    Se vuoi trovare l'arcobaleno, devi sopportare la pioggia

  7. #7
    dici che devo scrivere i valori direttamente in super()? :master: allora dov'é la comodità delle variabili?
    Visita il mio Sito Web: http://www.distefanogiuseppe.it

  8. #8
    Utente di HTML.it L'avatar di Angelo1974
    Registrato dal
    Feb 2003
    Messaggi
    1,107
    Allora se non vuoi scrivere le variabili devi fare:

    public Mitglied(int PersonalNummer, String Nachname, String Vorname, int Alter, double Gehalt, boolean MitgliedVerify,String Eintrittsdatum, double Mitgliedsbeitrag){

    super(PersonalNummer, Nachname,Vorname,Alter, Gehalt,MitgliedVerify);
    this.Eintrittsdatum = Eintrittsdatum;
    this.Mitgliedsbeitrag = Mitgliedsbeitrag;
    }
    .
    .
    .
    .
    .
    .

    Solo così utilizzerai la comodità delle variabili, se no il compilatore che ne a che valoti deve mettere le variabili della superclasse? E' vero che i linguaggi sono evoluti ma........
    Se vuoi trovare l'arcobaleno, devi sopportare la pioggia

  9. #9
    lo facevo più intelligente sto Java
    grazie, funziona benissimo :metallica
    Visita il mio Sito Web: http://www.distefanogiuseppe.it

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.