Hochschule Darmstadt Praktikum am 11. Juni 2008 Vererbung Prof. Dr. Bernhard Humm Version: Datum: Hochschule Darmstadt Fachbereich Informatik Schöfferstr. 8b 64295 Darmstadt 1.0 30.5.2008 Einführung in die Programmierung (W) In diesem Praktikum wird die Bibliotheksanwendung aus den letzten Praktika erweitert. Nehmen Sie dazu als Basis Ihre Implementierung. Hier ist die Übersicht über alle Erweiterungen. Gehen Sie bitte schrittweise nach den Aufgaben vor. class Library SS2007 Loan LibraryApplication + + LibraryApplication() main() : void - borrowedBook: Book borrower: Person loanDate: java.util.Date + + + + + + + + + borrowBook(Person, Book) : Loan getBorrowedBook() : Book getBorrower() : Person getLoanDate() : java.util.Date Loan(Person, Book, java.util.Date) setBorrowedBook(Book) : void setBorrower(Person) : void setLoanDate(java.util.Date) : void toString() : String -borrowedBook -borrower Book Person ~ ~ address: String allPersons: java.util.ArrayList<Person> = new java.util.A... name: String registrationNumber: String + + + + + + + + getAddress() : String getAllPersons() : java.util.ArrayList<Person> getName() : String getRegistrationNumber() : String Person(String, String, String) setAddress(String) : void setName(String) : void toString() : String Student - author: String bookNumber: String title: String + + + + + + + Book(String, String, String) getAuthor() : String getBookNumber() : String getT itle() : String setAuthor(String) : void setTitle(String) : void toString() : String Professor - course: String - department: String + + + + getCourse() : String setCourse(String) : void Student(String, String, String, String) toString() : String + + + + getDepartment() : String Professor(String, String, String, String) setDepartment(String) : void toString() : String Seite 1 Einführung in die Programmierung (W) 1 Klasse Professor • Implementieren Sie die Klasse Professor extends Person, initial leer • Implementieren Sie eine Instanzvariable String department • Programmieren Sie die get-Methode • Programmieren Sie einen Konstruktor public Professor(String givenRegistrationNumber, String givenName, String givenAddress, String givenDeparment), der die entsprechenden Instanzvariablen setzt Tipp: verwenden Sie den super Konstruktor • Testen Sie den Konstruktor in LibraryApplication.main 2 Klasse Student • Implementieren Sie die Klasse Student extends Person, initial leer • Implementieren Sie eine Instanzvariable String course • Programmieren Sie die get-Methode • Programmieren Sie einen Konstruktor public Student(String givenRegistrationNumber, String givenName, String givenAddress, String givenCourse), der die entsprechenden Instanzvariablen setzt Tipp: verwenden Sie den super Konstruktor • Testen Sie den Konstruktor in LibraryApplication.main 3 Professor.toString • Implementieren Sie die Instanzmethode public String toString() der Klasse Professor. Sie soll einen String der folgenden Form zurückgeben: Person #<registrationNumber> : <name> (Professor <department>) Beispiel: Person #003 : Humm (Professor fbi) • Tipps: Fügen Sie in der toString-Methode von Person den String “Person “ hinzu. Seite 2 Einführung in die Programmierung (W) Verwenden Sie die Implementierung von Person.toString durch Aufruf von super.toString() • 4 Testen Sie die Methode in LibraryApplication.main. Student.toString • Implementieren Sie die Instanzmethode public String toString() der Klasse Student. Sie soll einen String der folgenden Form zurückgeben: Person #<registrationNumber> : <name> (Student <course>) Beispiel: Person #004 : Fengel (Student MSc fbw) • Tipp: Verwenden Sie die Implementierung von Person.toString durch Aufruf von super.toString() • 5 Testen Sie die Methode in LibraryApplication.main. Test Polymorphie • Deklarieren Sie in LibraryApplication.main drei Variablen person1, person2 und person3 vom Typ Person. • Instanziieren Sie person1 als Person • Instanziieren Sie person2 als Professor • Instanziieren Sie person3 als Student • Geben Sie person1.toString(), person2.toString() und person3.toString() auf die Konsole aus. Was beobachten Sie? Seite 3