Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

W. Küchlin, A. Weber: Einführung in die Informatik – objektorientiert mit Java -1- Springer-Verlag, ISBN 3-540-20958-1 Höhere objektorientierte Konzepte.

Ähnliche Präsentationen


Präsentation zum Thema: "W. Küchlin, A. Weber: Einführung in die Informatik – objektorientiert mit Java -1- Springer-Verlag, ISBN 3-540-20958-1 Höhere objektorientierte Konzepte."—  Präsentation transkript:

1 W. Küchlin, A. Weber: Einführung in die Informatik – objektorientiert mit Java -1- Springer-Verlag, ISBN Höhere objektorientierte Konzepte Zusammenfassung des Kapitels 8 Küchlin, Weber, Einführung in die Informatik, 3.Auflage Marc-Oliver Pahl,

2 W. Küchlin, A. Weber: Einführung in die Informatik – objektorientiert mit Java -2- Springer-Verlag, ISBN Vererbung Id private static int counter private int myId public Id() public int getId() Label private String name public String getName() public class Id { private static int counter = 1; private int myId; public Id(){ myId = counter++; } public int getId(){ return myId; } } public class Label extends Id { private String name; public Label() { // super(); // -> Id(); implizit! name = "unknown"; } public Label(String val) { name = val; } public String getName(){ return name; }

3 W. Küchlin, A. Weber: Einführung in die Informatik – objektorientiert mit Java -3- Springer-Verlag, ISBN Vererbung Id private static int counter private int myId public Id() public int getId() Label private String name public String getName() public class Main { public static void main(String[] args) { Label myLabel = new Label("as2004"); System.out.println( Das Gerät + myLabel.getName() + hat die Id+ myLabel.getId()); } Die Methoden der Klasse Id, von der geerbt wird, sind in Label auch automatisch vorhan- den!

4 W. Küchlin, A. Weber: Einführung in die Informatik – objektorientiert mit Java -4- Springer-Verlag, ISBN Vererbung/ Sichtbarkeit Id private static int counter private int myId public Id() public int getId() Label private String name public String getName() public class Id {... private int myId;... } public class Label extends Id {... public Label(String val) { name = val; super.myId = 0; //hier: myId = 0; }... } geht NICHT, da das Feld private ist!

5 W. Küchlin, A. Weber: Einführung in die Informatik – objektorientiert mit Java -5- Springer-Verlag, ISBN Vererbung/ Sichtbarkeit Id private static int counter protected int myId public Id() public int getId() Label private String name public String getName() public class Id {... private int myId;... } public class Label extends Id {... public Label(String val) { super(); name = val; super.myId = 0; //hier: myId = 0; }... } geht, da das Feld protected ist!

6 W. Küchlin, A. Weber: Einführung in die Informatik – objektorientiert mit Java -6- Springer-Verlag, ISBN Vererbung/ Sichtbarkeit Id private static int counter protected int myId public Id() public int getId() Label private String name private int myId public String getName() public class Id {... private int myId;... } public class Label extends Id {... public Label(String val) { super(); name = val; super.myId = 0; // NICHT = myId = 0; myId = 23; }... }

7 W. Küchlin, A. Weber: Einführung in die Informatik – objektorientiert mit Java -7- Springer-Verlag, ISBN virtuelle Funktionen/ Überschreiben public class Parent { public void method(){ System.out.println("Methode des Parent."); } public class Child extends Parent { public void method(){ System.out.println("Methode des Child."); } public class Main { public static void main(String[] args) { Parent eins = new Parent(); Parent zwei = new Child(); eins.method(); zwei.method(); }

8 W. Küchlin, A. Weber: Einführung in die Informatik – objektorientiert mit Java -8- Springer-Verlag, ISBN virtuelle Funktionen/ Überschreiben/ final public class Parent { public final void method(){ System.out.println("Methode des Parent."); } public class Child extends Parent { public void method(){ System.out.println("Methode des Child."); } public class Main { public static void main(String[] args) { Parent eins = new Parent(); Parent zwei = new Child(); eins.method(); zwei.method(); }

9 W. Küchlin, A. Weber: Einführung in die Informatik – objektorientiert mit Java -9- Springer-Verlag, ISBN ADT/ Interfaces/ Selektoren Kundenklasse Schnittstelle/ Interface interne Repräsentation/ Implementierung public class Main { public static void main(String[] args){ ZahlenSpeicher z1 = new ZahlenSpeicher1(); ZahlenSpeicher z2 = new ZahlenSpeicher2(); z1.setValue(7); z2.setValue(8); System.out.println("z1+z2= " +(z1.getValue()+z2.getValue())); }} public interface ZahlenSpeicher { public int getValue(); public void setValue(int val);} public class ZahlenSpeicher1 implements ZahlenSpeicher { private int theValue = 0; public int getValue(){ return theValue; } public void setValue(int val){ theValue = val; } } public class ZahlenSpeicher2 implements ZahlenSpeicher { private String theValue; public int getValue(){ return Integer.parseInt(theValue); } public void setValue(int val){ theValue = Integer.toString(val); } }

10 W. Küchlin, A. Weber: Einführung in die Informatik – objektorientiert mit Java -10- Springer-Verlag, ISBN generisches Programmieren Stichwort: Muster –in C++ –in Java template class Node{ private: T data; Node* next; public: T getData();... } public static void inc(ZahlenSpeicher z){ z.setValue(z.getValue()+1); } Funktioniert generisch für alle beliebigen Implementierungen des Interface ZahlenSpeicher


Herunterladen ppt "W. Küchlin, A. Weber: Einführung in die Informatik – objektorientiert mit Java -1- Springer-Verlag, ISBN 3-540-20958-1 Höhere objektorientierte Konzepte."

Ähnliche Präsentationen


Google-Anzeigen