1 Block6, Aufgabe 1: Interfaces Implementieren Sie in der Klasse Person das Interface Testschnittstelle: //Datei Testschnittstelle.java interface Testschnittstelle { public void print (); } Die Methode print() soll die Werte aller Datenfelder eines Objektes ausgeben. Die Lösung ist: import java.io.*; class Person implements Testschnittstelle { private String name; private String vorname; Person() { try { byte[] eingabe = new byte [80]; System.out.print ("\nGeben Sie den Nachnamen ein: "); System.in.read (eingabe); name = new String (eingabe); eingabe = new byte[80]; System.out.print ("\nGeben Sie den Vornamen ein: "); System.in.read (eingabe); vorname = new String (eingabe); } catch (IOException e) { System.out.println ("Eingabefehler"); System.exit(1); } } public void print() { System.out.print ("\nNachname: "+name); System.out.print ("\nVorname: "+vorname); } } Verwenden Sie zum Testen die Klasse TestPerson: //Datei: TestPerson.java Lösungen Java-Kurs Block 6 – Interfaces 1 2 class TestPerson { public static void main (String args[]) { Person refPerson = new Person(); refPerson.print(); } } Block6, Aufgabe 2: Interfaces Die Lösung ist: //Datei TestGeraete.java class TestGeraete { public static void main (String[] args) { Laserdrucker l1 = new Laserdrucker(); Laserdrucker l2 = new Laserdrucker(); Faxgeraet f1 = new Faxgeraet(); Faxgeraet f2 = new Faxgeraet(); Kombigeraet k1 = new Kombigeraet(); Kombigeraet k2 = new Kombigeraet(); f1.senden ("Dies ist ein Test"); f2.senden ("Dies ist ein Test"); l1.drucken ("Dies ist ein Test"); l2.drucken ("Dies ist ein Test"); k1.senden ("Dies ist ein Test"); k2.senden ("Dies ist ein Test"); k1.drucken ("Dies ist ein Test"); k2.drucken ("Dies ist ein Test"); } } //Datei: Fax.java interface Fax { void senden (String sendeRef); } //Datei: Drucker.java interface Drucker { void drucken (String druckRef); } Lösungen Java-Kurs Block 6 – Interfaces 2 3 //Datei: Geraet.java abstract class Geraet { String geraeteId; } //Datei: Faxgeraet.java class Faxgeraet extends Geraet implements Fax { static int id = 0; Faxgeraet() { id++; geraeteId = "Fax"+id; } public void senden (String sendeRef) { System.out.println ("\nAbsender ist: " + geraeteId); System.out.println ("\nDas Senden wird simuliert"); System.out.println (sendeRef); } } //Datei: Laserdrucker.java class Laserdrucker extends Geraet implements Drucker { static int id = 0; Laserdrucker() { id++; geraeteId = "Laser"+id; } public void drucken (String druckRef) { System.out.println ("\nDrucker " + geraeteId + " meldet sich"); System.out.println ("\nEs wird gedruckt"); System.out.println (druckRef); } } //Datei: Kombigeraet.java class Kombigeraet extends Geraet implements Drucker, Fax { static int id = 0; Kombigeraet() { id++; geraeteId = "Kombigeraet"+id; Lösungen Java-Kurs Block 6 – Interfaces 3 4 } public void drucken (String druckRef) { System.out.println ("\nKombigeraet " + geraeteId + " meldet sich"); System.out.println ("\nEs wird gedruckt"); System.out.println (druckRef); } public void senden (String sendeRef) { System.out.println ("\nAbsender ist: " + geraeteId); System.out.println ("\nDas Senden wird simuliert"); System.out.println (sendeRef); } } Block6, Aufgabe 3: Vererbung, Interfaces Die Lösung ist: public interface Adressierbar { public void setEmpfaenger (String[] adresse); public String[] getEmpfaenger (); } public interface Versendbar extends Adressierbar { public void setAbsender (String[] absender); public String[] getAbsender (); public int getGewicht(); } public class Postamt { public void versende (Versendbar v) { System.out.print("Sendung wurde entgegengenommen "); System.out.println (" und wird jetzt versandt."); String[] abs = v.getAbsender(); String[] emp = v.getEmpfaenger(); System.out.print("Absender: "); for (int i=0; i<abs.length; i++) { System.out.print( abs[i] ); System.out.print("\t"); } Lösungen Java-Kurs Block 6 – Interfaces 4 5 System.out.print("\nEmpfaenger: "); for (int i=0; i<emp.length; i++) { System.out.print( emp[i] ); System.out.print("\t"); } } } public class Start { public static void main (String[] args) { int gewicht = 80; String[] an = {"Thomas Vollmer", "Flandernstrasse 101", "73730 Esslingen"}; String[] von = {"Bernhard Hirschmann", "Hoelderlinweg 161", "73728 Esslingen"}; Sendung brief = new Sendung(an, von, gewicht); Postamt post = new Postamt(); post.versende(brief); } } public class Sendung implements Versendbar { private String[] absender; private String[] empfaenger; private int gewicht; public Sendung(String[] emp, String[] abs, int gew) { empfaenger = emp; absender = abs; gewicht = gew; } public void setEmpfaenger(String[] adresse) { empfaenger = adresse; } public String[] getEmpfaenger() { return empfaenger; } public void setAbsender(String[] adresse) { absender = adresse; } Lösungen Java-Kurs Block 6 – Interfaces 5 6 public String[] getAbsender() { return absender; } public int getGewicht() { return gewicht; } public void setGewicht (int g) { gewicht = g; } } Lösungen Java-Kurs Block 6 – Interfaces 6