Java Schulung. Objektorientierte Programmierung in Java Teil III: Java Klassen und Objekte. Prof. Dr. Nikolaus Wulff
|
|
- Uwe Roth
- vor 8 Jahren
- Abrufe
Transkript
1 Java Schulung Objektorientierte Programmierung in Java Teil III: Java Klassen und Objekte Prof. Dr. Nikolaus Wulff
2 Referenzvariablen Referenzvariablen verweisen auf (unbenannte) Objekte im Speicher. Uninitialisierte Variablen enthalten eine Null-Referenz (null). a Objekt Point a,b; a b null Objekte werden zur Laufzeit erzeugt. new Point(0,0); a = new Point(1,2); Objekte sind anonym. a :Point 0 0 a:point 1 2 Sie haben eine unveränderliche Identität. Prof. Dr. Nikolaus Wulff 2
3 Binden von Referenzvariablen Beim Zuweisen eines Objektes auf eine Variable wird eine Referenz zugewiesen: a = new Point(0,0); b = new Point(3,4); Beim Zuweisen von Referenzvariablen aufeinander werden nur die Referenzen kopiert, nicht die Objekte: a = b; Vorsicht! Das Objekt kann jetzt über zwei Pfade geändert werden: a.set(5,6); b.set(20,30); a b a b Prof. Dr. Nikolaus Wulff 3
4 Vergleichen von Objekten Beim Vergleichen zweier Referenzvariablen werden die Referenzen verglichen, nicht die referenzierten Objekte. Es wird also auf Objektidentität, nicht auf Inhaltsgleichheit geprüft. == (shallow equality) a b c d a == b a!= c d == null Prof. Dr. Nikolaus Wulff 4
5 Inhaltsvergleich Der Inhalt von zwei Objekten wird durch die Methode equals verglichen. equals (deep equality) new Integer(1)!= new Integer(1) new Integer(1).equals(new Integer(1)) Bei selbstdefinierten Klassen vergleicht equals (geerbt von Object) per Default auch nur die Objektidentiät, d.h. verwendet shallow equality. Die Methode equals muss selbst neu überladen werden, damit sie die gewünschte Funktionalität bietet. Prof. Dr. Nikolaus Wulff 5
6 Eine Klasse class Cell { private int value = 0; void setvalue(int newvalue){ this.value = newvalue; int getvalue( ) { return this.value;... Attribut Methoden Klassendefinition Prof. Dr. Nikolaus Wulff 6
7 Bestandteile einer Klasse Einleitung einer Klasse durch Schlüsselwort class: class EineKlasse { /* Klassenrumpf */ Erzeugung eines Objektes mit new: EineKlasse a = new EineKlasse(); Attribute: class Datengrab { int i; float f; boolean b; Jede Instanz (jedes Objekt) der Klasse Datengrab bekommt eine eigene Kopie der Attribute. Prof. Dr. Nikolaus Wulff 7
8 Methoden Methoden: Verhalten eines Objekts Inspizieren und ändern den Zustand eines Objekts. Berechnen von Rückgabewerten. Anstoßen von weiteren Methoden über das Senden von Nachrichten an andere Objekte. In anderen Sprachen: Funktionen oder Prozeduren. Nur innerhalb von Klassen (keine Methode ohne Klasse!). Aufruf einer Methode = Senden einer Nachricht: int x = a.f(); rufe Methode f von Objekt a bzw. sende Nachricht f an Objekt a Prof. Dr. Nikolaus Wulff 8
9 Parameterliste Die Parameterliste spezifiziert die Typen der Objekte, die als Argumente an die Methode übergeben werden können. Jedes Objekt (Parameter) erhält einen lokalen Namen, über den innerhalb der Methode auf das Objekt zugegriffen werden kann. Typ Name void reset(cell c) { c.setvalue(0); Beachte: Es werden nicht die Objekte (Kopien), sondern Referenzen auf die Objekte übergeben! Cell acel1 = new Cell(); acel1.setvalue(4); reset(acel1); acel1.getvalue(); ==> 0 Prof. Dr. Nikolaus Wulff 9
10 Rückgabewerte Methoden können Werte bzw. Objektreferenzen zurückliefern: Rückgabetyp Integer berechne(int a, int b) { int sum = a + b; return new Integer(sum); Rückgabe Mit return wird die Methode sofort verlassen - auch wenn noch Befehle dahinter folgen! Methoden ohne Rückgabe haben den Rückgabetyp void: void print(int a, int b) { System.out.println("a + b = " + a + b); Prof. Dr. Nikolaus Wulff 10
11 Methodenrumpf Variablendeklarationen und -zuweisungen. void berechne(int a, int b) { int i; Deklaration i = a * b; Zuweisung Beachte: Lokale Variablen müssen initialisiert werden! void berechne() { int i; i++; Compile-Fehler! Prof. Dr. Nikolaus Wulff 11
12 Statische Attribute und Methoden Attribute und Methoden, die nicht für einzelne Objekte, sondern für die ganze Klasse definiert sind. D.h., jedes Attribut kommt nur einmal pro Klasse vor! class Person { static int erzeugtepersonen = 0; static void printstatistik() { System.out.println("Erzeugt: " + erzeugtepersonen); Statische Attribute und Methoden können genutzt werden, ohne Objekte zu erzeugen. Der Zugriff erfolgt über den Klassennamen: Person.printStatistik(); Person.erzeugtePersonen++; Vergleiche: System.out.println(...); main Prof. Dr. Nikolaus Wulff 12
13 Statische Attribute class Person { static int erzeugtepersonen = 0; String name; Person erzeugtepersonen = 0 Klasse mit statischen Attribut das Objekt kennt seine Klasse peter class name = Peter mary class name = Mary Objekte mit Attributen Prof. Dr. Nikolaus Wulff 13
14 Konstanten Konstanten = finale Werte von Basisdatentypen Konstanten zur Übersetzungszeit werden vom Compiler ausgewertet: final int ANZAHL_MONATE = 12; Konstanten zur Laufzeit sind nach der Initialisierung unveränderlich: final int ZUFALL = (int)(math.random() * 20); final static: nur ein Wert pro Klasse, der seinen Wert nach dem ersten Laden der Klasse nicht mehr ändert. finale Referenzen: können nicht mehr an andere Objekte gebunden werden final Integer NULL = new Integer(0); Prof. Dr. Nikolaus Wulff 14
15 this und super Auf das aktuelle Objekt, auf dem die Methode ausgeführt wird (an das die Nachricht gesendet wurde), kann über das Schlüsselwort this zugegriffen werden. Auf das direkte Elternobjekt kann innerhalb einer Methode mit super zugegriffen werden. Prof. Dr. Nikolaus Wulff 15
16 Überladen von Methoden Eine Nachricht mit mehreren Signaturen und Methodenimplementationen. class SuperWasher { void wash(shirt s) {... void wash(car c) {... void wash(dog d) { SuperWasher sw = new SuperWasher(); Dog adog = new Dog(); sw.wash(adog); Die Methode wird (statisch) beim Senden der Nachricht anhand der Parameter ausgewählt. Prof. Dr. Nikolaus Wulff 16
17 Kein Überladen bei Rückgabewerten Folgende überladene Methoden unterscheiden sich nur im Rückgabewert: void washall() {... int washall() {... I Das geht nicht, denn der Compiler kann für diesen Aufruf nicht bestimmen, welche Methode zu verwenden ist: washall(); Prof. Dr. Nikolaus Wulff 17
18 Default-Konstruktor Konstruktoren dienen zur Erzeugung und Initialisierung von Objekten einer Klasse. Wenn kein Konstruktor angegeben wird, ist implizit ein Default-Konstruktor (ohne Parameter) definiert. class Bird { String name; Bird nc = new Bird(); class Bird { String name; Bird() { super(); Aufruf der Konstruktors der Superklasse Prof. Dr. Nikolaus Wulff 18
19 Konstruktordefinition Konstruktoren können überladen werden und Parameter erhalten, z.b. zur Initialisierung von Attributen: class Worker extends Person { String name; Worker() { Aufruf des Super-Konstruktors ist optional super(); (erfolgt sonst automatisch vom Compiler) name = "Noname"; System.out.println("Erzeuge Noname"); ; Worker(String name) { super(); this.name = name; System.out.println("Erzeuge " + name); Worker noname = new Worker(); Worker peter = new Worker("Peter"); Prof. Dr. Nikolaus Wulff 19
20 Konstruktorverkettung Konstruktoren können sich gegenseitig aufrufen: class Person {... Person(String name, int alter) { this(name);... Konstruktor dieser Klasse mit Parameter String aufrufen Konstruktoren können Konstruktoren der Superklasse aufrufen: class Mitglied extends Person {... Mitglied(String name, int tarifgruppe) { super(name);... Konstruktor der Superklasse mit Parameter String aufrufen Prof. Dr. Nikolaus Wulff 20
21 Konstruktoraufrufe Beim Erzeugen eines Objektes einer Subklasse wird automatisch der Default- Konstruktor der Superklasse aufgerufen. class Person { Person() { System.out.println(" Person"); class Angestellter extends Person { Angestellter() { System.out.println(" Angestellter"); Angestellter peter = new Angestellter(); Ausgabe: Person Angestellter Prof. Dr. Nikolaus Wulff 21
22 Konstruktor mit Argumenten Ein Konstruktor der Superklasse mit Argumenten muss als erstes im Konstruktor explizit (über super) aufgerufen werden. class Person { Person(String name) { System.out.println(" Person " + name); class Angestellter extends Person { Angestellter(String name) { super(name); System.out.println(" Angestellter " + name); Prof. Dr. Nikolaus Wulff 22
23 Initialisierungsreihenfolge class Test { Person p1 = new Person(); Person p2; // null static int zaehler; // 0 3: per Objekt: Attribute initialisieren 1: per Klasse: Attribute initialisieren Test() { p2 = new Person(); 4: per Objekt: Konstruktor ausführen static { zaehler = 9; 2: per Klasse: Init-Code ausführen Prof. Dr. Nikolaus Wulff 23
24 Arrays Arrays sind Objekte. Bei der Deklaration wird keine Größe angegeben, da nur die Referenz abgelegt wird: int a[]; int[] a; Einfache Arrays können direkt erzeugt und initialisiert werden: int [] a = { 1, 2, 3, 4, 5 ; Beim Zugriff auf ein Array wird der Index auf Überschreitung der Array-Größe geprüft: int x = a[3]; int x = a[567]; ArrayIndexOutOfBounds Die Länge des Arrays kann abgefragt werden: a.length Prof. Dr. Nikolaus Wulff 24
25 Arrays von Objekten Arrays von Objekten werden so erzeugt und initialisiert: Person[] a = new Person[20]; for(int i = 0; i < a.length; i++) { a[i] = new Person("Person Nummer " + i); Wie bei einfachen Arrays kann direkt initialisiert werden: Integer[] a = { new Integer(1), new Integer(2), new Integer(3), ; Prof. Dr. Nikolaus Wulff 25
26 Mehrdimensionale Arrays Mehrdimensionale Arrays werden so deklariert: int[] a[]; int[][] a; Die Initialisierung kann auch hier direkt erfolgen: int[][] a = { { 1, 2, 3, { 5, 6 ; Prof. Dr. Nikolaus Wulff 26
27 Zeichenketten Zeichenketten sind unveränderliche Objekte der Klasse String. String-Literale werden durch eingefasst. String-Literale werden automatisch in String-Objekte umgewandelt. Zeichenketten können auch durch Aufruf eines Konstruktors der Klasse String erzeugt werden. String c = "abc"; Außerdem erzeugen viele Methoden Zeichenketten: String c = new String("abc"); Integer i = new Integer(789); String c = i.tostring(); Prof. Dr. Nikolaus Wulff 27
28 Verkettung von Zeichenketten Zeichenketten können durch den Operator + verkettet werden: String c = "Hello " + "World"; Die Verkettung erzeugt ein neues String-Objekt. Werte von Basisdatentypen oder Objekte von Klassen können auch mit Strings verkettet werden. String n = "Die Antwort lautet " + 42; Sie werden dann implizit in Strings umgewandelt, bei Objekten durch den Aufruf der Methode tostring (definiert in der Klasse Object). Prof. Dr. Nikolaus Wulff 28
29 Sichtbarkeitsbereiche Blockstrukturierte Sichtbarkeitsbereiche: Lokale Variablen sind nach dem Schließen des Blocks nicht mehr sichtbar. { // <-- Anfang Scope 1 int x; x = 12; // Nur x ist sichtbar, q gibt es noch nicht { // <-- Anfang Scope 2 int q = 96; x = q + x; // x kann nicht neu definiert werden! // x und q sind verfügbar. // <-- Ende Scope 2 // Nur x ist noch sichtbar // Auf q kann nicht mehr zugegriffen werden. // <-- Ende Scope 1 Prof. Dr. Nikolaus Wulff 29
30 Bedingter Ausdruck Verzweigung, die zu einem Wert evaluiert. int a, b;... b = (a >= 0)? a : -a; Bedingung then else Wird häufig in Projekten verboten, da "schwer zu lesen". Aquivalent ist eine if - else Verzweigung: if (a >= 0) { b = a; else { b = -a; Prof. Dr. Nikolaus Wulff 30
31 Freispeicherverwaltung Java-Objekte werden dynamisch mit new angelegt. Sie werden nie explizit gelöscht oder freigegeben. Die Java-Maschine schaut regelmäßig (oder nach Aufforderung) nach, welche Objekte nicht mehr erreichbar sind (garbage collection) und gibt diese frei. Vor der Freigabe wird bei jedem Objekt die Methode finalize aufgerufen. Prof. Dr. Nikolaus Wulff 31
32 Freispeicherverwaltung (2) Die virtuelle Maschine prüft, ob ein Objekt noch von Außen, d.h. ausgehend von der main Methode noch erreichbar ist. Ausgangspunkt main Speicher der Java Maschine X X Müll X X Prof. Dr. Nikolaus Wulff 32
33 Wiederverwendung Vier Alternativen der Wiederverwendung: Schreibe die Klasse komplett selber (keine echte Wiederverwendung). Kaufe die fertige Klasse und nutze sie so (volle Wiederverwendung). Benutze eine vorhandene Klasse und binde sie in einer Komposition in Deine Klasse ein. Benutze eine vorhandene Klasse, indem Deine Klasse von ihr erbt und bestimmte Attribute/Methoden ergänzt oder überschreibt. Dies gilt sowohl für einzelne Klassen als auch für Rahmenwerke (Frameworks) und Bibliotheken. Prof. Dr. Nikolaus Wulff 33
34 Komposition vs. Vererbung Auto Reifen[] Shape draw() erase() Fenster[] Tuer[] Motor Circle draw() erase() Square draw() erase() Line draw() erase() Komposition: hat ein besteht aus Vererbung: ist ein verschiedene Objekte/Klasse haben gemeinsame Eigenschaften Prof. Dr. Nikolaus Wulff 34
35 Komposition MeineKlasse Vorhandene Klasse Vorhandene Klasse Vorhandene Klasse Vorhandene Klasse... class Auto { Motor motor = new Motor(100); Reifen[] reifen = new Reifen[4];... Ein komponiertes (aggregiertes) Objekt hat Objekte vorhandenener Klassen als Attribute. hat ein oder besteht aus Flexibilität: Die Objekte können zur Laufzeit ausgewechselt werden. Die Komponenten werden meist im Konstruktor übergeben oder erzeugt. Prof. Dr. Nikolaus Wulff 35
36 Vererbung: Motivation class Person{ String name; String vorname; int alter; String getname(){... String getid(){... class Angestellter { String name; String vorname; int alter; int uid; String getname(){... String getid(){... class Mitglied { String name; String vorname; int alter; int tarifgruppe;... String getname(){... String getid(){... int gettarif(){... Subklasse Mitglied tarifgruppe gettarif() Person name... getname() getid() Angestellter uid getid() Superklasse Prof. Dr. Nikolaus Wulff 36
37 Vererbung: Semantik Ist ein Person name vorname alter Die Attribute und Methoden aus der Superklasse sind automatisch auch in der Subklasse vorhanden. getname() getid() Mitglied tarifgruppe gettarif() Angestellter uid getid() Ererbte Methoden können in der Subklasse redefiniert werden, z.b. um eine andere Id zu implementieren (Uxxxxxx). Prof. Dr. Nikolaus Wulff 37
38 Vererbung: Syntax class Person { String name; String vorname; int alter; String getname(){... String getid(){... class Mitglied extends Person { int tarifgruppe; neue Attribute hinzufügen String gettarif(){... neue Methoden hinzufügen class Angestellter extends Person { int uid; String getid(){... redefiniert Person.getId() derselbe Methodenname dieselbe Parameterliste derselbe Rückgabetyp Prof. Dr. Nikolaus Wulff 38
39 Komposition vs. Vererbung Ist ein Auto ein Motor? Motor Auto Auto Reifen[] Fenster[] Tuer[] Falsch! Richtig Reifen[] Fenster[] Tuer[] Motor Ein Motor wird gestartet, ein Auto wird gestartet: Ist deshalb ein Auto so etwas wie ein Motor? Generell: Komposition ist flexibler als Vererbung (Laufzeit vs. Übersetzungszeit). Prof. Dr. Nikolaus Wulff 39
40 Verwendung von final Finale Methoden können in Subklassen nicht überschrieben (redefiniert) werden. final void print() {... private Methoden sind implizit final. finale Parameter: Dem Parameter darf innerhalb des Methodenrumpfes kein neuer Wert zugewiesen werden. void print(final int anzahl) {... Von einer finalen Klassen kann keine Subklasse gebildet werden. final class Angestellter {... Prof. Dr. Nikolaus Wulff 40
41 Polymorphismus Substitutierbarkeit: Wann immer ein Objekt der Superklasse erwartet wird (als Parameter, Empfänger einer Nachricht,...), kann ein Objekt einer Subklasse benutzt werden. Beispiel: Wenn eine Person angezeigt werden soll, kann auch ein Mitglied (Angestellter,...) angezeigt werden. a Circle draw() erase() : Shape a Square a Line Prof. Dr. Nikolaus Wulff 41
42 Upcast void moveshape(shape s) {...; s.draw(); Cast nach oben in der Vererbungshierarchie Shape draw() erase() Circle draw() erase() Square draw() erase() Line draw() erase() Referenz auf das Circle-Objekt Shape s = (Shape)new Circle(); // explizit moveshape(new Circle()); // implizit Prof. Dr. Nikolaus Wulff 42
43 Statisches vs. Dynamisches Binden f()... f()... f() Funktion f Aufrufe statisch an die Funktion gebunden zur Übersetzungszeit shape.draw()... shape.draw()... shape.draw() Dynamischer Binde- Mechanismus zur Laufzeit Circle draw() Square draw() Line draw() Prof. Dr. Nikolaus Wulff 43
44 Abstrakte Klassen Abstrakte Klassen können abstrakte Methoden enthalten, d.h. Methoden ohne Methodenrumpf. Andere Methoden und Daten können definiert sein. abstract class ColouredShape { private Colour c; public abstract void draw(); public Colour getcolour() { return c; public abstract void erase(); Abstrakte Methoden Abstrakten Klassen können nicht instanziert werden. Subklassen müssen die abstrakten Methoden implementieren - oder sie sind selber abstrakt. Prof. Dr. Nikolaus Wulff 44
45 Template Pattern In einer abstrakten Klasse können die abstrakten Methoden von anderen Methoden benutzt werden. abstract class PrintTemplate { protected abstract void printheader(); protected abstract void printfooter(); protected abstract void printcontent(); public void print(){ printheader(); printcontent(); printfooter(); Prof. Dr. Nikolaus Wulff 45
46 Innere Klassen Verschachtelte Klasse einer anderen Klasse. class Person { class Adresse { class Person { public String doit(final int i) { class Adresse {... i Der Klassenname ist versteckt. Objekte der inneren Klasse können auf Attribute, Methoden der umgebenden Klasse zugreifen. Wenn eine innere Klasse innerhalb einer Methode definiert wird, kann sie auf die Parameter und lokalen Variablen der Methode zugreifen, wenn diese final sind. Prof. Dr. Nikolaus Wulff 46
47 Anonyme innere Klassen Innere Klassen könne auch anonym sein. new WindowListener(){ public void onclose() {... class MyWindowListener extends WindowListener { public void onclose() {... new MyWindowListener(); Prof. Dr. Nikolaus Wulff 47
48 Schnittstellen Schnittstellen enthalten keine Implementationen, sondern nur Methodensignaturen und Konstanten (statische, finale Attribute). Methodensignatur : = Rückgabetyp + Methodenname + Parameterliste interface Shape { Point zero = Point(0,0); void erase(); void draw(); automatisch static & final automatisch public Eine Schnittstelle kann von einer oder mehreren Schnittstellen erben. interface ColouredShape extends Shape, Colour {... Prof. Dr. Nikolaus Wulff 48
49 Schnittstellen und Implementierung Eine Schnittstelle legt ein Protokoll (verstandene Nachrichten) fest. Eine Klasse kann eine oder mehrere Schnittstellen implementieren. Schnittstellen class Circle implements Shape, Persistent { pivate int radius; public void erase() {... public String draw() { aus Shape... public int getradius(){... Prof. Dr. Nikolaus Wulff 49
50 Übung Erstellen und testen (wie?) Sie den Code für das folgende Klassenmodell: painter + Painter + Paintable (from painter) Painter paintables : Paintable[] drawall() addpaintable() 0..* <<Interface>> Paintable (from painter) draw() Achtung: zwei verschieden Pakete für Painter und alle Shapes! (from sha pes) type : String Shape Shape(type : String) <<abstract>> draw() : void shapes + Shape + Circle + Square + Line Circle (from shapes) Square (from shapes) Line (from shapes) Prof. Dr. Nikolaus Wulff 50
51 Tip Schreiben Sie eine Main Klasse, die den Painter mit Shapes initialisiert und dann die drawall Methode aufruft. Die draw Methode der Shapes gibt einfach per System.out.println den Typ aus. Die Zeichenobjekte werden in einem Array verwaltet, dieses muss dynamisch wachsen! Verwenden Sie ein temporäres Hilfsarray. (Später lernen Sie Collection Klassen kennen, die uns genau diese Arbeit abnehmen...) Prof. Dr. Nikolaus Wulff 51
52 Übung Erstellen Sie eine Dokumentation der Klassen: %SRC%>javadoc -d../doc * Navigieren Sie in der Klassendokumentation und passen Sie die Kommentare in Ihren Methoden und Klassen an. Erkunden Sie die verschiedenen Möglichkeiten, die javadoc bietet (javadoc -? bietet Hilfe) Javadoc läßt sich auch als Tool in Eclipse integrieren: Run External Tools External Tools... Programm New Location: %JAVA_HOME%\bin\javadoc.exe Working Dir: ${project_loc\src Arguments: -d ${project_loc\doc * Prof. Dr. Nikolaus Wulff 52
53 Package Übersicht Prof. Dr. Nikolaus Wulff 53
Java Schulung. Objektorientierte Programmierung in Java Teil III: Java Klassen und Objekte. Prof. Dr. Nikolaus Wulff
Java Schulung Objektorientierte Programmierung in Java Teil III: Java Klassen und Objekte Prof. Dr. Nikolaus Wulff Referenzvariablen Referenzvariablen verweisen auf (unbenannte) Objekte im Speicher. Uninitialisierte
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
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
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/
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
MehrJava Kurs für Anfänger Einheit 5 Methoden
Java Kurs für Anfänger Einheit 5 Methoden Ludwig-Maximilians-Universität München (Institut für Informatik: Programmierung und Softwaretechnik von Prof.Wirsing) 22. Juni 2009 Inhaltsverzeichnis Methoden
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:
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
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
MehrVorkurs C++ Programmierung
Vorkurs C++ Programmierung Klassen Letzte Stunde Speicherverwaltung automatische Speicherverwaltung auf dem Stack dynamische Speicherverwaltung auf dem Heap new/new[] und delete/delete[] Speicherklassen:
MehrJava Kurs für Anfänger Einheit 4 Klassen und Objekte
Java Kurs für Anfänger Einheit 4 Klassen und Ludwig-Maximilians-Universität München (Institut für Informatik: Programmierung und Softwaretechnik von Prof.Wirsing) 13. Juni 2009 Inhaltsverzeichnis klasse
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
MehrEinführung in die Java- Programmierung
Einführung in die Java- Programmierung Dr. Volker Riediger Tassilo Horn riediger horn@uni-koblenz.de WiSe 2012/13 1 Wichtig... Mittags keine Pommes... Praktikum A 230 C 207 (Madeleine + Esma) F 112 F 113
MehrInnere Klassen in Java
Innere Klassen in Java SS 2012 Prof. Dr. Margarita Esponda Innere Klassen Klassen- oder Interfacedefinitionen können zur besseren Strukturierung von Programmen verschachtelt werden Eine "Inner Class" wird
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
MehrVererbung & Schnittstellen in C#
Vererbung & Schnittstellen in C# Inhaltsübersicht - Vorüberlegung - Vererbung - Schnittstellenklassen - Zusammenfassung 1 Vorüberlegung Wozu benötigt man Vererbung überhaubt? 1.Um Zeit zu sparen! Verwendung
Mehr5 DATEN. 5.1. Variablen. Variablen können beliebige Werte zugewiesen und im Gegensatz zu
Daten Makro + VBA effektiv 5 DATEN 5.1. Variablen Variablen können beliebige Werte zugewiesen und im Gegensatz zu Konstanten jederzeit im Programm verändert werden. Als Variablen können beliebige Zeichenketten
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,
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,
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,
MehrKlassenbeziehungen & Vererbung
Klassenbeziehungen & Vererbung VL Objektorientierte Programmierung Raimund Kirner teilweise nach Folien von Franz Puntigam, TU Wien Überblick Arten von Klassenbeziehungen Untertypen versus Vererbung in
MehrJava Einführung Abstrakte Klassen und Interfaces
Java Einführung Abstrakte Klassen und Interfaces Interface Interface bieten in Java ist die Möglichkeit, einheitliche Schnittstelle für Klassen zu definieren, die später oder/und durch andere Programmierer
MehrComputeranwendung und Programmierung (CuP)
Computeranwendung und Programmierung (CuP) VO: Peter Auer (Informationstechnologie) UE: Norbert Seifter (Angewandet Mathematik) Organisatorisches (Vorlesung) Vorlesungszeiten Montag 11:15 12:45 Freitag
MehrÜbung 1 mit C# 6.0 MATTHIAS RONCORONI
Übung 1 mit C# 6.0 MATTHIAS RONCORONI Inhalt 2 1. Überblick über C# 2. Lösung der Übung 1 3. Code 4. Demo C# allgemein 3 aktuell: C# 6.0 mit.net-framework 4.6: Multiparadigmatisch (Strukturiert, Objektorientiert,
MehrSoftware Engineering. Zur Architektur der Applikation Data Repository. Franz-Josef Elmer, Universität Basel, HS 2015
Software Engineering Zur Architektur der Applikation Data Repository Franz-Josef Elmer, Universität Basel, HS 2015 Software Engineering: Mit acht bewährten Praktiken zu gutem Code 2 Schichtarchitektur
MehrAlgorithmen und Datenstrukturen
Algorithmen und Datenstrukturen Tafelübung 04 Referenzen, Overloading, Klassen(hierarchien) Clemens Lang T2 18. Mai 2010 14:00 16:00, 00.152 Tafelübung zu AuD 1/13 Organisatorisches Nächster Übungstermin
Mehr5. Abstrakte Klassen. Beispiel (3) Abstrakte Klasse. Beispiel (2) Angenommen, wir wollen die folgende Klassenhierarchie implementieren:
5. Abstrakte Klassen Beispiel 5. Abstrakte Klassen 5. Abstrakte Klassen Beispiel Beispiel (3) Angenommen, wir wollen die folgende Klassenhierarchie implementieren: Probleme des Implementierungsvorschlags:
MehrFachgebiet Informationssysteme Prof. Dr.-Ing. N. Fuhr. Programmierung Prof. Dr.-Ing. Nobert Fuhr. Übungsblatt Nr. 6
Gudrun Fischer Sascha Kriewel programmierung@is.informatik.uni-duisburg.de Anmeldung zur Klausur! Übungsblatt Nr. 6 Um an der Klausur teilzunehmen, müssen sich Studierende der angewandten Informatik in
MehrÜbungen zu Einführung in die Informatik: Programmierung und Software-Entwicklung: Lösungsvorschlag
Ludwig-Maximilians-Universität München WS 2015/16 Institut für Informatik Übungsblatt 9 Prof. Dr. R. Hennicker, A. Klarl Übungen zu Einführung in die Informatik: Programmierung und Software-Entwicklung:
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
Mehr188.154 Einführung in die Programmierung für Wirtschaftsinformatik
Beispiel 1 Vererbung (Liste) Gegeben sind die beiden Klassen ListNode und PersonNode. 188.154 Einführung in die Programmierung für Wirtschaftsinformatik Wiederholung, Prüfungsvorbereitung Monika Lanzenberger
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
MehrGebundene Typparameter
Gebundene Typparameter interface StringHashable { String hashcode(); class StringHashMap { public void put (Key k, Value v) { String hash = k.hashcode();...... Objektorientierte
Mehr5.5.8 Öffentliche und private Eigenschaften
5.5.8 Öffentliche und private Eigenschaften Schnittstellen vs. Implementierungen: Schnittstelle einer Klasse beschreibt, was eine Klasse leistet und wie sie benutzt werden kann, ohne dass ihre Implementierung
MehrZählen von Objekten einer bestimmten Klasse
Zählen von Objekten einer bestimmten Klasse Ziel, Inhalt Zur Übung versuchen wir eine Klasse zu schreiben, mit der es möglich ist Objekte einer bestimmten Klasse zu zählen. Wir werden den ++ und den --
MehrSoftware Engineering Klassendiagramme Einführung
Software Engineering Klassendiagramme Einführung Prof. Adrian A. Müller, PMP, PSM 1, CSM Fachbereich Informatik und Mikrosystemtechnik 1 Aufgabe Erstellen Sie eine Klasse Person in Java. Jede Person verfügt
MehrStudentische Lösung zum Übungsblatt Nr. 7
Studentische Lösung zum Übungsblatt Nr. 7 Aufgabe 1) Dynamische Warteschlange public class UltimateOrderQueue private Order[] inhalt; private int hinten; // zeigt auf erstes freies Element private int
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
Mehr5. Abstrakte Klassen
5. Abstrakte Klassen Beispiel 5. Abstrakte Klassen Angenommen, wir wollen die folgende Klassenhierarchie implementieren: Vogel Amsel Drossel Fink Peter Becker, Programiersprache Java FH Bonn-Rhein-Sieg,
MehrInstitut für Programmierung und Reaktive Systeme 25. August 2014. Programmier-Labor. 04. + 05. Übungsblatt. int binarysearch(int[] a, int x),
Technische Universität Braunschweig Dr. Werner Struckmann Institut für Programmierung und Reaktive Systeme 25. August 2014 Programmier-Labor 04. + 05. Übungsblatt Aufgabe 21: a) Schreiben Sie eine Methode
MehrEinführung in Javadoc
Einführung in Javadoc Johannes Rinn http://java.sun.com/j2se/javadoc Was ist Javadoc? Javadoc ist ein Werkzeug, dass eine standardisierte Dokumentation für die Programmiersprache Java unterstützt. Vorteil:
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
MehrObjektorientierte Programmierung
Universität der Bundeswehr Fakultät für Informatik Institut 2 Priv.-Doz. Dr. Lothar Schmitz FT 2006 Zusatzaufgaben Lösungsvorschlag Objektorientierte Programmierung Lösung 22 (Java und UML-Klassendiagramm)
MehrTypumwandlungen bei Referenztypen
Typumwandlungen bei Referenztypen Genau wie es bei einfachen Typen Typumwandlungen gibt, gibt es auch bei Referenztypen Umwandlungen von einem Referenztypen in einen anderen Referenztypen, die wie bei
MehrModellierung und Programmierung 1
Modellierung und Programmierung 1 Prof. Dr. Sonja Prohaska Computational EvoDevo Group Institut für Informatik Universität Leipzig 19. November 2015 Gültigkeitsbereich (Scope) von Variablen { int m; {
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
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-
MehrJavakurs 2013 Objektorientierung
Javakurs 2013 Objektorientierung Objektorientierte Programmierung I Armelle Vérité 7 März 2013 Technische Universität Berlin This work is licensed under the Creative Commons Attribution-ShareAlike 3.0
MehrFactory Method (Virtual Constructor)
Factory Method (Virtual Constructor) Zweck: Definition einer Schnittstelle für Objekterzeugung Anwendungsgebiete: Klasse neuer Objekte bei Objekterzeugung unbekannt Unterklassen sollen Klasse neuer Objekte
MehrProgrammieren in C. Macros, Funktionen und modulare Programmstruktur. Prof. Dr. Nikolaus Wulff
Programmieren in C Macros, Funktionen und modulare Programmstruktur Prof. Dr. Nikolaus Wulff Der C Präprozessor Vor einem Compile Lauf werden alle Präprozessor Kommandos/Makros ausgewertet. Diese sind
MehrMediator 9 - Lernprogramm
Mediator 9 - Lernprogramm Ein Lernprogramm mit Mediator erstellen Mediator 9 bietet viele Möglichkeiten, CBT-Module (Computer Based Training = Computerunterstütztes Lernen) zu erstellen, z. B. Drag & Drop
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
MehrClient-Server-Beziehungen
Client-Server-Beziehungen Server bietet Dienste an, Client nutzt Dienste Objekt ist gleichzeitig Client und Server Vertrag zwischen Client und Server: Client erfüllt Vorbedingungen eines Dienstes Server
MehrErweiterung der Aufgabe. Die Notenberechnung soll nicht nur für einen Schüler, sondern für bis zu 35 Schüler gehen:
VBA Programmierung mit Excel Schleifen 1/6 Erweiterung der Aufgabe Die Notenberechnung soll nicht nur für einen Schüler, sondern für bis zu 35 Schüler gehen: Es müssen also 11 (B L) x 35 = 385 Zellen berücksichtigt
Mehr5.4 Klassen und Objekte
5.4 Klassen und Objekte Zusammenfassung: Projekt Figuren und Zeichner Figuren stellt Basisklassen für geometrische Figuren zur Verfügung Zeichner bietet eine übergeordnete Klasse Zeichner, welche die Dienstleistungen
MehrJava Einführung Umsetzung von Beziehungen zwischen Klassen. Kapitel 7
Java Einführung Umsetzung von Beziehungen zwischen Klassen Kapitel 7 Inhalt Wiederholung: Klassendiagramm in UML Java-Umsetzung von Generalisierung Komposition Assoziationen 2 Das Klassendiagramm Zweck
MehrGrundlagen von Python
Einführung in Python Grundlagen von Python Felix Döring, Felix Wittwer November 17, 2015 Scriptcharakter Programmierparadigmen Imperatives Programmieren Das Scoping Problem Objektorientiertes Programmieren
MehrDeklarationen in C. Prof. Dr. Margarita Esponda
Deklarationen in C 1 Deklarationen Deklarationen spielen eine zentrale Rolle in der C-Programmiersprache. Deklarationen Variablen Funktionen Die Deklarationen von Variablen und Funktionen haben viele Gemeinsamkeiten.
MehrDesign by Contract with JML
Thema: Design by Contract with JML Proseminar: Assertions Verfasser: Literatur: Betreuer: Natalya Moriz Gary T.Leavens and Yoonsik Cheon: Design by Contract with JML Prof. Dr. Heike Wehrheim 1 Inhalt DBC
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
MehrOperationalisierbare Qualitätskriterien für die Programmierung mit Erfahrungen aus PRÜ1 und PRÜ2
Operationalisierbare Qualitätskriterien für die Programmierung mit Erfahrungen aus PRÜ1 und PRÜ2 von Christoph Knabe http://public.beuth-hochschule.de/~knabe/ Ch. Knabe: Operationalisierbare Qualitätskriterien
MehrPrinzipien Objektorientierter Programmierung
Prinzipien Objektorientierter Programmierung Valerian Wintner Inhaltsverzeichnis 1 Vorwort 1 2 Kapselung 1 3 Polymorphie 2 3.1 Dynamische Polymorphie...................... 2 3.2 Statische Polymorphie........................
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,
MehrInstitut für Programmierung und Reaktive Systeme 26. April 2013. Programmieren II. 10. Übungsblatt
Technische Universität Braunschweig Dr. Werner Struckmann Institut für Programmierung und Reaktive Systeme 26. April 2013 Programmieren II 10. Übungsblatt Hinweis: Insgesamt werden in diesem Semester fünf
MehrEinführung in die Java- Programmierung
Einführung in die Java- Programmierung Dr. Volker Riediger Tassilo Horn riediger horn@uni-koblenz.de WiSe 2012/13 1 Wichtig... Mittags Pommes... Praktikum A 230 C 207 (Madeleine) F 112 F 113 (Kevin) E
MehrMORE Profile. Pass- und Lizenzverwaltungssystem. Stand: 19.02.2014 MORE Projects GmbH
MORE Profile Pass- und Lizenzverwaltungssystem erstellt von: Thorsten Schumann erreichbar unter: thorsten.schumann@more-projects.de Stand: MORE Projects GmbH Einführung Die in More Profile integrierte
MehrWintersemester Maschinenbau und Kunststofftechnik. Informatik. Tobias Wolf http://informatik.swoke.de. Seite 1 von 22
Kapitel 19 Vererbung, UML Seite 1 von 22 Vererbung - Neben der Datenabstraktion und der Datenkapselung ist die Vererbung ein weiteres Merkmal der OOP. - Durch Vererbung werden die Methoden und die Eigenschaften
MehrProgrammierung in C. Grundlagen. Stefan Kallerhoff
Programmierung in C Grundlagen Stefan Kallerhoff Vorstellungsrunde Name Hobby/Beruf Schon mal was programmiert? Erwartungen an den Kurs Lieblingstier Für zu Hause C-Buch online: http://openbook.rheinwerk-verlag.de/c_von_a_bis_z/
MehrEinfÅhrung in die objektorientiere Programmierung (OOP) unter Delphi 6.0. EDV Kurs 13/2
EinfÅhrung in die objektorientiere Programmierung (OOP) unter Delphi 6.0 EDV Kurs 13/2 Inhaltsverzeichnis 1 Objekte... 1 2 Klassen... 3 2.1 Beziehungen zwischen Klassen... 4 2.1.1 Vererbung... 4 2.1.2
MehrFolge 18 - Vererbung
Workshop Folge 18 - Vererbung 18.1 Ein einfacher Fall der Vererbung Schritt 1 - Vorbereitungen Besorgen Sie sich - vielleicht aus einer der Übungen der Folge 17 - ein fertiges und lauffähiges Listenprojekt,
MehrProf. Dr. Uwe Schmidt. 21. August 2007. Aufgaben zur Klausur Objektorientierte Programmierung im SS 2007 (IA 252)
Prof. Dr. Uwe Schmidt 21. August 2007 Aufgaben zur Klausur Objektorientierte Programmierung im SS 2007 (IA 252) Zeit: 75 Minuten erlaubte Hilfsmittel: keine Bitte tragen Sie Ihre Antworten und fertigen
MehrApplet Firewall und Freigabe der Objekte
Hauptseminar Applet Firewall und Freigabe der Objekte Nachweis von Sicherheitseigenschaften für JavaCard Jin Zhou Ein Überblick über diesen Vortrag Applet Firewall Kontext JCRE Entry Point Objekt Shareable
MehrEinfache Arrays. Annabelle Klarl. Einführung in die Informatik Programmierung und Softwareentwicklung
Annabelle Klarl Zentralübung zur Vorlesung Einführung in die Informatik: http://www.pst.ifi.lmu.de/lehre/wise-13-14/infoeinf WS13/14 Action required now 1. Smartphone: installiere die App "socrative student"
MehrU08 Entwurfsmuster (II)
U08 Entwurfsmuster (II) Inhalt der Übung Diskussion und Implementierung von Entwurfsmustern Übungsaufgaben Aufgabe 1 (Queue) Gegeben ist das folgende Analysemodell einer Warteschlange (Queue): Eine Warteschlange
MehrEnigmail Konfiguration
Enigmail Konfiguration 11.06.2006 Steffen.Teubner@Arcor.de Enigmail ist in der Grundkonfiguration so eingestellt, dass alles funktioniert ohne weitere Einstellungen vornehmen zu müssen. Für alle, die es
Mehr2. Semester, 2. Prüfung, Lösung
2. Semester, 2. Prüfung, Lösung Name Die gesamte Prüfung bezieht sich auf die Programmierung in C++! Prüfungsdauer: 90 Minuten Mit Kugelschreiber oder Tinte schreiben Lösungen können direkt auf die Aufgabenblätter
MehrWorkshop 6. Einführung in die objektorientierte Programmierung. Teil: Java mit BlueJ
IBBB 2010 Workshop 6 Einführung in die objektorientierte Programmierung Dozenten: J. Penon, J. Frank, A. Schindler Teil: Java mit BlueJ Dozent: A. Schindler Einf. i. d. OOP - Java u. BlueJ / A. Schindler
MehrObjektorientierung: Klassen und Objekte
Vorlesung und Übung Universität Paderborn Wintersemester 2015/2016 Dr. Peter Pfahler Objektorientierung: Klassen und Objekte EWS, WS 2015/16, Pfahler L-1 Objektorientierung behandelt in "Einführung in
Mehr1 Vom Problem zum Programm
Hintergrundinformationen zur Vorlesung GRUNDLAGEN DER INFORMATIK I Studiengang Elektrotechnik WS 02/03 AG Betriebssysteme FB3 Kirsten Berkenkötter 1 Vom Problem zum Programm Aufgabenstellung analysieren
MehrAbschnitt 9: Schnittstellen: Interfaces
Abschnitt 9: Schnittstellen: Interfaces 9. Schnittstellen: Interfaces 9.1 Die Idee der Schnittstellen 9.2 Schnittstellen in Java 9.3 Marker-Interfaces 9.4 Interfaces und Hilfsklassen 9.5 Zusammenfassung
MehrDer lokale und verteilte Fall
Lokale Beans Der lokale und verteilte Fall RemoteClient Lokaler Client (JSP) RemoteSession/Entity-Bean Lokale Session/Entity-Bean 2 Lokale Beans Die bisher vorgestellten EJBswaren immer in der Lage auf
MehrEinführung in die. objektorientierte Programmierung
Einführung in die objektorientierte Programmierung Teil 3 Vererbung Modul WI111: Objektorientierte Programmierung Fachrichtung Wirtschaftsinformatik Prof. Dr. Gert Faustmann Fachbereich Berufsakademie
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:
MehrProgrammierkurs Java
Programmierkurs Java Konstruktor, Statische Methoden Packages Prof. Dr. Stefan Fischer Institut für Telematik, Universität zu Lübeck http://www.itm.uni-luebeck.de/people/fischer Initialisierung von Datenstrukturen
MehrMCRServlet Table of contents
Table of contents 1 Das Zusammenspiel der Servlets mit dem MCRServlet... 2 1 Das Zusammenspiel der Servlets mit dem MCRServlet Als übergeordnetes Servlet mit einigen grundlegenden Funktionalitäten dient
MehrDie Programmiersprache C99: Zusammenfassung
Die Programmiersprache C99: Zusammenfassung Jörn Loviscach Versionsstand: 7. Dezember 2010, 19:30 Die nummerierten Felder sind absichtlich leer, zum Ausfüllen in der Vorlesung. Videos dazu: http://www.youtube.com/joernloviscach
MehrTesten mit JUnit. Motivation
Test First Design for Test in Eclipse (eigentlich: ) zu einer Klasse Beispiel zur Demonstration Ergänzungen Test First "Immer dann, wenn Du in Versuchung kommst, etwas wie eine print- Anweisung oder einen
MehrObjektorientierte Programmierung für Anfänger am Beispiel PHP
Objektorientierte Programmierung für Anfänger am Beispiel PHP Johannes Mittendorfer http://jmittendorfer.hostingsociety.com 19. August 2012 Abstract Dieses Dokument soll die Vorteile der objektorientierten
MehrDrei-Schichten-Architektur. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 16: 3-Schichten-Architektur 1 Fachkonzept - GUI
Universität Osnabrück Drei-Schichten-Architektur 3 - Objektorientierte Programmierung in Java Vorlesung 6: 3-Schichten-Architektur Fachkonzept - GUI SS 2005 Prof. Dr. F.M. Thiesing, FH Dortmund Ein großer
MehrStep by Step Softwareverteilung unter Novell. von Christian Bartl
Step by Step Softwareverteilung unter Novell von Softwareverteilung unter Novell 1) Starten von einfachen *.EXE-Dateien: Starten sie ConsoleOne Erstellen sie eine eigene Organisationseinheit für ihre Anwendungen
MehrÜbung Grundlagen der Programmierung. Übung 05: Arrays. Abgabetermin: xx.xx.xxxx. Java-Programm Testplan Testergebnisse
Übung 05: Arrays Abgabetermin: xx.xx.xxxx Name: Name, Vorname Matrikelnummer: 0XXXXXX Gruppe: G1 (Prähofer) G2 (Wolfinger) G3 (Wolfinger) Aufgabe Punkte gelöst abzugeben schriftlich abzugeben elektronisch
MehrC# im Vergleich zu Java
C# im Vergleich zu Java Serhad Ilgün Seminar Universität Dortmund SS 03 Gliederung Entstehung von C# und Java Überblick von C# und Java Unterschiede und Gemeinsamkeiten Zusammenfassung und Ausblick Entstehung
MehrWPF Steuerelemente Listbox, ComboBox, ListView,
WPF Steuerelemente Listbox, ComboBox, ListView, Dr. Beatrice Amrhein Überblick Einführung Listen ComboBox Tabellen 2 Einführung 3 Listen- und Tabellen-Elemente Listen und Tabellen-Elemente sind Steuerelemente,
MehrDelegatesund Ereignisse
Delegatesund Ereignisse «Delegierter» Methoden Schablone Funktionszeiger Dr. Beatrice Amrhein Überblick Definition eines Delegat Einfache Delegate Beispiele von Delegat-Anwendungen Definition eines Ereignisses
MehrProgrammieren I. Strategie zum Entwurf von Klassen. Beispiele. Design von Klassen. Dr. Klaus Höppner. Beispiel: Bibliothek
Programmieren I Dr. Klaus Höppner Hochschule Darmstadt Wintersemester 2008/2009 1 / 22 2 / 22 Strategie zum Entwurf von Klassen Beispiele Objektorientierte Sichtweise: Mit welchen Objekten habe ich es
MehrFHZ. K20 Arrays. Lernziele. Hochschule Technik+Architektur Luzern Abteilung Informatik, Fach Programmieren. Inhalt
Inhalt 1. Einführung 2. Array-Komponenten von elementaren Datentypen 3. Array-Komponenten sind Objekte 4. Array als Parameter 5. Kopieren von Arrays 6. Beispiel 7. Vector versus Array Folie 1 Lernziele
Mehr13 OOP MIT DELPHI. Records und Klassen Ein Vergleich
13 OOP MIT DELPHI Delphi war früher "Object Pascal". Dieser Name impliziert eine Funktionalität, welche in der Welt der Programmierung nicht mehr wegzudenken ist: die objektorientierte Programmierung,
MehrDer Aufruf von DM_in_Euro 1.40 sollte die Ausgabe 1.40 DM = 0.51129 Euro ergeben.
Aufgabe 1.30 : Schreibe ein Programm DM_in_Euro.java zur Umrechnung eines DM-Betrags in Euro unter Verwendung einer Konstanten für den Umrechnungsfaktor. Das Programm soll den DM-Betrag als Parameter verarbeiten.
MehrFachdidaktik der Informatik 18.12.08 Jörg Depner, Kathrin Gaißer
Fachdidaktik der Informatik 18.12.08 Jörg Depner, Kathrin Gaißer Klassendiagramme Ein Klassendiagramm dient in der objektorientierten Softwareentwicklung zur Darstellung von Klassen und den Beziehungen,
MehrDas erste Programm soll einen Text zum Bildschirm schicken. Es kann mit jedem beliebigen Texteditor erstellt werden.
Einfache Ein- und Ausgabe mit Java 1. Hallo-Welt! Das erste Programm soll einen Text zum Bildschirm schicken. Es kann mit jedem beliebigen Texteditor erstellt werden. /** Die Klasse hello sendet einen
Mehr