Lesen Sie zuerst die Hinweise auf der folgenden Seite! Musterlösung. Klausurort: Aufgabe Summe
|
|
- Alexandra Buchholz
- vor 6 Jahren
- Abrufe
Transkript
1 (Name, Vorname) (Straße, Nr.) (PLZ) (Wohnort) (Land, falls außerhalb Deutschlands) Kurs 1618 SS 2009 Einführung in die objektorientierte Programmierung Klausur am Dauer: 3 Std., Uhr Lesen Sie zuerst die Hinweise auf der folgenden Seite! Matrikelnummer: Geburtsdatum:.. Klausurort: Aufgabe Summe habe bearbeitet maximal erreicht Korrektur Herzlichen Glückwunsch, Sie haben die Klausur bestanden. Note:... Sie haben die Klausur leider nicht bestanden. Für den nächsten Versuch wünschen wir Ihnen viel Erfolg. Die nächste Klausur findet im Wintersemester 2009/2010 statt. Hagen, den Im Auftrag 2009 FernUniversität in Hagen
2 Hinweise zur Bearbeitung 1. Prüfen Sie die Vollständigkeit Ihrer Unterlagen. Die Klausur umfasst 1 Deckblatt Diese Hinweise zur Bearbeitung 10 Aufgaben auf Seite Füllen Sie jetzt bitte zuerst das Deckblatt aus: Name, Vorname und Adresse, Matrikelnummer, Geburtsdatum und Klausurort. 3. Schreiben Sie Ihre Lösungen mit Kugelschreiber oder Füllfederhalter (kein Bleistift) direkt in den bei den jeweiligen Aufgaben gegebenen, umrahmten Leerraum. Benutzen Sie in keinem Fall die Rückseiten der Aufgabenblätter. Versuchen Sie, mit dem vorhandenen Platz auszukommen, sie dürfen auch stichwortartig antworten. Für den Notfall können Sie gekennzeichnetes Papier bei der Klausuraufsicht bekommen. Es werden nur Aufgaben gewertet, die sich auf dem offiziellen Klausurpapier (Klausur + gekennzeichnetes Papier) befinden. Eigenes Papier ist nur für Ihre persönlichen Notizen erlaubt und von der Benotung ausgeschlossen. 4. Kreuzen Sie die bearbeiteten Aufgaben auf dem Deckblatt an. Schreiben Sie unbedingt auf jedes Blatt Ihrer Lösungen Ihren Namen und Ihre Matrikelnummer, auf eventuelle Zusatzblätter auch die Nummer der Aufgabe. 5. Geben Sie die gesamte Klausur und, falls vorhanden, gekennzeichnete Zusatzblätter ab. Lösen Sie die Blätter nicht voneinander. 6. Es sind keine Hilfsmittel zugelassen. 7. Lesen Sie vor der Bearbeitung einer Aufgabe den gesamten Aufgabentext sorgfältig durch. 8. Es sind maximal 100 Punkte erreichbar. Wenn Sie mindestens 40 Punkte erreichen, haben Sie die Klausur bestanden. 9. Sie erhalten die korrigierte Klausur zurück zusammen mit einer Bescheinigung für das Finanzamt und ggf. dem Übungsschein. 10. Legen Sie jetzt noch Ihren Studentenausweis und einen amtlichen Lichtbildausweis bereit, dann kann die Arbeit beginnen. Viel Erfolg! Seite 2 von 17
3 Aufgabe 1: Begriffe der Objektorientierung Gegeben sei folgendes Programmfragment. 01 public class Foo { Object a; 04 static boolean bar = true; { a = 2; Object m() { 09 return new String(); static { bar = false; public Foo(){ 15 a = 6; void m(foo foo) { 19 a = new Object(); void m(string s) { 23 a = s; Zählen Sie auf: Alle Konstanten: Alle lokale Variablen: Alle Objektattribute: Alle Klassenattribute: Alle Konstruktoren: Alle Objektmethoden: Alle Klassenmethoden: Alle Initialisierungsblöcke: Alle Überladungen: Jedes Subtyping: 2, 6, true, false Methodenparameter: Foo foo und String s Object a static boolean bar public Foo() { Alle drei Methoden mit Bezeichner m keine vorhanden { a = 2; und static { bar = false; Die Methode m ist überladen Zeilen 6 und 15 (Integer auf Object) und Zeilen 9 und 23 (String auf Object) Seite 3 von 17
4 Aufgabe 2: Ausnahmebehandlung Es soll eine Klasse in Java implementiert werden, welche einen Bruch repräsentiert. Damit es bei einer Division durch 0 zu keinem Fehler kommen kann, soll schon beim Setzen des Nenners gegebenenfalls eine Ausnahme in Form einer NennerIstNullException ausgelöst werden, wenn dieser 0 werden würde. Ergänzen Sie das folgende Programm an den vorgesehenen Stellen um solch eine Ausnahmebehandlung. class Bruch{ private int zaehler; private int nenner; public void setzaehler(int zaehler){ this.zaehler = zaehler; public void setnenner(int nenner) throws NennerIstNullException { (1 Punkt) if(nenner == 0 ) throw new NennerIstNullException(); (3 Punkte) this.nenner = nenner; public double todouble(){ return zaehler / nenner; class NennerIstNullException extends Exception (2 Punkte) { public class Test { public static void main(string[] args){ Bruch bruch = new Bruch(); bruch.setzaehler(2); try { (1 Punkt) bruch.setnenner(3); catch (NennerIstNullException e) { // Dieser Fall kann bei setnenner(3) nicht eintreten (3 Punkte) System.out.println(bruch.toDouble()); Seite 4 von 17
5 Aufgabe 3: Abstakte Klassen, Typen, Sichtbarkeit Zu folgendem Programmfragment meldet der Java-Compiler fünf Compilerfehler. public abstract class SuperTest { protected Object o = n("42"); abstract void m(); private String n(string s) { return s; class Test extends SuperTest { abstract void k(); void l(){ n("abc"); String s = o; main(null); public static void main(string[] args){ System.out.println(o);; Finden und begründen Sie die 5 Compilerfehler anhand der Hinweise: Compilerfehler im Zusammenhang mit dem Erben von abstrakten Klassen: Compilerfehler im Zusammenhang mit der Deklaration abstrakter Methoden: Compilerfehler zu Sichtbarkeiten: Test muss die abstrakte Methode m() aus SuperTest implementieren. Die nicht abstrakte Klasse Test darf keine abstrakte Methode k() deklarieren. n() aus SuperTest ist in Test nicht sichtbar. Compilerfehler im Zusammenhang mit Subtyping: String s = o : Einer mit String typisierten Variable darf keine mit Object typisierte Variable zugewiesen werden. Compilerfehler im Zusammenhang mit statischen Deklarationen: Aus einem statischen Kontext (der main-methode) kann nicht auf ein Objektattribut (o) zugegriffen werden. (jeweils 2 Punkte) Seite 5 von 17
6 Aufgabe 4: Aufzählungstypen Die Zustände einer Ampel (Lichtzeichenanlage) sollen in Java als Aufzählungstyp implementiert werden. Geben Sie eine Implementierung eines Typs Ampelzustand an, welche die Zustände ROT, ROT- GELB, GRUEN und GELB annehmen kann. public enum Ampelzustand { ROT, ROTGELB, GRUEN, GELB; (2 Punkte) Geben Sie eine Methode darffahren() an, die innerhalb von Ampelzustand implementiert genau dann true zurückgibt, wenn der Ampelzustand GRUEN oder GELB ist. public boolean darffahren(){ if(this == GRUEN this == GELB){ return true; else { return false; (3 Punkte) Geben Sie eine Methode kommtvor(ampelzustand nachfolgezustand) an, die, innerhalb von Ampelzustand implementiert, genau dann true zurückgibt, wenn der Parameter nachfolgezustand im Sinne der deutschen Straßenverkehrsordnung dem Zustand des Aufrufobjekts folgt. public boolean kommtvor(ampelzustand nachfolgezustand){ switch (this) { case ROT: return (nachfolgezustand == Ampelzustand.ROTGELB); case ROTGELB: return (nachfolgezustand == Ampelzustand.GRUEN); case GRUEN: return (nachfolgezustand == Ampelzustand.GELB); default: return (nachfolgezustand == Ampelzustand.ROT); (5 Punkte) Seite 6 von 17
7 Aufgabe 5: Überschreiben und Überladen Gegeben sei folgendes Java-Programm: public class Fuhrpark { public static void main(string[] args) { Auto auto = new Cabrio(); Boot boot1 = new Boot(); Boot boot2 = new Segelboot(); Motorboot motorboot = new Motorboot(); Cabrio cabrio = new Cabrio(); Super sup1 = new Super(); Super sup2 = new Sub(); sup1.m(motorboot, boot2); sup2.m(boot1, cabrio); sup1.m(boot1, cabrio); sup1.m(boot2, auto); sup2.m(boot1, auto); class Super { public void m(fahrzeug t1, Fahrzeug t2) { System.out.println("1"); public void m(fahrzeug t, Auto f) { System.out.println("2"); class Sub extends Super { public void m(fahrzeug t1, Auto t2) { System.out.println("3"); public void m(boot v, Auto f) { System.out.println("4"); class Fahrzeug { class Auto extends Fahrzeug { class Cabrio extends Auto { class Boot extends Fahrzeug { class Motorboot extends Boot { class Segelboot extends Boot { (Fortsetzung der Aufgabe auf folgender Seite) Seite 7 von 17
8 Begründen Sie, warum folgende Anweisungen zu welcher Ausgabe führen: Lehrgebiet Programmiersysteme (Fortsetzung von Aufgabe 5) sup1.m(motorboot, boot2); Ausgabe: 1 Begründung: Von beiden überladenen Methoden m in Super ist 1 die einzige mit überhaupt passender Signatur. sup2.m(boot1, cabrio); Ausgabe: 3 Begründung: Von beiden überladenen Methoden m in Super ist 2 die speziellere, weswegen der Compiler an diese bindet. Zur Laufzeit wird dann aber 2 von 3 überschrieben. sup1.m(boot1, cabrio); Ausgabe: 2 Begründung: Von beiden überladenen Methoden m in Super ist 2 die speziellere, weswegen der Compiler an diese bindet. Da auch der Laufzeittyp von sup1 Super ist, wird 2 ausgegeben. sup1.m(boot2, auto); Ausgabe: 2 Begründung: Von beiden überladenen Methoden m in Super ist 2 die speziellere, weswegen der Compiler an diese bindet. Da auch der Laufzeittyp von sup1 Super ist, wird 2 ausgegeben. sup2.m(boot1, auto); Ausgabe: 3 Begründung: Von beiden überladenen Methoden m in Super ist 2 die speziellere, weswegen der Compiler an diese bindet. Diese wird in Sub von der Methode 3 (nicht der Methode 4!) überschrieben, weswegen die Ausgabe 3 lautet. (jeweils 2 Punkte; ohne Begründung keine Punkte) Seite 8 von 17
9 Aufgabe 6: Objektorientierte Denkweise Die Programmiererin Daniela K. möchte ein objektorientiertes Programm für ein Motorrad schreiben. Sie beginnt mit folgendem Programmfragment: public class Motorrad { private boolean motorlaeuft; public void start() { motorlaeuft = true; public static void main(string[] args) { start(); Der Compiler meldet ihr: "Cannot make a static reference to the non-static method start() from the type Motorrad". So kommt sie auf die Idee, die Methode start als static zu deklarieren. Warum ist das falsch? Das Attribut motorlaeuft darf nicht static sein, sonst wäre es ein gemeinsames Attribut aller Motorräder, d.h. die Motorräder wären alle gleichzeitig entweder an oder aus, was man natürlich nicht haben will. Und damit darf auch die Methode start() nicht static sein, denn eine statische Methode wird nicht auf einem Exemplar aufgerufen (hat keinen impliziten Parameter), sie kennt überhaupt keine Exemplare. (5 Punkte) (Fortsetzung der Aufgabe auf folgender Seite) Seite 9 von 17
10 (Fortsetzung von Aufgabe 6) Wie könnte man den Fehler im Programm beheben? Geben Sie eine neue Implementierung der Main- Methode an. public class Motorrad { private boolean motorlaeuft; public void start() { motorlaeuft = true; public static void main(string[] args) { Motorrad m = new Motorrad(); m.start(); (5 Punkte) Erläuterung zur : Einer der Grundgedanken objektorientierter Programmierung ist es, Daten und die auf ihnen möglichen Operationen in einer Struktur zusammenzufassen, einem Objekt. Man kann dem Objekt Nachrichten senden (Methoden aufrufen) und dann tut es etwas, typischerweise verändert es seinen Zustand, welcher durch seine Attribute repräsentiert wird. Wenn jemand auf den Starterknopf seines Motorrads drückt, sendet er durch den Knopfdruck eine Nachricht an ein ganz bestimmtes Motorrad und dieses eine Motorrad reagiert darauf. Dem entspricht in einer ganz primitiven Simulation der Aufruf einer Methode start() auf einem Motorrad-Exemplar, welches daraufhin ein boolsches Attribut motorlaeuft von false auf true setzt. Kurz gesagt: Wenn man ein Motorrad starten will, braucht man auch ein Motorrad, also ein Exemplar. Und damit sieht der Code für das Motorrad sinnvollerweise etwa so wie oben vorgestellt aus. Seite 10 von 17
11 Aufgabe 7: Dynamisches Binden Dynamisches Binden bei Methodenaufrufen bezeichnet den Vorgang, durch den einem im Quellcode stehenden Methodenaufruf die Methode zugeordnet wird, welche dann tatsächlich ausgeführt wird. Dieser Vorgang erfolgt bei Java in zwei Stufen. Was erfolgt in der ersten Stufe durch den Compiler? Durch den Compiler erfolgt die Auflösung von Überladung nach dem Most-Specific-Algorithmus. Dabei werden nur die Deklarationstypen (statischen Typen) des Empfängers des Methodenaufrufs sowie der Parameter berücksichtigt. Das Ergebnis dieses Vorgangs ist der Aufruf einer bestimmten Methode, der durch den Compiler in den Bytecode geschrieben wird. (3 Punkte) Was geschieht zur Laufzeit? Die Laufzeitumgebung ( Virtual Machine, VM) ermittelt den tatsächlichen Typ (dynamischer Typ) des Objekts, an das sich der Methodenaufruf richtete. Das kann ein beliebiger Subtyp des Deklarationstyps sein und in diesem Typ könnte die betreffende Methode überschrieben worden sein. In der dem dynamischen Typ entsprechenden Klasse sucht die VM dann nach einer Methode, deren Signatur genau dem Methodenaufruf aus dem Bytecode entspricht. Findet sie diese Methode dort nicht, schaut sie in der Superklasse nach, ggf. in deren Superklasse und so weiter. Dass sich die Methode finden muss, ist klar, sonst hätte der Compiler den entsprechenden Methodenaufruf gar nicht erst zugelassen. (3 Punkte) (Fortsetzung der Aufgabe auf folgender Seite) Seite 11 von 17
12 (Fortsetzung von Aufgabe 7) Gegeben ist der folgende Programmtext: public class Test { public static void main(string[] args) { Super sup = new Sub(); System.out.println(sup.a); System.out.println(sup.m()); class Super { String a = "Super-Attribut"; String m() { return "Super-Methode"; class Sub extends Super { String a = "Sub-Attribut"; String m() { return "Sub-Methode"; Wie lautet die Ausgabe des Programms? Begründen Sie Ihre Lösung! Die Ausgabe dieses Programms lautet: Super-Attribut Sub-Methode Denn: Beim statischen Binden bei Attributen in Java spielt nur der Deklarationstyp des Ausdrucks, über den die Attributselektion erfolgt, eine Rolle. Der Deklarationstyp der Variablen sup ist Super, also wird die Variable a des Typs Super an die Attributselektion gebunden. Bei der Bindung der Methode durch die VM wird der Laufzeittyp (= dynamischer Typ) des von sup referenzierten Objekts berücksichtigt. Dies ist der Typ Sub. Da die Methode m() aus Super in Sub überschrieben wurde, wird die Methode m() von Sub ausgeführt ( dynamisches Binden ). (4 Punkte, nur soweit Begründung gegeben) Seite 12 von 17
13 Aufgabe 8: Foreach und generische Typen Bitte ergänzen Sie das folgende Programm durch geeignete Schleifen: public class Test { public static void main(string[] args) { // Array-Initialisierung mit klassischer for-schleife // Jedem Element des Feldes soll der String "Wert" zugewiesen werden String[] array = new String[3]; for (int i = 0; i < array.length; i++) { array[i] = "Wert"; (3 Punkte) // Iteration über den Array mit foreach-schleife: // Geben Sie innerhalb der Schleife die Elemente des // Arrays mit System.out.println aus for (String element : array) { System.out.println(element); (2 Punkte) // Initialisierung einer LinkedList mit den Elementen // des Arrays mit Hilfe einer foreach-schleife LinkedList<String> list = new LinkedList<String>(); for (String element : array) { list.add(element); (3 Punkte) // Iteration über die LinkedList mit foreach-schleife // Geben Sie innerhalb der Schleife die Elemente des // Arrays mit System.out.println aus for (String element : list) { System.out.println(element); (2 Punkte) Seite 13 von 17
14 Aufgabe 9: Threads Gegeben sei folgendes Java-Programm: public class Threads { public static void main(string[] args){ Lager lager = new Lager(); Arbeiter t1= new Arbeiter(lager); Arbeiter t2= new Arbeiter(lager); t1.start(); t2.start(); class Lager { private int auslagergenommen = 0; public void nimmauslager() { int tmp = auslagergenommen; auslagergenommen = tmp + 1; class Arbeiter extends Thread { private Lager lager; public Arbeiter(Lager lager){ this.lager = lager; public void run() { for(int i=0; i<10;i++){ lager.nimmauslager(); (Fortsetzung der Aufgabe auf folgender Seite) Seite 14 von 17
15 (Fortsetzung von Aufgabe 9) Die Klasse Arbeiter erbt hier von Thread und erhält dadurch die Möglichkeit, von der Virtuellen Maschine in einem eigenen Thread ausgeführt zu werden. Wie aber ist zu verfahren, wenn Arbeiter von einer anderen Klasse (z.b. einer importierten Klasse Person) erben soll, aber trotzdem die Möglichkeit erhalten bleiben soll, einen Arbeiter als eigenen Thread auszuführen? Welche Änderungen ergeben sich dadurch innerhalb der main-methode? Anstatt von Thread zu erben, kann Arbeiter auch das Interface Runnable implementieren. Dann verändern sich die Initialisierungen von t1 und t2 in der main-methode wie folgt: Thread t1= new Thread(new Arbeiter(lager)); Thread t2= new Thread(new Arbeiter(lager)); (4 Punkte) Das Feld auslagergenommen soll nach Programmende angeben, wie oft die Methode nimmauslager aufgerufen wurde. Erklären Sie, warum dies in obigem Programm nicht zwangsläufig der Fall ist. Es kann passieren, dass beide Arbeiter-Threads gleichzeitig die Methode nimmauslager abarbeiten. Wenn beide Threads kurz nacheinander den Wert n aus dem Feld auslagergenommen auslesen und anschließend beide in das Feld auslagergenommen den Wert n+1 zurück schreiben, wurde auslagergenommen insgesamt um nur 1 erhöht, obwohl die Methode nimmaus- Lager zweimal aufgerufen wurde. (4 Punkte) Geben Sie eine Lösung für das in der vorherigen Teilaufgabe beschriebene Problem an: Durch Hinzufügen des Schlüsselwortes synchronized zur Methodensignatur von nimmauslager wird sichergestellt, dass nur ein Thread gleichzeitig diese Methode ausführen kann. (2 Punkte) Seite 15 von 17
16 Aufgabe 10: Verteilte Systeme Was wird im Kurs 1618 unter einem Verteilten System verstanden? Kriterien verteilter Systeme: Eine Menge von lose gekoppelten Prozessen d.h. von Prozessen, die unabhängig voneinander Berechnungen ausführen und miteinander kommunizieren können. Jeder Prozess arbeitet dabei ein eigenes Programm in einem eigenen Adressraum ab. Insbesondere arbeiten die Prozesse im Allgemeinen parallel. Typischerweise sind verteilte Systeme räumlich, d.h. auf mehrere Rechner verteilt. (2 Punkte) Sockets bilden eine Abstraktionsschicht zur Kommunikation zwischen verteilten Prozessen, die den Programmierer von einigen nicht trivialen Tätigkeiten befreit. Welche Tätigkeiten sind das? Zerteilen der Daten Einpacken der Daten in Pakete mit Adressinformation, Verwaltungsinformation und Paketinhalt Auspacken der eintreffenden Pakete Reihenfolge der eintreffenden Pakete sicherstellen fehlende Pakete nachfordern Pakete am Zielort wieder zusammensetzen. (3 Punkte) (Fortsetzung der Aufgabe auf folgender Seite) Seite 16 von 17
17 (Fortsetzung von Aufgabe 10) Lehrgebiet Programmiersysteme Wie sieht das grundlegende Muster zur Realisierung eines einfachen Servers aus? Geben Sie das passende Programmfragment (Pseudocode oder Java) an oder beschreiben Sie das Muster textuell. Programmfragment des Musters: ServerSocket serversocket = new ServerSocket(Portnummer); while (true) { // Öffnen der Ein- und Ausgabeströme zum Client Socket socket = serversocket.accept(); // Kommunikation zwischen Server und Client socket.close(); Textuelle Beschreibung des Musters: Der Server-Prozess schließt sich an den gewünschten Port an. Dies geschieht in Java mittels des Konstruktors der Klasse ServerSocket. Dann betritt er üblicherweise eine Endlosschleife. Jeder Durchlauf durch die Schleife entspricht der Bedienung eines Clients. In der Schleife wartet der Server, dass sich ein Client an den Port anschließt. Das Warten und das nachfolgende Herstellen der Socket-Verbindung zum Client wird in Java von der Methode accept geleistet. Ihr Aufruf blockiert, bis sich ein Client angeschlossen hat, und liefert dann das Socket-Objekt zurück, das die Verbindung zum Client repräsentiert. Das Socket-Objekt stellt Methoden zur Verfügung, um die Ein- und Ausgabeströme zum Client zu öffnen. (5 Punkte) Seite 17 von 17
Lesen Sie zuerst die Hinweise auf der folgenden Seite! Musterlösung. Klausurort: Aufgabe Summe
(Name, Vorname) (Straße, Nr.) (PLZ) (Wohnort) (Land, falls außerhalb Deutschlands) Kurs 1618 SS 2010 Einführung in die objektorientierte Programmierung Klausur am 11.9.2010 Dauer: 3 Std., 10 13 Uhr Lesen
MehrKurs Einführung in die objektorientierte Programmierung (Kursdurchführung des Sommersemester 2016) Klausur am
(Name, Vorname) (Straße, Nr.) (PLZ) (Wohnort) (Land, falls außerhalb Deutschlands) Kurs 01618 Einführung in die objektorientierte Programmierung (Kursdurchführung des Sommersemester 2016) Klausur am 10.09.2016
MehrLesen Sie zuerst die Hinweise auf der folgenden Seite! Klausurort: Aufgabe Summe
n (Name, Vorname) (Straße, Nr.) (PLZ) (Wohnort) (Land, falls außerhalb Deutschlands) Kurs 1618 SS 2011 Einführung in die objektorientierte Programmierung Klausur am 10.9.2011 Dauer: 3 Std., 10 13 Uhr Lesen
MehrLesen Sie zuerst die Hinweise auf der folgenden Seite! Klausurort: Aufgabe Summe
(Name, Vorname) (Straße, Nr.) (PLZ) (Wohnort) (Land, falls außerhalb Deutschlands) Kurs 1618 SS 2011 Einführung in die objektorientierte Programmierung Nachklausur am 11.2.2012 Dauer: 3 Std., 10 13 Uhr
Mehr3 Objektorientierte Konzepte in Java
3 Objektorientierte Konzepte in Java 3.1 Klassendeklarationen Fragen an die Klassendeklaration: Wie heißt die Klasse? Wer darf auf die Klasse und ihre Attribute/Methoden zugreifen? Ist die Klasse eine
MehrKapitel 8. Programmierkurs. Methoden. 8.1 Methoden
Kapitel 8 Programmierkurs Birgit Engels Anna Schulze Zentrum für Angewandte Informatik Köln Objektorientierte Programmierung Methoden Überladen von Methoden Der this-zeiger Konstruktoren Vererbung WS 07/08
MehrLesen Sie zuerst die Hinweise auf der Rückseite!
Fachbereich Informatik Lehrgebiet Programmiersysteme Prof. Dr. Friedrich Steimann FernUniversität in Hagen D-58084 Hagen (Name, Vorname) (Straße, Nr.) (PLZ) (Wohnort) (Land, falls außerhalb Deutschlands)
MehrProbeklausur: Programmierung WS04/05
Probeklausur: Programmierung WS04/05 Name: Hinweise zur Bearbeitung Nimm Dir für diese Klausur ausreichend Zeit, und sorge dafür, dass Du nicht gestört wirst. Die Klausur ist für 90 Minuten angesetzt,
MehrEinstieg in die Informatik mit Java
1 / 41 Einstieg in die Informatik mit Java Vererbung Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 41 1 Überblick: Vererbung 2 Grundidee Vererbung 3 Verdeckte Variablen
MehrKapitel 6. Vererbung
Kapitel 6 Vererbung Vererbung 1 Ziele Das Vererbungsprinzip der objektorientierten Programmierung verstehen Und in Java umsetzen können Insbesondere folgende Begriffe verstehen und anwenden können: Ober/Unterklassen
MehrKapitel 6. Vererbung
1 Kapitel 6 2 Ziele Das sprinzip der objektorientierten Programmierung verstehen Und in Java umsetzen können Insbesondere folgende Begriffe verstehen und anwenden können: Ober/Unterklassen Subtyping Überschreiben
MehrKapitel 6. Vererbung
1 Kapitel 6 2 Ziele Das sprinzip der objektorientierten Programmierung verstehen Und in Java umsetzen können Insbesondere folgende Begriffe verstehen und anwenden können: Ober/Unterklassen Subtyping Überschreiben
Mehr3 Objektorientierte Konzepte in Java
3 Objektorientierte Konzepte in Java Bisherige Beobachtungen zu Objekten: werden in Klassen zusammengefasst besitzen Eigenschaften und Verhalten verbergen private Informationen werden geboren, leben und
MehrBeispiel: Zwischen der Oberklasse und der abgeleiteten Klasse besteht eine ist ein Beziehung. Eine abgeleitete Klasse stellt eine Spezialisierung der
Vererbung Vererbung ist ein Konzept der objektorientierten Programmierung,, die es ermöglicht neue Klassen von bereits vorhandenen Klassen abzuleiten. In einer abgeleiteten Klasse (subclass) muss nur spezifiziert
MehrAllgemeine Informatik II SS :30-13:30 Uhr
TU Darmstadt FB Informatik Prof. J. Fürnkranz Vordiplomsklausur - Lösungsvorschlag Allgemeine Informatik II SS 2005 15.09.2005 11:30-13:30 Uhr Hinweise: Als Hilfsmittel ist nur ein schwarzer oder blauer
MehrJava Vererbung. Inhalt
Java Vererbung Inhalt 1 Zielsetzung... 2 1.1 Bewertung... 2 2 Grundlagen der Vererbung... 2 2.1 Super und Subklassen... 2 3 Überladen von Methoden... 4 3.1 Unterschiedliche Parameter... 4 3.2 Gleiche Parameter
MehrEinstieg in die Informatik mit Java
Vorlesung vom 18.4.07, Grundlagen Übersicht 1 Kommentare 2 Bezeichner für Klassen, Methoden, Variablen 3 White Space Zeichen 4 Wortsymbole 5 Interpunktionszeichen 6 Operatoren 7 import Anweisungen 8 Form
MehrJavakurs FSS Lehrstuhl Stuckenschmidt. Tag 3 - Objektorientierung
Javakurs FSS 2012 Lehrstuhl Stuckenschmidt Tag 3 - Objektorientierung Warum Objektorientierung Daten und Funktionen möglichst eng koppeln und nach außen kapseln Komplexität der Software besser modellieren
MehrRepetitorium Informatik (Java)
Repetitorium Informatik (Java) Tag 6 Lehrstuhl für Informatik 2 (Programmiersysteme) Übersicht 1 Klassen und Objekte Objektorientierung Begrifflichkeiten Deklaration von Klassen Instanzmethoden/-variablen
MehrTest zu Grundlagen der Programmierung Leitung: Michael Hahsler. 21. November 2003
Test zu Grundlagen der Programmierung Leitung: Michael Hahsler 1. November 00 Name Martrikelnummer Unterschrift Bitte kreuzen Sie das Studium an, für das Sie diese Prüfung ablegen: O Bakkalaureat Wirtschaftsinformatik
MehrFH D. Objektorientierte Programmierung in Java FH D FH D. Prof. Dr. Ing. André Stuhlsatz. Wiederholung: Interfaces
10 Objektorientierte Programmierung in Java Prof. Dr. Ing. André Stuhlsatz Wiederholung: Interfaces Aber: Mehrfachvererbung von Klassen ist in Java nicht erlaubt. Ausweg Definition eines Interfaces, z.b.:
MehrTheorie zu Übung 8 Implementierung in Java
Universität Stuttgart Institut für Automatisierungstechnik und Softwaresysteme Prof. Dr.-Ing. M. Weyrich Theorie zu Übung 8 Implementierung in Java Klasse in Java Die Klasse wird durch das class-konzept
MehrÜberschreiben von Methoden
Vergleich der DoME Realisierungen: Methode ausgeben Version 1 (ohne Vererbung): Anzeigen aller Informationen CD: A Swingin Affair (64 Min)* Frank Sinatra Titelanzahl: 16 Mein Lieblingsalbum von Sinatra
Mehr7. Objektorientierte Softwareentwicklung/3. Informatik II für Verkehrsingenieure
7. Objektorientierte Softwareentwicklung/3 Informatik II für Verkehrsingenieure Überblick FOLGENDE BEGRIFFE/PRINZIPIEN SOLLTEN BEKANNT SEIN Objekte Klasse Attribute Fähigkeiten ZIEL DER HEUTIGEN LEHRVERANSTALTUNG
MehrProbeklausur: Programmierung WS04/05
Probeklausur: Programmierung WS04/05 Name: Hinweise zur Bearbeitung Nimm Dir für diese Klausur ausreichend Zeit, und sorge dafür, dass Du nicht gestört wirst. Die Klausur ist für 90 Minuten angesetzt,
MehrAlgorithmen und Datenstrukturen 07
5. Dezember 2011 1 Besprechung Blatt 6 Fragen 2 Vererbung Allgemein abstract Interfaces 3 Unified Modeling Language (UML) Ablaufdiagramme Klassendiagramme Anwendungsfalldiagramme 4 Vorbereitung Blatt 7
MehrGrundzüge der Programmierung. Wiederverwendung VERERBUNG
Grundzüge der Programmierung Wiederverwendung VERERBUNG Inhalt dieser Einheit Syntax: Vererbung in Java Superklassen - Subklassen Konstruktorenaufruf in Subklassen super, abstract und final 2 Code-Reuse
MehrOOP und Angewandte Mathematik. Eine Einführung in die Anwendung objektorientierter Konzepte in der angewandten Mathematik
Eine Einführung in die Anwendung objektorientierter Konzepte in der angewandten Mathematik WS 2011/12 Inhalt Test-Besprechung! Ziele verdeutlichen Große Bild von OOP Wiederholung: Einbettung als Technik
MehrKlausur zur Einführung in die objektorientierte Programmierung mit Java
Klausur zur Einführung in die objektorientierte Programmierung mit Java im Studiengang Informationswissenschaft Prof. Dr. Christian Wolff Professur für Medieninformatik Institut für Medien-, Informations-
Mehr5. Tutorium zu Programmieren
5. Tutorium zu Programmieren Dennis Ewert Gruppe 6 Universität Karlsruhe Institut für Programmstrukturen und Datenorganisation (IPD) Lehrstuhl Programmierparadigmen WS 2008/2009 c 2008 by IPD Snelting
Mehr1 Polymorphie (Vielgestaltigkeit)
1 Polymorphie (Vielgestaltigkeit) Problem: Unsere Datenstrukturen List, Stack und Queue können einzig und allein int-werte aufnehmen. Wollen wir String-Objekte, andere Arten von Zahlen oder andere Objekttypen
MehrVererbung. Martin Wirsing. Ziele. Vererbung
2 Ziele Martin Wirsing en Begriff der einfachen verstehen und Redefinition von Oberklassenmethoden verstehen spolymorphie verstehen ie Klasse Object kennenlernen in Zusammenarbeit mit Michael Barth, Philipp
MehrJAVA für Nichtinformatiker - Probeklausur -
JAVA für Nichtinformatiker - Probeklausur - Die folgenden Aufgaben sollten in 150 Minuten bearbeitet werden. Aufgabe 1: Erläutere kurz die Bedeutung der folgenden Java-Schlüsselwörter und gib Sie jeweils
Mehr7. Schnittstellen Grundlagen zu Schnittstellen. 7. Schnittstellen
7. Schnittstellen Grundlagen zu Schnittstellen 7. Schnittstellen Eine Schnittstelle (Interface) ist eine Spezifikation eines Typs in Form eines Typnamens und einer Menge von Methoden, die keine Implementierungen
MehrÜbersicht. Informatik 2 Teil 3 Anwendungsbeispiel für objektorientierte Programmierung
Übersicht 3.1 Modell Konto 3.2 Modell Konto - Erläuterungen 3.3 Benutzer Ein- und Ausgabe mit Dialogfenster I 3.4 Benutzer Ein- und Ausgabe mit Dialogfenster II 3.5 Klassen- und Objekteigenschaften des
MehrEinstieg in die Informatik mit Java
1 / 34 Einstieg in die Informatik mit Java Klassen mit Instanzmethoden Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 34 1 Definition von Klassen 2 Methoden 3 Methoden
MehrEine Klasse beschreibt Objekte mit gleichen Attributen und Methoden.
Grundwissen Informatik Objekt Attribut Methoden Als Objekte bezeichnet man alle Gegenstände, Dinge, Lebewesen, Begriffe oder Strukturen unserer Welt ( Autos, Räume, Bakterien, Lehrer, Schüler, Kunden,
MehrJavakurs für Anfänger
Javakurs für Anfänger Einheit 10: Mehr zur Vererbung und abstrakte Klassen Lorenz Schauer Lehrstuhl für Mobile und Verteilte Systeme Heutige Agenda 1. Teil: Mehr zur Vererbung Methoden vererben und überschreiben
MehrJava I Vorlesung Vererbung und Sichtbarkeit
Java I Vorlesung 4 Vererbung und Sichtbarkeit 17.5.2004 Vererbung Überladen, Überschreiben, Verstecken, Verschatten Zugriffskontrolle Statische Members Wiederholung: OOP Programme bestehen aus Klassen.
MehrMusterlösungen zur Klausur Informatik 3
Musterlösungen zur Klausur Informatik 3 Justus-Liebig-Universität Gießen Wintersemester 2003/2004 Aufgabe 1 (6 Punkte) Man kreuze bei den folgenden Deklarationen und Definitionen jeweils an, ob sie aus
Mehr3. Anweisungen und Kontrollstrukturen
3. Kontrollstrukturen Anweisungen und Blöcke 3. Anweisungen und Kontrollstrukturen Mit Kontrollstrukturen können wir den Ablauf eines Programmes beeinflussen, z.b. ob oder in welcher Reihenfolge Anweisungen
MehrJavakurs für Anfänger
Javakurs für Anfänger Einheit 09: Vererbung Lorenz Schauer Lehrstuhl für Mobile und Verteilte Systeme Heutige Agenda 1. Teil Einführung in die Vererbung Motivation Das Schlüsselwort extends Einführendes
MehrUniversität Augsburg, Institut für Informatik Sommersemester 2005 Prof. Dr. Werner Kießling 15. Oktober 2005 Dr. Alfons Huhn, Timotheus Preisinger
Universität Augsburg, Institut für Informatik Sommersemester 2005 Prof. Dr. Werner Kießling 15. Oktober 2005 Dr. Alfons Huhn, Timotheus Preisinger Informatik II Hinweise: Die Bearbeitungszeit beträgt 90
MehrJava Einführung Methoden in Klassen
Java Einführung Methoden in Klassen Lehrziel der Einheit Methoden Signatur (=Deklaration) einer Methode Zugriff/Sichtbarkeit Rückgabewerte Parameter Aufruf von Methoden (Nachrichten) Information Hiding
MehrWiederholung zur Vorlesung Programmieren
Wiederholung zur Vorlesung Jan 2007 Wintersemester 2007/2008 Computerlinguistik, Campus DU Einstieg Erläutern sie in knappen Worten die notwendigen Schritte um ein einfaches Java-Programm zu schreiben
MehrProgrammieren in Java
Programmieren in Java objektorientierte Programmierung 2 2 Zusammenhang Klasse-Datei In jeder *.java Datei kann es genau eine public-klasse geben wobei Klassen- und Dateiname übereinstimmen. Es können
MehrEinführung in die Programmierung
Skript zur Vorlesung: Einführung in die Programmierung WiSe 2009 / 2010 Skript 2009 Christian Böhm, Peer Kröger, Arthur Zimek Prof. Dr. Christian Böhm Annahita Oswald Bianca Wackersreuther Ludwig-Maximilians-Universität
MehrVorname: Nachname: Matrikelnummer: Klausur. Betriebssysteme
Vorname: Nachname: Matrikelnummer: Klausur Betriebssysteme 12.02.2013 Hinweise: 1. Beschriften Sie als erstes diese Seite mit Ihrem Namen, Vornamen und Ihrer Matrikelnummer (deutlich in Druckbuchstaben).
MehrJava-Schulung Grundlagen
Java-Schulung Grundlagen Java 2 Standard Edition JDK 5 / 6 31.05.2008 Marcel Wieczorek 1 Themenübersicht Basiswissen Objektorientierung Datentypen Fehlerbehandlung Sonstiges Einführung Klassen, Strings
MehrJava: Eine Übersicht. Dennis Giffhorn. Lehrstuhl für Programmierparadigmen Universität Karlsruhe
Java: Eine Übersicht Dennis Giffhorn Lehrstuhl für Programmierparadigmen Universität Karlsruhe Allgemeines Objektorientiert Syntaxfamilie von C/C++ Statisch getypt Entwickelt von Sun Microsystems class
Mehr3D Programmierpraktikum: Einführung in C++ - Teil 2
3D Programmierpraktikum: Einführung in C++ - Teil 2 Praktikum 3D Programmierung Sebastian Boring, Otmar Hilliges Donnerstag, 4. Mai 2006 LMU München Medieninformatik Boring/Hilliges 3D Programmierpraktikum
MehrVariablen manipulieren per JDI
Variablen manipulieren per JDI Zusammenfassung Jede moderne Java IDE verfügt über eine mächtige und dennoch meist einfach zu bedienende Benutzeroberfläche die das finden von Fehlern in lokalen oder entfernt
MehrVerhindert, dass eine Methode überschrieben wird. public final int holekontostand() {...} public final class Girokonto extends Konto {...
PIWIN I Kap. 8 Objektorientierte Programmierung - Vererbung 31 Schlüsselwort: final Verhindert, dass eine Methode überschrieben wird public final int holekontostand() {... Erben von einer Klasse verbieten:
MehrBeispiel für überladene Methode
Beispiel für überladene Methode class Gras extends Futter {... abstract class Tier { public abstract void friss (Futter x); class Rind extends Tier { public void friss (Gras x) {... public void friss (Futter
MehrPrüfungszeuch im Fach Objektorientierte Programmierung WS 2000
Prüfungszeuch im Fach Objektorientierte Programmierung WS 2000 A. Beschreibung der Projektarbeit. Welche Aufgabe haben Sie im Rahmen der Projektarbeit gelöst? 2. Mit welchen Tools bzw. Programmen (Anwendung,
MehrAuD-Tafelübung T-B5b
6. Übung Sichtbarkeiten, Rekursion, Javadoc Di, 29.11.2011 1 Blatt 5 2 OOP Klassen Static vs. Instanzen Sichtbarkeit 3 Stack und Heap Stack Heap 4 Blatt 6 1 Blatt 5 2 OOP Klassen Static vs. Instanzen Sichtbarkeit
MehrJavakurs zu Informatik I. Henning Heitkötter
Javakurs zu Informatik I Arrays vergleichen Implementieren Sie folgende Methode, die prüft, ob die Elemente der beiden Arrays an jeder Position übereinstimmen: public static boolean identisch(int[] a,
MehrProgrammieren I + II Regeln der Code-Formatierung
Technische Universität Braunschweig Dr. Werner Struckmann Institut für Programmierung und Reaktive Systeme WS 2016/2017, SS 2017 Programmieren I + II Regeln der Code-Formatierung In diesem Dokument finden
MehrII. Grundlagen der Programmierung. 9. Datenstrukturen. Daten zusammenfassen. In Java (Forts.): In Java:
Technische Informatik für Ingenieure (TIfI) WS 2005/2006, Vorlesung 9 II. Grundlagen der Programmierung Ekkart Kindler Funktionen und Prozeduren Datenstrukturen 9. Datenstrukturen Daten zusammenfassen
MehrUniversität Augsburg, Institut für Informatik Sommersemester 2003 Prof. Dr. Bernhard Bauer 18. Oktober 2003 Stefan Fischer, Dr.
Universität Augsburg, Institut für Informatik Sommersemester 2003 Prof. Dr. Bernhard Bauer 18. Oktober 2003 Stefan Fischer, Dr. Martin Müller Informatik II 2. Semesterklausur Prüfungsmodul Informatik II
MehrJava: Vererbung. Teil 3: super() www.informatikzentrale.de
Java: Vererbung Teil 3: super() Konstruktor und Vererbung Kindklasse ruft SELBSTSTÄNDIG und IMMER zuerst den Konstruktor der Elternklasse auf! Konstruktor und Vererbung Kindklasse ruft SELBSTSTÄNDIG und
MehrAndroid will doch nur spielen. Java Eine kurze Einführung
Android will doch nur spielen Java Eine kurze Einführung Agenda Einführung in Java Syntax und Semantik Komplexe Datenstrukturen OOP Weitere Java-Elemente 2 Einführung in Java Was ist Java? lt. Sun: einfach
Mehr5.6 Vererbung. Vererbung
5.6 Vererbung Klassen können zueinander in einer "ist ein"- Beziehung stehen Beispiel: Jeder PKW ist ein Kraftfahrzeug, jedes Kraftfahrzeug ist ein Transportmittel aber: auch jeder LKW ist ein Kraftfahrzeug
MehrVersuchsziele Konzepte der parallelen Programmierung am Beispiel von Threads anwenden können. Einbau von Kontrollmechanismen mittels Semaphore.
Hochschule Harz Versuch: fcopy Mit Java FB Automatisierung und Informatik Betriebssysteme Thema: Kopieren einer Datei unter der Kontrolle von Semaphoren Versuchsziele Konzepte der parallelen Programmierung
MehrEinführung in die objektorientierte Programmierung mit Java. Klausur am 19. Oktober 2005
Einführung in die objektorientierte Programmierung mit Java Klausur am 19. Oktober 2005 Matrikelnummer: Nachname: Vorname: Semesteranzahl: Die Klausur besteht aus drei Frageblöcken zu den Inhalten der
MehrAufgabe 1: Quer durch Java (4 Punkte) super abstract abstract protected
Universität Augsburg, Institut für Informatik Sommersemester 2006 Prof. Dr. Werner Kießling 14. Oktober 2006 Markus Endres, Alfons Huhn, Timotheus Preisinger Informatik II Klausur 2 Hinweise: Die Bearbeitungszeit
MehrB Java RMI B.2 B.4. 1 Java. 1.2 Methoden. 1.1 Objekte (2) 1.1 Objekte. Objektorientierte Sprache. Klassenbeschreibung. Methode ist eine Art Funktion
1 Java 1.1 e B Java RMI orientierte Sprache e beschrieben in Klassendefinitionen und andere Datentypen: int, float, boolean, etc. referenzen Verweise auf e keine Zeiger, Adressen o.ä. B.1 B.2 1.1 e (2)
MehrBeispiel: Methode mit einem Fehler. Diese Methode wird problematisch, wenn von außen eine Dauer von 0 Sekunden angegeben wird, etwa im Aufruf
16 Exceptions Zur Behandlung unerwarteter Situationen bietet Java Unterstützung in Form von Exceptions oder Ausnahmen. Den Sinn von Exceptions können wir Ihnen an einem kleinen Beispiel klarmachen. Nehmen
MehrJava Einführung Methoden. Kapitel 6
Java Einführung Methoden Kapitel 6 Inhalt Deklaration und Aufruf von Methoden Lokale und globale Namen (Bezeichner) Sichtbarkeit und Lebensdauer von Variablen in Methoden Überladen von Methoden 2 Methoden
MehrObjektorientierte Programmierung
Objektorientierte Programmierung 1 Geschichte Dahl, Nygaard: Simula 67 (Algol 60 + Objektorientierung) Kay et al.: Smalltalk (erste rein-objektorientierte Sprache) Object Pascal, Objective C, C++ (wiederum
Mehr188.154 Einführung in die Programmierung Vorlesungsprüfung
Matrikelnummer Studienkennzahl Name Vorname 188.154 Einführung in die Programmierung Vorlesungsprüfung Donnerstag, 27.1.2005, 18:15 Uhr EI 7 Arbeitszeit: 60 min - max. 50 Punkte erreichbar - Unterlagen
MehrHöhere Programmierkonzepte Testklausur
Höhere Programmierkonzepte Testklausur Prof. Dr. Nikolaus Wulff Zum 15. Januar 2016 1 Ein Google-Map Algorithmus (5 Punkte) 1 2 typedef void X; 3 typedef void Y; 4 5 void map(unsigned int n / tuple length
MehrJava für Computerlinguisten
Java für Computerlinguisten 2. Objektorientierte Programmierung Christian Scheible Institut für Maschinelle Sprachverarbeitung 28. Juli 2009 Christian Scheible Java für Computerlinguisten 28. Juli 2009
MehrProgrammierkurs C++ Abstrakte Klassen und Methoden
Programmierkurs C++ Abstrakte Klassen und Methoden Prof. Dr. Stefan Fischer Institut für Telematik, Universität zu Lübeck http://www.itm.uni-luebeck.de/people/fischer #2 Vererbungshierarchie Obst double
MehrAlgorithmen und Programmierung II
Algorithmen und Programmierung II Vererbung Prof. Dr. Margarita Esponda SS 2012 1 Imperative Grundbestandteile Parameterübergabe String-Klasse Array-Klasse Konzepte objektorientierter Programmierung Vererbung
MehrGroße Übung Praktische Informatik 1
Große Übung Praktische Informatik 1 2005-12-08 fuessler@informatik.uni-mannheim.de http://www.informatik.uni-mannheim.de/pi4/people/fuessler 1: Announcements / Orga Weihnachtsklausur zählt als Übungsblatt,
MehrProgrammierkurs. Manfred Jackel
Java für Anfänger Teil 7: Methoden Programmierkurs 06.-10.10.2008 Manfred Jackel 1 Methoden In der imperativen Programmierung sind Funktionen ein wichtiges Mittel zur Modularisierung. [Oft benötigter]
MehrEnumerations und innere Klassen
Enumerations und innere Klassen Programmiermethodik Eva Zangerle Universität Innsbruck Überblick Einführung Java Ein erster Überblick Objektorientierung Vererbung und Polymorphismus Ausnahmebehandlung
MehrVererbung. Vererbung von Methoden und Instanzvariablen. Vererbung als Realisierung einer is-a Beziehung.
Vererbung Unterklassen einer Klasse Vererbung von Methoden und Instanzvariablen Überschreiben von Methoden Vererbung als Realisierung einer is-a Beziehung. Informatik II: Objektorientierte SW-Entwicklung,
MehrParallele Prozesse. Prozeß wartet
Parallele Prozesse B-66 Prozeß: Ausführung eines Programmes in seinem Adressraum (zugeordneter Speicher) Parallele Prozesse: gleichzeitig auf mehreren Prozessoren laufende Prozesse p1 p2 verzahnte Prozesse:
MehrAllgemeine Hinweise:
TECHNISCHE UNIVERSITÄT MÜNCHEN FAKULTÄT FÜR INFORMATIK Lehrstuhl für Sprachen und Beschreibungsstrukturen SS 2011 Einführung in die Informatik I Endtermklausur Prof. Dr. Helmut Seidl, A. Lehmann, A. Herz,
MehrJava-Programmierung. Remote Method Invocation - RMI
Java-Programmierung Remote Method Invocation - RMI Entwicklungsmethoden Sockets Entwurf verteilter Anwendungen ist relativ aufwändig, da zunächst ein Kommunikationsprotokoll entwickelt werden muss aufwändig
MehrJavakurs für Anfänger
Javakurs für Anfänger Einheit 14: Generics Lorenz Schauer Lehrstuhl für Mobile und Verteilte Systeme Heutige Agenda Generische Klassen (Generics) Motivation Java Typ-Prüfung Warum also Generics? Generische
MehrEinführung in die Programmierung
Technische Universität München WS 2003/2004 Institut für Informatik Prof. Dr. Christoph Zenger Testklausur Einführung in die Programmierung Probeklausur Java (Lösungsvorschlag) 1 Die Klasse ArrayList In
MehrPIWIN I. Praktische Informatik für Wirtschaftsmathematiker, Ingenieure und Naturwissenschaftler I. Vorlesung 3 SWS WS 2007/2008
PIWIN I Kap. 7 Objektorientierte Programmierung - Einführung 1 PIWIN I Praktische Informatik für Wirtschaftsmathematiker, Ingenieure und Naturwissenschaftler I Vorlesung 3 SWS WS 2007/2008 FB Informatik
Mehr2. Methoden. n Generelles zum Aufruf von Methoden. n Parameterübergabemechanismen (call by value, call by reference)
2. Methoden n Generelles zum Aufruf von Methoden n Parameterübergabemechanismen (call by value, call by reference) n Speicherorganisation bei Methodenaufruf und Parameterübergabe (Laufzeitkeller) n vararg
MehrJava Schulung (Java 2 Java Development Kit 5 / 6)
2. Grundlagen der Objektorientierung 2.1 Klassen, Attribute, Methoden Klassen Eine Klasse beschreibt als Bauplan Gemeinsamkeiten einer Menge von Objekten ist also ein Modell, auf dessen Basis Objekte erstellt
Mehr1. Typen und Literale (6 Punkte) 2. Zuweisungen (6 = Punkte)
Praktische Informatik (Software) Vorlesung Softwareentwicklung 1 Prof. Dr. A. Ferscha Hauptklausur am 01. 02. 2001 Zuname Vorname Matr. Nr. Stud. Kennz. Sitzplatz HS / / / Punkte Note korr. Fügen Sie fehlende
Mehr1. Grundlegende Eigenscha5en 2. Redefini+on 3. Polymophie 4. Mehrfachvererbung
K05 Vererbung & Polymorphie in C++ 1. Grundlegende Eigenscha5en 2. Redefini+on 3. Polymophie 4. Mehrfachvererbung 2 Vererbung in C++: Grundlagen Analog zu Java unterstützt C++ das Konzept der Vererbung:
MehrObjektorientierte Programmierung. Kapitel 12: Interfaces
12. Interfaces 1/14 Objektorientierte Programmierung Kapitel 12: Interfaces Stefan Brass Martin-Luther-Universität Halle-Wittenberg Wintersemester 2012/13 http://www.informatik.uni-halle.de/ brass/oop12/
Mehr2.2 Prozesse in Java
2.2 Prozesse in Java! Java sieht kein Schlüsselwort für Prozesse vor, sondern bestimmte Klassen und Schnittstellen. Mit anderen Worten: der Prozessbegriff wird mit Mitteln der Objektorientierung eingeführt.
MehrJAVA - Methoden
Übungen Informatik I JAVA - http://www.fbi-lkt.fh-karlsruhe.de/lab/info01/tutorial Übungen Informatik 1 Folie 1 sind eine Zusammenfassung von Deklarationen und Anweisungen haben einen Namen und können
MehrProgrammieren in Java
Programmieren in Java Einführung in die objektorientierte Programmierung Teil 2 2 Übersicht der heutigen Inhalte Vererbung Abstrakte Klassen Erweitern von Klassen Überladen von Methoden Überschreiben von
MehrSemestralklausur Einführung in die Programmierung, WS 2005/06, Seite 1/6 Name, Vorname, Matrikelnummer: Gruppe A
Semestralklausur Einführung in die Programmierung, WS 2005/06, 6.2.2006 Seite 1/6 Name, Vorname, Matrikelnummer: Unterschrift: 1 Grundlagen (5+5 Punkte) Gruppe A a) Schreiben Sie eine Klassenmethode mit
Mehr3. Konzepte der objektorientierten Programmierung
3. Konzepte der objektorientierten Programmierung 3.1 Basiskonzepte 3.2 Generalisierung / Spezialisierung 3.3 Aggregation 3.4 Assoziation 3.5 Nachrichten 3.6 Polymorphismus 3. Konzepte der Objektorientierung
Mehr620.900 Propädeutikum zur Programmierung
620.900 Propädeutikum zur Programmierung Andreas Bollin Institute für Informatik Systeme Universität Klagenfurt Andreas.Bollin@uni-klu.ac.at Tel: 0463 / 2700-3516 Arrays Wiederholung (1/5) Array = GEORDNETE
MehrInhaltsüberblick. I. Grundbegriffe - Objekte und Klassen. Organisatorisches. I. Grundbegriffe - Objektorientierte Konzepte
Grundkonzepte Objektorientierter Programmierung Nicole Himmerlich FSU Jena mit Java, Oberon-2, Object-Pascal und Python Inhaltsüberblick I. Grundbegriffe 1) Kopplung 2) Datenkaspelung 3) Konstruktor 4)
MehrKlausur zur Vorlesung: Einführung in die objektorientierte Programmierung mit Java WS1415
Klausur zur Vorlesung: Einführung in die objektorientierte Programmierung mit Java WS1415 Alexander Bazo 19. Februar 2015 Allgemeine Hinweise 1. Die Bearbeitungszeit beträgt 60 Minuten. Sie könne 50 Punkte
Mehr1. Der Einstieg in Java. Was heißt Programmieren?
1. Der Einstieg in Java Lernziele: Am Ende dieses Kapitels sollen Sie wissen, aus welchen Bestandteilen ein Java-Programm besteht, Java-Programme übersetzen und ausführen können, Möglichkeiten der Kommentierung
MehrTeil 2: OOP und JAVA (Vorlesung 11)
Teil 2: OOP und JAVA (Vorlesung 11) Modul: Programmierung B-PRG Grundlagen der Programmierung II Prof. Dot.-Ing. Roberto Zicari Professur für Datenbanken und Informationssysteme (FB 12) 28.06.06 1 Teil
Mehr