Tach :wink:
Also ich habe folgendes Problem:
Ich habe eine Vector-Liste aus Personen und eine Unterklasse von Person namens Student
In dieser Personenliste sind Studenten und Mitarbeiter drin. Nun möchte ich aber bevor ich der Personenliste einen Student hinzufüge schauen, ob dieser Student schonmal in der Liste vorhanden ist (anhand der Funktion getMatrikelnummer in der Student-Klasse)
Beim kompilieren spuckt es mir aber jedesmal folgenden Fehler:
cannot find symbol
method: getMatrikelnummer()
location: class Person
---> Mir ist klar, dass es die Funktion getMatrikelnummer in der Klasse Person nicht gibt, aber es gibt sie eben in der Unterklasse Student, wobei ich vorher schon abprüfe, ob diese Person auch ein Student ist.
Also was muss ich tun, damit java versteht, dass ich auf die Unterklasse zugreifen will?!
Bzw. wie kann man das anders machen (Muss aber eine Liste aus Personen bleiben)
Hier noch ein Stück Code:
Klasse Hochschule:
Klasse Student (in der Klasse Person gibt es nur vorname und nachname)
Vielen Dank für eure Hilfe :toll:
Also ich habe folgendes Problem:
Ich habe eine Vector-Liste aus Personen und eine Unterklasse von Person namens Student
In dieser Personenliste sind Studenten und Mitarbeiter drin. Nun möchte ich aber bevor ich der Personenliste einen Student hinzufüge schauen, ob dieser Student schonmal in der Liste vorhanden ist (anhand der Funktion getMatrikelnummer in der Student-Klasse)
Beim kompilieren spuckt es mir aber jedesmal folgenden Fehler:
cannot find symbol
method: getMatrikelnummer()
location: class Person
---> Mir ist klar, dass es die Funktion getMatrikelnummer in der Klasse Person nicht gibt, aber es gibt sie eben in der Unterklasse Student, wobei ich vorher schon abprüfe, ob diese Person auch ein Student ist.
Also was muss ich tun, damit java versteht, dass ich auf die Unterklasse zugreifen will?!
Bzw. wie kann man das anders machen (Muss aber eine Liste aus Personen bleiben)
Hier noch ein Stück Code:
Klasse Hochschule:
Code:
public class Hochschule{
...
Vector<Person> liste = new Vector<Person>();
...
public void addPerson(Person p){
boolean studexist=false;
if (p instanceof Student){
for(Person per : liste){
if(per instanceof Student){
if(p.getMatrikelnummer()==per.getMatrikelnummer()){ //<-Hier ist der Fehler
System.out.println("Schon vorhanden");
studexist=true;
}
}
if (studexist=false) liste.add(p);
studexist=false;
}
}
...
public static void main(String args[]){
Hochschule a = new Hochschule();
Student s1 = new Student("Harry","Hirsch",24727, 2);
a.addPerson(s1);
}
Klasse Student (in der Klasse Person gibt es nur vorname und nachname)
Code:
public class Student extends Person{
private int matrikelnummer, anfangssemester;
public Student(String vorname, String nachname, int matrikelnummer, int anfangssemester) {
super(vorname, nachname);
this.matrikelnummer = matrikelnummer;
this.anfangssemester = anfangssemester;
}
public int getSemester(int aktuellesSemester) {
return aktuellesSemester-anfangssemester+1;
}
public int getMatrikelnummer() {
return matrikelnummer;
}
}
Vielen Dank für eure Hilfe :toll: