Vererbung - Cannot Find Symbol constructor...

Momolino

Mitglied
Hi zusammen,

ich erstelle jetzt doch mal ein Thema, weil ich den Fehler einfach nicht finde. Ich habe auch hier schon gesucht, aber nicht gefunden. 🙁

Ich habe eine Basisklasse Person und will von dieser eine Klasse Student ableiten. Ist mir auch alles klar, bin kein kompletter Neuling, allerdings beiße ich bei folgendem Fehler auf Granit! :bahnhof:

cannot find symbol
symbol : constructor StudentSetGetNew(int,<nulltype>)
location: class StudentSetGetNew


Ich habe schon zig mal alles durch geschaut, die Dateien neu angelegt... Der Fehler geht einfach nicht weg.
Ich bin mir sicher ihr findet ihn!

Java:
public class Person {
    
    private String name; 
    
    public Person (String name){
        
        setName(name); 
        
    }
    
    public Person ()
    {
    }
    
    public void drucke() {
        
        System.out.format("Name der Person: %s\n" , name);
        //System.out.println("Name der Person: " + name);
        
    }
    
    public boolean setName(String name){
        
        boolean ok;
        
        if(isKorrekterName(name)){
            this.name = name;
            ok = true;
        }
           else {
               
               System.out.format("Name &s\n ist falsch.", name);
                   ok = false;
           }
           
           return ok; 
           }
    
    public String getName(){
        
        return name; 
    }
    
    // Methode zum pr¸fen, ob Name null, also leer ist
    public boolean isKorrekterName(String name){
        
        if(name == null){
            return false;
        }
        else {
            return true; 
        }
    } 
    }

Java:
public class StudentSetGetNew extends Person {
    
    private int matrikelnummer;
    
    public StudentSetGetNew()
    {
    }
    
    
    public StudentSetGetNew(String name, int matrikelnummer) 
    {
        super(name);
        setMatrikelnummer(matrikelnummer);
    }
    
    // Konstruktor, der über this auf sein eigenes Objekt zeigt
    public StudentSetGetNew (int matrikelnummer) {
        
        this(matrikelnummer, null);
    } 
    
    // Konstruktor, der per super() den Konstruktur der Basisklasse aufruft
    public StudentSetGetNew(String name, int matrikelnummer) 
    {
        super(name);
        setMatrikelnummer(matrikelnummer);
    }
    
    // drucke() zum ausgeben von Matrikelnummer und Name
    public void drucke() {
        
        super.drucke();
    }
    
    // Set und Get Methoden zum setzen und abrufen von Matrikelnummer und Name. If pr¸ft, ob Matr. Nr. kleiner 0
    public boolean setMatrikelnummer(int matrikelnummer){
        boolean ok = true;
        if(matrikelnummer < 0){
            System.out.format("Matri. Nummer nicht g¸ltig! \n"); 
        }
        else {
            this.matrikelnummer = matrikelnummer;
        }
        
    }
    public int getMatrikelnummer(){
        return matrikelnummer; 
    }
}

LG
Moritz
 
Java:
public class StudentSetGetNew extends Person {  
    public StudentSetGetNew(String name, int matrikelnummer) 
    {
        super(name);
        setMatrikelnummer(matrikelnummer);
    }
    
    // Konstruktor, der über this auf sein eigenes Objekt zeigt
    public StudentSetGetNew (int matrikelnummer) {
        this(matrikelnummer, null);
    }

Schau dir diese beiden Konstruktoren genau an und überlege dir ob die Parameter stimmen!? 😉

Die Fehlermeldung sagt dir auch genau: "Es kann kein Konstruktor gefunden werden, welcher folgende Parameter erwartet: <int>, <nullable Type>".
Die Reihenfolge von Parameter muss beachtet werden!
 
Zuletzt bearbeitet:
Oh man, ja stimmt... Hab es geändert, Fehler ist weg.

Allerdings habe ich nun zwei andere...

cannot find symbol
symbol: class Person


und

cannot find symbol
symbol : variable super
location: class StudentSetGetNew



EDIT: Sry, vergessen.

Java:
public class StudentSetGetNew extends Person {
    
    private int matrikelnummer;
    
    // Default-Konstruktor
    public StudentSetGetNew()
    {
    }
    
    // Konstruktor, der über this auf sein eigenes Objekt zeigt
    public StudentSetGetNew (int matrikelnummer) {
        
        this(matrikelnummer, null);
    } 
    
    // Konstruktor, der per super() den Konstruktur der Basisklasse aufruft
    public StudentSetGetNew(int matrikelnummer, String name) 
    {
        super(name);
        setMatrikelnummer(matrikelnummer);
    }
    
    // drucke() zum ausgeben von Matrikelnummer und Name
    public void drucke() {
        
       super.drucke();
    }
    
    // Set und Get Methoden zum setzen und abrufen von Matrikelnummer und Name. If pr¸ft, ob Matr. Nr. kleiner 0
    public boolean setMatrikelnummer(int matrikelnummer){
        boolean ok = true;
        if(matrikelnummer < 0){
            System.out.format("Matri. Nummer nicht g¸ltig! \n"); 
        }
        else {
            this.matrikelnummer = matrikelnummer;
        }
        
    }
    public int getMatrikelnummer(){
        return matrikelnummer; 
    }
}
 
Zuletzt bearbeitet:
Es waren anscheinend noch temporäre Dateien in dem Ordner. Die habe ich nun gelöscht und zack, läuft...
Verstehe nur nicht ganz, was das damit zu tun hat.

Danke für die Hilfe!
 

Neue Themen


Zurück
Oben