Objektorientiertes Programmieren. Agenda. Programmierung in Java. 3. Semester ETM Übung
|
|
- Horst Schuler
- vor 8 Jahren
- Abrufe
Transkript
1 Objektorientiertes Programmieren Programmierung in Java 3. Semester ETM Übung Agenda Organisatorisches Inhalte der Lehrveranstaltung Erstkontakt JAVA DI Elmar Krajnc 2 Elmar Krajnc FB Programmierung und Softwareengineering elmar.krajnc@fh-joanneum.at Termin nach Vereinbarung DI Elmar Krajnc 3 1
2 Organisatorisches LV Ablauf Vortrag Mitarbeit, Übungen praktische Arbeit Abgaben Beurteilung DI Elmar Krajnc 4 Beurteilung Abgabe von Übungsbeispielen 4 Abgaben (80%) Abgabe am Elearning Server Keine Plagiate (Fremde Packages oder Codeteile kennzeichnen) Mitarbeit Mitarbeit in der LV, Wiederholung, Klausur (20%) Prüfung Nur wenn LV negativ bewertet werden muss DI Elmar Krajnc 5 Inhalte der Lehrveranstaltung Kennenlernen von Java Grundlagen der Objektorientierung Klassen Kapselung Vererbung Polymorphie Vertiefung der Java Kenntnisse Packages Exceptions IO Collections Deploying DI Elmar Krajnc 6 2
3 Verweise Bücher Gosling, Arnold, Holmes; The Java Programming Language Campione, Walrath, Huml; The Java Tutorial Krüger; Handbuch der Java Programmierung Internet DI Elmar Krajnc 7 Was ist Java Java ist Programmiersprache JAVA wurde von SUN entwickelt und erstmals 1995 vorgestellt. Bekannt durch Einbindung in Web-Browsern (Applets) JAVA Javascript Wichtigste Eigenschaften Plattformunabhängig Objektorientiert Robust Portierbar Ähnliche Syntax wie C oder C++ Umfangreiche Klassenbibliothek DI Elmar Krajnc 8 Was brauchen man um Java-Programme zu erstellen? JAVA Development Kit (JDK) Enthält Software zur Erstellung von Java-Programmen: Java Packages mit entsprechenden Klassen Tools Java Compiler Java Runtime Environment Javadoc Tool Debugger Online-Dokumentation Beschreibung des Application Program Interface (API) Beschreibt Klassen, Eigenschaften und Methoden DI Elmar Krajnc 9 3
4 JDK Seit Version 1.2 (JAVA 2) gibt es verschieden Editionen von JDKs: Java SE - Java Standard Edition Standardklassen wie I/O, GUI, Collections, Java EE - Java Enterprise Edition Erweitert Java SE für serverseitige Programmierung Bsp: Servlets, Webapplication, EJB,.. Java ME - Java Micro Edition API für mobile Geräte Bsp.: Midlets, Handy-Spiel, Momentane Version Java SE (Online-Doku) DI Elmar Krajnc 10 Umgebungsvariablen JAVA_HOME = Verzeichnis des JDK z.b.: c:\programme\java JAVA_HOME ist meist nicht zwingend zu setzen PATH Variable muss um das /bin-verzeichnis des JDK erweitert werden <bisheriger Path>;c:\Programme\java\javaSE6\bin Bsp.: Set path=%java_home%\bin;%path% (Windows) PATH=/usr/java/javaSE6/bin:$PATH (LINUX) CLASSPATH Gibt an, in welchen weiteren Verzeichnissen und jar-archiven (neben dem aktuellen Verzeichnis und dem JDK) nach class-files und packages gesucht werden soll. Nur im Spezialfall zu setzen DI Elmar Krajnc 11 Wie funktioniert JAVA? Sourcecode in einem Editor schreiben MyProgram.java Sourcecode kompilieren javac MyProgram.java Es ensteht Bytecode MyProgram.class Bytecode ist plattformunabhängig und wird von der Java Virtual Machine (JVM) interpretiert java MyProgram Das Programm wird ausgeführt DI Elmar Krajnc 12 4
5 Wie funktioniert JAVA? Wie funktioniert JAVA? JVMs sind für unterschiedlichste Betriebssysteme verfügbar. Die JVM ist Teil des Java Runtime Environment (JRE), welches wiederum Bestandteil des JDK ist. DI Elmar Krajnc 13 Erstes Java-Programm /** * Klasse, die einen Text auf der Konsole ausgibt */ public class HelloWorld { public static void main (String[] args) { System.out.println("Hello World!"); //main //HelloWorld Datei speichern als HelloWorld.java (MUSS gleich lauten wie die Klasse, Achtung Case-sensitive!) javac HelloWorld.java (erzeugt HelloWorld.class) java HelloWorld (Aufruf immer OHNE.class) DI Elmar Krajnc 14 Übungsbeispiel Erstellen von HelloWorld in Java Kompilieren Ausführen DI Elmar Krajnc 15 5
6 Kommentare in JAVA // Kommentar Compiler ignoriert den Text von // bis zum Ende der Zeile Keine Berücksichtigung vom Javadoc-Tool /* Kommentar */ Compiler ignoriert Text von /* bis */ Keine Berücksichtigung vom Javadoc-Tool /** Kommentar */ Compiler ignoriert Text von /** bis */ Javadoc-Tool nutzt diesen Text um automatische Dokumentation zu generieren Javadoc-Doku: DI Elmar Krajnc 16 Dokumentieren mit javadoc spezielle Kommentare zw. /**... */ einfügen auch HTML-Tags möglich möglich Bsp.: /** Programm Hallo gibt <i>hallo Welt</i> #main */ Aufruf: javadoc Hallo.java erzeugt Hallo.html DI Elmar Krajnc 17 Online Dokumentation (API) Klassenhierarchie Suche nach bestimmten Klassen Zeigt zugehörige Konstruktoren, Methoden, Eigenschaftsfelder Index aller Felder und Methoden Wenn Klasse nicht bekannt ist Suche nach Felder und Methoden Verlinkung zur detailierten Beschreibung von Klassen, Methoden, DI Elmar Krajnc 18 6
7 Java-API API-Dokumentation packages Methoden etc. Klassen DI Elmar Krajnc 19 Namenskonventionen Klassen und Interfaces Beginnen mit Großbuchstaben Substantiv Bsp.: HelloWorld, Database, Image Konstante Beginnen mit Großbuchstaben und bestehen aus Großbuchstaben, Underline und Ziffern Bsp.: MAX_USERS Objekte, Methoden, Variablen, Packages Beginnen mit Kleinbuchstaben und bestehen aus Klein- und Großbuchstaben sowie Ziffern Methoden oft als Verb Bsp.: getvalue, openfile, isempty DI Elmar Krajnc 20 Sprachgrundlagen Datentypen und Anweisungen 7
8 Datentypen Primitive Datentypen Logische Typ boolean (true;false) 1 Byte (b=true;) Zeichentyp char (alle Unicode-Zeichen) 2 Byte (c='a';) Ganzzahlige (integrale) Typen byte 1 byte (b=123;) short 2 Byte (s=-1234;) int 4 Byte (i=5678;) long 8 Byte (l=-34567l;) Fließkommazahlen float 4 Byte (f=234.67f;) double 8 Byte (d= ;) Objekt-Typen Zeichenketten String (s="abcd";) Alle als Klassen definierten Typen DI Elmar Krajnc 22 Deklaration und Wertzuweisung von Variablen Deklaration (Speicherreservierung) typ name; (int i;) typ name1, name2, name3 (char c1, c2, c3;) Wertzuweisung name = wert; (i = -35;) Wertzuweisung mit Typumwandlung (Casting ( Casting) name = (typ) wert; (c = (char) 7;) Deklaration mit Anfangswertzuweisung typ name = wert; (boolean b = false;) Achtung: Die Deklaration gilt immer nur innerhalb des Bereiches (Klasse, Methode, Block) in dem sie steht. DI Elmar Krajnc 23 Garbage Collector Um die Rückgabe R von Speicher braucht man sich als JAVA-Programmierer nicht zu kümmern. k Das übernimmt der Garbage Collector! GC ist ein Hintergrundprozess, der Speicherplatz von nicht referenzierten Objekten freigibt. Achtung der Zeitpunkt der Rückgabe R ist undefiniert! DI Elmar Krajnc 24 8
9 Anweisung und Block Jede Anweisung wird mit einem Strichpunkt (;) beendet. Ein Block ist ein Zusammenfassung von Anweisungen, die hintereinander ausgeführt werden. Deklarationen von Variablen innerhalb eines Blockes sind auch nur innerhalb dieses Blockes gültig g und sichtbar! Syntax { Anweisung1; Anweisung2; DI Elmar Krajnc 25 Verzweigung (if ( else) Verzweigungen dienen dazu, bestimmte Programmteile nur beim Eintreten bestimmter Bedingungen auszuführen. Syntax if (logischer Ausdruck) { else { Anweisung1; Anweisung2; Bsp.: if (geschlecht==0) { System.out.println("männlich"); else { System.out.println("weiblich"); Anweisung3; Anweisung4; DI Elmar Krajnc 26 Schleifen Wie in C gibt es auch in JAVA kopf- bzw. fußgesteuerte Schleifen sowie Zählschleifen. while-schleife (kopfgesteuert) while (log. Ausdruck) { Anweisung1; do-schleife (fußgesteuert) do { Anweisung1; while (log. Ausdruck); Bsp.: while (level < 10 ) { Game.play(); oder do { Game.play(); while (level < 10 ); DI Elmar Krajnc 27 9
10 Schleifen Wie in C gibt es auch in JAVA kopf- bzw. fußgesteuerte Schleifen sowie Zählschleifen for-schleife for (int name=startwert ;log. Ausdruck ; Wertänderung ) { Anweisung1; Bsp.: for (int level=1;level<10;level++){ score=score*level; DI Elmar Krajnc 28 Wichtige Operatoren Arithmetische Operatoren +, -, *, / Modulo %, Inkrement ++, Dekrement -- Vergleichsoperatoren gleich ==, ungleich!= kleiner <, größ ößer > <= kleiner gleich, >= größ ößer gleich Logische Operatoren Logisches NICHT! UND &&, ODER Exklusiv-ODER ^ DI Elmar Krajnc 29 Übungsbeispiele DI Elmar Krajnc 30 10
11 Übung Potenzen ausrechnen Schreiben Sie eine Applikation, die für ganze Zahlen mit Basis 1 bis 10 die Potenzen mit Exponent 1-5 berechnet und die Ergebnisse wie folgend beschrieben ausgibt: 1 hoch 1 = 1 1 hoch 2 = 1 10 hoch 5 = Hinweis: Potenzieren in Java mit Methode Math.pow(double basis, double exponent) im Package java.lang.math Vorgangsweise Verwenden Sie folgendes Grundgerüst: public class Ueb2aPotenzen { public static void main(string[] args) { //Variablen deklarieren double basis; //Schleifen Start for (){ //berechnen ergebnis = Math.pow(basis,exponent) //Ausgabe System.out.println() //Schleifen Ende Übung - Zinsenrechner Schreiben Sie ein Programm, das für einen bestimmten Geldwert und Zinssatz berechnet, um welchen Betrag sich der Grundwert jährlich erhöht. Die Laufzeit beträgt 10 Jahre. Geben Sie jeweils Jahr und Zinszuwachs im Vergleich zum Vorjahr aus. Hinweis: Der Geldwert erhöht sich jährlich um den Faktor (100+Zinssatz)/100. Zusatz 1: Geben Sie jeweils nach dem 5. und dem 10. Jahr auch den aktuellen Gesamtbetrag aus. 11
12 Vorgangsweise Verwenden Sie folgendes Grundgerüst: public class Ueb2bZinsen { public static void main(string[] args) { //Variablen deklarieren int startjahr = 2000; //Schleife Start for (){ //berechnen zuwachs = ; betrag = ; //Ausgabe System.out.println() //Schleife Ende Übung Zinsrechner mögliche Ausgabe Startjahr: 2000 Geldwert: Euro Laufzeit: 10 Jahre Zinssatz: 10.0 % 2000: Zuwachs: : Zuwachs: : Zuwachs: : Zuwachs: : Zuwachs: Gesamtwert: : Zuwachs: : Zuwachs: : Zuwachs: : Zuwachs: : Zuwachs: Gesamtwert: Objektorientierte Programmierung mit Java Grundlagen 12
13 Vorteile der Objektorientierung Natürliche Modellierung vieler Problemstellungen Verminderte Komplexität durch Abstraktion Kapselung Definierten Schnittstellen (Methoden) Erhöhte Effizienz bei der Entwicklung Wiederverwendung von Klassenbibliotheken DI Elmar Krajnc 37 Wichtige Begriffe der OOP (1) Klasse: allgemeine Beschreibung für ein Objekt; Bauplan ; Vorlage, z.b. Kochrezept Objekt: konkretes Ding, z.b. meinesachertorte, originalsachertorte originalsachertorte meinesachertorte DI Elmar Krajnc 38 Wichtige Begriffe der OOP (2) Eigenschaft (field ( field): Merkmal, z.b. Farbe, Größe,... Wie ist ein Objekt beschaffen? Methode (method ( method): Aktion, z.b. set Farbe(), berechnebackzeit(),... Was kann ein Objekt tun? Ereignis (event ( event): Zustand, der eintreten kann, z.b. Backofen zu heiss, Backzeit abgelaufen,... Worauf kann ein Objekt reagieren? DI Elmar Krajnc 39 13
14 Beispiel: DVD-Player KLASSE OBJEKT 1 OBJEKT 2 Eigenschaften bezeichnung farbe abmessungen mp3abspielbar Methoden play() skip() eject() isplaying() setlanguage(string lang) getfarbe() setfarbe(string col) Eigenschaften Sony silber 30x30x13 true Methoden play() skip() eject() isplaying() setlanguage("de") getfarbe() setfarbe("rot") Eigenschaften Panasonic schwarz 34x29x15 true Methoden play() skip() eject() isplaying() setlanguage("en") getfarbe() setfarbe("blau") DI Elmar Krajnc 40 Zugriff auf Instanzvariablen und Methoden Der Zugriff auf Variablen und Methoden erfolgt über das instanzierte Objekt Nach dem Objekt trennt ein Punkt die nachfolgende Instanzvariable oder Methode Klasse Objekt Konstruktor DVDPlayer sony=new DVDPlayer(); sony.bezeichnung="sony DVD 402"; Objekt sony.play(); Punkt als Trennzeichen Instanzvariable Objekt Punkt als Trennzeichen Methode DI Elmar Krajnc 41 Konstruktor ist eine spezielle Methode, die beim Instanzieren aufgerufen wird Instanzieren: Erzeugen eines Objekts mit new-operator Bsp: Klasse Objekt Konstruktor Torte meinetorte=new Torte(); Torte meinetorte=new Torte("Sacher"); oder: DVDPlayer sony=new DVDPlayer(); DI Elmar Krajnc 42 14
15 Wichtige Eigenschaften der OO Abstraktion Unterscheidung Bauplan und Umsetzung Wer weiß wie ein Lichtschalter funktioniert, kann alle ähnlichen Lichtschalter bedienen Kapselung Objekte können Attribute und Methoden verbergen Zugriff von außen wird geschützt DI Elmar Krajnc 43 Wichtige Eigenschaften der OO Vererbung Elternklasse (Superklasse) vererbt Eigenschaften und Attribute an Kindklasse (Subklasse) Hierarchische Beziehung Polymorphismus (Vielgestaltigkeit) Subklassen können als Instanz der Superklasse behandelt werden Bsp: Klasse Transportmittel ist Superklasse der Subklassen Moped und Auto. Eine Instanz der Klasse Auto kann auch als Instanz der Klasse Transportmittel behandelt werden. DI Elmar Krajnc 44 Objektorientierte Programmierung mit Java Klassen 15
16 Klassen Bauplan für (ähnliche) Objekte Beschreibung der Eigenschaften und Methoden die ein Objekt erhält Objekte (Instanzen) werden aus Klassen erzeugt Instanz 1 Instanz 2 Instanz 3 DI Elmar Krajnc 46 Definieren einer Klasse Festlegen von geeigneten Klassen und deren Eigenschaften und Methoden in der Problemanalyse Implementierung in den Sourcecode KlassenName Eigenschaften Class KlassenName { eigenschaftdeklaration; Methoden() methodendeklaration; Problemanalyse Klassendiagramm Implementierung Sourcecode DI Elmar Krajnc 47 Bsp.: Klasse Punkt definieren Festlegen von geeigneten Klassen und deren Eigenschaften und Methoden in der Problemanalyse Implementierung der Festlegung in den Sourcecode Klassendiagramm Punkt int x int y Punkt() draw() Sourcecode class Punkt { //attributdeklaration int x; int y; //methodendeklaration; //Konstruktor void Punkt(int x, int y){ void draw(){ DI Elmar Krajnc 48 16
17 Objekte Instanzieren Instanzieren Objekt einer Klasse erzeugen = Neues Objekt wird Schlüsselwort new erzeugt Klassenname objektname = new Klassenname([Initialisierungswerte]); Bsp: Punkt nullpunkt = new Punkt(0,0); Jede erzeugte Instanz ist eindeutig und besitzt eigene Kopien der Eigenschaften (Variablen). Diese Variablen werden daher auch Instanzvariablen genannt. DI Elmar Krajnc 49 Instanzvariablen Eigenschaften eines Objektes werden in Instanzvariablen gespeichert Alle Objekte einer Klasse haben die selben Instanzvariablen (selber Datentyp je Variable, selbe Anzahl von Variablen) Datentyp und Name der Variable werden in der Klasse deklariert Zugriff auf den Inhalt der Variable erfolgt über Objektnamen und Variablennamen, die durch einen Punkt getrennt sind nullpunkt.x=0; nullpunkt.y=0; Der Wert einer Variable kann während der Laufzeit verändert werden Instanzvariablen werden am Beginn der Klassendefinition definiert DI Elmar Krajnc 50 Klassenvariablen (statische Variablen) Klassenvariablen werden von allen Objekten einer Klasse geteilt. Alle Instanzen einer Klasse greifen auf die selben Klassenvariablen zu Klassenvariablen sind auch dann verfügbar, wenn noch keine Instanz der Klasse erzeugt wurde Deklaration: static typ name; Bsp.: static int count; count zählt hier beispielsweise die Anzahl der erzeugten Objekte der Klasse Punkt. Zugriff auf Klassenvariable über Klassenname und Variablenname getrennt durch einen Punkt. Punkt.count++; DI Elmar Krajnc 51 17
18 Standardvariable "this " this" this ist eine Referenz zum aktuellen Objekt this ist eine Referenz auf die aktuelle Instanz der Klasse in der man sich gerade befindet. Über this kann auf alle Variablen und Methoden der Instanz zugegriffen werden. public class Person { private String name; public setname (String name){ this.name=name; //bei Namensgleichheit von Parameter und Variable "this" verwenden DI Elmar Krajnc 52 Konstruktoren Jede Klasse benötigt einen oder mehrere Konstruktoren. Konstruktoren: reservieren den Speicherplatz für eine neu zu erzeugende Instanz, weisen den Instanzvariablen initiale Werte zu, haben denselben Namen wie die Klasse, werden wie Methoden deklariert, aber immer ohne Rückgabewert KlassenName(Parameter){.. Zu einer Klasse können mehrere Konstruktoren mit verschiedenen Parametern deklariert werden. DI Elmar Krajnc 53 Bsp. Konstruktor class Student { private String matrnr; private String name; private int semester; //Konstruktor Student(String name, String nr) { this.name = name;//this = aktuelles Objekt matrnr = nr; Instanzvariable Übergabeparameter Anwendung: Student stundent1 = new Student("Max Muster", " "); DI Elmar Krajnc 54 18
19 Default-Konstruktor Wenn kein Konstruktor erstellt wurde, wird defaultmäßig ein Konstruktor (ohne Parameter) erzeugt. void Student(){ Student s2 = new Student(); DI Elmar Krajnc 55 Objektorientierte Programmierung mit Java Methoden Methoden Methoden definieren das Verhalten von Objekten werden innerhalb der Klassendefinition angelegt habe Zugriff auf alle Eigenschaften des Objektes können mit Funktionen in anderen Programmiersprachen verglichen werden DI Elmar Krajnc 57 19
20 Main-Methode Methode Ist der Startpunkt einer jeden JAVA-Applikation (im Gegensatz zu z.b. Applets) Die main-methode ist eine Klassenmethode (static). Der Start der Applikation erfolgt ohne Instanzierung einer Klasse Der Java-Interpreter sucht beim Starten der Applikation nach der main-methode. Wird keine gefunden, so gibt es einen Laufzeitfehler String-Array übergibt Komandozeilenparameter als Argument an die main-methode Sichtbarkeit öffentlich Klassenmethode Übergabeparameter public static void main (String[ ] args){ Kein Rückgabewert erwartet DI Elmar Krajnc 58 Main-Methode Methode Übergabeparameter verwenden public class ParameterUebergabe{ public static void main (String[] args){ String param1 = args[0]; System.out.println("Param 1 lautet: "+param1); Aufruf: java ParameterUebergabe Hallo DI Elmar Krajnc 59 Deklaration von Methoden Methoden haben einen Bezeichner (Namen) wie Variablen haben ev. einen oder mehrere Übergabeparameter haben ev. einen Rückgabewert public void printmaximum(int a, int b) { if (a>b) { System.out.println(a); else { System.out.println(b); Signatur DI Elmar Krajnc 60 20
21 Aufruf von Methoden Aufruf durch Angabe von Bezeichner und Parameter public static void main(string[] args) { int x = 5; int y = 3; obj.printmaximum(x,y); public void printmaximum(int a, int b) { if (a>b) { System.out.println; Beim Aufruf werden den Parametern a und b der Methode die Werte x und y übergeben. a und b können nur innerhalb der Methode printmaximum verwendet werden. Es gibt keinen Rückgabewert (Schlüsselwort void). DI Elmar Krajnc 61 Deklaration von Methoden mit Rückgabewert R public int maximum(int a, int b) { if (a>b) { return a; else { return b; Der Rückgabewert soll vom Typ int sein return legt den Rückgabewert fest und beendet die Methode Sämtliche Datentypen können als Rückgabewert verwendet werden DI Elmar Krajnc 62 Aufruf von Methoden mit Rückgabewert R Aufruf durch Angabe von Bezeichner und Parameter public static void main(string[] args) { int x = 5; int y = 3; int max = obj.maximum(x,y); public int maximum(int a, int b) { if (a>b) { return x; Der Rückgabewert wird als Ergebnis der Methode maximum(x,y) der Variable max zugewiesen. DI Elmar Krajnc 63 21
22 Objektorientierte Programmierung mit Java Beispiel "objektorientiertes HelloWorld" Altes Hello World Alles in main-methode objektorientiertes HelloWorld Klasse Hello Konstruktor, Felder, Methoden Klasse Main Instanzierung eines Objekts Aufruf von Methoden DI Elmar Krajnc 65 Neues Design im Klassendiagramm Klasse Eigenschaften Methoden Main main() Hello name greets DI Elmar Krajnc 66 22
23 Beispiel Objektorientierung DI Elmar Krajnc 67 Objektorientierte Programmierung mit Java Gültigkeitsbereich - Scope Gültigkeitsbereich In Java gibt es 4 Einstellungen die den Gültigkeitsbereich von Variablen, Methoden und Klassen regeln. private protected public package (Standard) Gültigkeitsbereich bedeutet: Welche (anderen) Objekte dürfen auf eine Klasse bzw. Variablen und Methoden der programmierten Klasse zugreifen. Grundsätzlich können alle Variablen und Methoden innerhalb der Klasse, in die sie geschrieben sind, aufgerufen werden. DI Elmar Krajnc 69 23
24 Gültigkeitsbereich private Methoden oder Variablen können nur innerhalb der eigenen Klasse verwendet werden package (Standard) Methoden oder Variablen können innerhalb des ihres Paketes verwendet werden. Pakete sind Sammlungen von zusammengehörigen Klassen. protected Wie package, aber zusätzlich können abgeleitete Klassen in anderen Paketen diese Variablen und Methoden verwenden public Methoden und Variablen sind generell verwendbar. DI Elmar Krajnc 70 Gültigkeitsbereich Beispiel public class Person { private String name; public setname (String n){ name=n; public class Firma { public static void main(string[] args){ Person mitarbeiter = new Person(); mitarbeiter.name ="Meier"; //funktioniert nicht, da name = private mitarbeiter.setname("meier"); //funktioniert, da setname = public DI Elmar Krajnc 71 Wichtige Eigenschaften der Objektorientierung Abstraktion Unterscheidung Bauplan und Umsetzung Wer weiß wie ein Lichtschalter funktioniert, kann alle ähnlichen Lichtschalter bedienen Kapselung Objekte können k Attribute und Methoden verbergen Zugriff von außen wird geschützt Vererbung Elternklasse (Superklasse) vererbt Eigenschaften und Attribute an Kindklasse (Subklasse) Hierarchische Beziehung Polymorphismus (Vielgestaltigkeit) Subklassen können als Instanz der Superklasse behandelt werden Bsp: Klasse Transportmittel ist Superklasse der Subklassen Moped und Auto. Eine Instanz der Klasse Auto kann auch als Instanz der Klasse Transportmittel behandelt werden. DI Elmar Krajnc 72 24
25 Kapselung - Information Hiding kein direkter Zugriff auf Variablen (Attribute) einer Klassen Zugriff erfolgt über Methoden (getter, setter-methoden) public class Person { private String name; public setname (String n){ name=n; public String getname (){ return name; public class Firma { public static void main(string[] args){ Person mitarbeiter = new Person(); mitarbeiter.name = "Meier"; //funktioniert nicht, da name = private mitarbeiter.setname("meier"); //funktioniert, da setname = public String tischler = mitarbieter.getname(); DI Elmar Krajnc 73 Kapselung Allgemein gilt: Instanzvariablen repräsentieren den Zustand eines Objektes Methoden repräsentieren das Verhalten eines Objektes Methoden sind definierte Schnittstellen und bilden die einzige Möglichkeit um mit dem Objekt zu kommunizieren, d.h. Informationen über Zustand erhalten (Instanzvariablen lesen) Zustand verändern (Instanzvariablen ändern) Die als private deklarierten Instanzvariablen eines Objekts sind vor unkontrolliertem Zugriff außerhalb der eigenen Klassendefinition geschützt bzw. abgekapselt. Nur über definierte, öffentliche Schnittstellen (public Methoden) kann darauf zugegriffen werden DI Elmar Krajnc 74 Vorteile Kapselung Die Implementierung der Daten kann verändert werden, ohne dass Programmcode außerhalb der Klasse geändert werden muss. Der Zugriff auf die verschiedenen Variablen kann eingeschränkt werden. Dies verhindert sowohl Datenmanipulationen als auch irrtümliche Veränderung oder Abfrage der Daten. Außerdem können damit Programmierfehler eingeschränkt werden. Die Komplexität bei der Bedienung eines Objektes wird reduziert Bsp.: Fernseher Technisch komplizierter innerer Aufbau (= viele Instanzvariablen) einfache Schnittstelle zum Bedienen (z.b. Ein/Ausschalter) DI Elmar Krajnc 75 25
26 Objektorientierte Programmierung mit Java Klasse String, Arrays Klasse String Deklaration einer Objekt-Variablen: String name; // es wird noch kein Speicherplatz für das Objekt reserviert! Anlegen eines Objektes (Instanz) dieser Klasse: name = new String(); // Reservierung von Speicherplatz name = "Maier"; auch möglich: String name = new String("Maier"); bewusstes Zerstören eines Objekts: name = null; // der vom Objekt belegte Speicherplatz wird vom Garbage-Collector frei gegeben DI Elmar Krajnc 77 Wichtige String-Methoden int length(): aktuelle Länge char charat(int index): liefert das Zeichen an der Position index String substring(int beginn, int ende): liefert einen Teilstring boolean equals(object o), boolean equalsignorecase(string s), int compareto(string s): vergleicht 2 Strings int indexof(string s): sucht das erste Vorkommen von s innerhalb des String-Objekts String tolowercase(), String touppercase(): Umwandlung in Klein-/ Großbuchstaben DI Elmar Krajnc 78 26
27 Arrays in Java: Deklaration, Initialisierung, Zugriff In Java ein Objekt int[] gewicht = new int[10]; //index 0 bis 9 oder alternativ float[] temp = {12.3f, -1.5f, 8f; Zugriff auf Elemente über Index gewicht[0]=72; gewicht[9]=83; Anzahl der Elemente über Instanzvariable length System.out.println(gewicht.length); // 10 Achtung hier nicht length()! DI Elmar Krajnc 79 Objektorientierte Programmierung mit Java Übung Objektorientierte Programmierung mit Java Überladen von Methoden 27
28 Overloading - Überladen von Methoden Methoden innerhalb einer Klasse dürfen den gleichen Namen haben, WENN sie sich durch ihre Parameter Art Anzahl unterscheiden. Der Rückgabetyp und Parametername tragen NICHT zur Unterscheidung von Methoden bei! private void print(int a, int b) { private void print(int a) { private void print(double a) { private void print(int b) { //Fehler, gleich wie Methode 2 private int print(int a, int b) { //Fehler, gleich wie Methode 1 DI Elmar Krajnc 82 Aufruf überladener Methoden class MaxProgramm { int maximum (int x, int y) { if (x>y) { return(x); else { return(y); int maximum (int x, int y, int z) { int max; max = maximum(z, maximum(x,y)); return max; public static void main (String[] arg) { System.out.println(maximum(45,13,98)); Die richtige Methode wird über die Signatur automatisch gewählt. DI Elmar Krajnc 83 Objektorientierte Programmierung mit Java Packages 28
29 Wozu gibt es Packages? Einbinden von bereits programmiertem Code Wiederverwendung von vorhandenen Klassen deren Implementierung man kennt deren Implementierung man nicht kennt DI Elmar Krajnc 85 Was sind Packages? Packages sind Sammlungen von funktional zusammen gehörenden Klassen und dienen als Strukturelement oberhalb der Klassenebene Jede Klasse in Java ist Bestandteil genau eines Packages Viele Packages werden bereits mit der Java-Plattform mitgeliefert API (Application Program Interface) ist eine Sammlung von zusammengehörenden Packages Package-Namen können aus mehreren Teilen und beliebig tiefen Hierarchien bestehen Package.Klasse.Methode() od. Variable Bsp.: java.lang.math.sqrt(); DI Elmar Krajnc 86 Vorteile von Packages Systematische Ordnung, wenn viele Klassen verwendet werden Gleichnamige Klassen in unterschiedlichen Packages können eindeutig zugeordnet und verwendet werden (Namespaces) FHJoanneum.Person und IhreFirma.Person sind verschiedene Klassen aber durch unterschiedliche Packages spielt gleicher Klassenname keine Rolle Definition klarer public-klassen und Methoden, die auch von Klassen externer Packages eingebunden werden können DI Elmar Krajnc 87 29
30 Package erstellen Alle Klassen, die zu einem Package gehören, müssen im gleichen Verzeichnis gespeichert werden und müssen mit package packagename beginnen //Beispiel Datei mypackage/myclass.java package mypackage; public class MyClass { Neues Package mit Eclipse erstellen Rechter Mausklick auf Projekt New -> Package DI Elmar Krajnc 88 Packages verwenden Packages müssen entweder explizit oder implizit importiert werden //Beispiel explizite Importanweisung import mypackage.*; MyClass meineneueklasse = new MyClass(); //Beispiel implizite Importanweisung mypackage.myclass meineneueklasse = new mypackage.myclass(); DI Elmar Krajnc 89 Packages verwenden Einbinden des gesamten Paketes import java.util.*; Date d = new Date(); // steht zur Verfügung Vector v = new Vector(); // steht zur Verfügung Einbinden einzelner Klassen aus einem Paket import java.util.date; Date d = new Date(); // steht zur Verfügung Vector v = new Vector(); // steht nicht zur Verfügung DI Elmar Krajnc 90 30
31 Eigene Pakete öffentlich zur Verfügung stellen Klassen und Methoden die außerhalb des Packages verwendet werden sollen, müssen als public deklariert sein. Namenskonvention für weltweite eindeutige Nutzung Package-Pfad ist umgekehrter Domain-Name des Klassenerzeuger Beispiel: at.fhjoanneum.swd05.meinpackage muss in folgender Verzeichnisstruktur abgelegt werden: at/fhjoanneum/swd05/meinpackage/ DI Elmar Krajnc 91 Einige Java Standard Packages java.lang // keine import-anweisung nötig, da immer impliziter Import java.io // Eingabe-Ausgabe java.util // einige nützliche Klassen (Random, Date, Vector) java.net // Netzwerkprogrammierung java.awt // GUI- und Grafikprogrammierung Weitere Information zu Standard-Packages siehe Spezifikation zur Java-API! DI Elmar Krajnc 92 Spezialfall java.lang Das Package java.lang wird immer implizit importiert beinhaltet Klassen wie: String Math System Beispiel: System.out.println(String); System ist eine Klasse im Package java.lang out ist eine statische Variable von System vom Typ PrintStream In der Klasse PrintStream ist die Methode println(string) definiert DI Elmar Krajnc 93 31
32 Beispiel : Klasse Konsole Überladen der Methoden Erstellen des Packageetm07.util Einbinden des Packages in andere Klassen DI Elmar Krajnc 94 Objektorientierte Programmierung mit Java Vererbung Wichtige Eigenschaften der Objektorientierung Abstraktion Unterscheidung Bauplan und Umsetzung Wer weiß wie ein Lichtschalter funktioniert, kann alle ähnlichen Lichtschalter bedienen Kapselung Objekte können Attribute und Methoden verbergen Zugriff von außen wird geschützt Vererbung Elternklasse (Superklasse) vererbt Eigenschaften und Attribute an Kindklasse (Subklasse) Hierarchische Beziehung Polymorphismus (Vielgestaltigkeit) Subklassen können als Instanz der Superklasse behandelt werden Bsp: Klasse Transportmittel ist Superklasse der Subklassen Moped und Auto. Eine Instanz der Klasse Auto kann auch als Instanz der Klasse Transportmittel behandelt werden. DI Elmar Krajnc 96 32
33 Vererbung Vererbung ist eine der Grundideen der Objektorientierung Kindklassen (Subklassen) erben dabei sämtliche Variablen und Methoden der Elternklasse (Superklasse) Einfachvererbung Mehrfachvererbung In Java gibt es nur Einfachvererbung, keine Mehrfachvererbung. Eine Kindklasse kann also nur von einer Elternklasse erben. DI Elmar Krajnc 97 Klassendiagramm Vererbung erben alle Variablen und Methoden der Elternklasse und besitzen zusätzlich weitere Eigenschaften und Methoden Transportmittel baujahr: int vmax: int bezeichnung: String printinfo() Klasse Transportmittel enthält gemeinsame Variablen und Methoden Auto anztueren:int hatabs:boolean getanztueren()() Schiff anzkabinen:int bauart: String getbauart() Flugzeug maxflughoehe: int spannweite: double getspannweite() DI Elmar Krajnc 98 Implementierung der Elternklasse public class Transportmittel { // Instanzvariablen private int baujahr; private int vmax; private String bezeichnung; Transportmittel baujahr: int vmax: int bezeichnung: String printinfo() // Konstruktor Transportmittel (int bauj, int vmax, String bez){ // Methoden public void printinfo(){ System.out.println("Baujahr: "+baujahr); System.out.println("maximale Geschw.: "+vmax); System.out.println("Bezeichnung: "+bezeichnung); DI Elmar Krajnc 99 33
34 Implementierung der abgeleiteten Klasse Auto erbt alle Eigenschaften von Transportmittel und erweitert die Eigenschaften und Methoden Auto anztueren:int hatabs:boolean printinfo() public class Auto extends Transportmittel { private int anztueren; private boolean hatabs; // Konstruktor Auto (int bauj, int anztuer, String bez, boolean abs){ public void printinfo(){ DI Elmar Krajnc 100 Überschreiben (Overriding ( Overriding) ) von vererbten Methoden erbt alle Eigenschaften von Transportmittel, erweitert die Eigenschaften und überschreibt die Methode printinfo() Auto anztueren:int hatabs:boolean printinfo() public class Auto extends Transportmittel { private int anztueren; public void printinfo(){ private boolean hatabs; System.out.println("Baujahr: "+baujahr); System.out.println("maximale Geschw.: "+vmax); // Konstruktor System.out.println("Bezeichnung: Auto (int bauj, ){ "+bezeichnung); public void printinfo(){ super.printinfo(); // Methode in Klasse Transportmittel System.out.println("Tueren: "+anztueren); Mit Hilfe des Ausdrucks super wird auf die Elternklasse referenziert DI Elmar Krajnc 101 Instanzierung einer abgeleiteten Klasse // Konstruktor Elternklasse (Baujahr, max.geschw., Bez) Auto ford = new Auto (1978,170,"Ford Taunus"); // Konstruktor abgel. Klasse (Baujahr,AnzTüren,Bez., ABS?) Auto audi = new Auto (2002,5,"Audi A4",true); // Konstruktor der Superklasse mit Argumenten aufrufen public class Auto extends Transportmittel { // Konstruktor Auto (int bauj,int v, int anztuer, String bez, boolean abs){ super(bauj,v,bez+", "+anztuer+"-tuerig"); // muss 1. Zeile sein public class Transportmittel { // Konstruktor Transportmittel (int bauj, int vmax, String bez) { DI Elmar Krajnc
35 Übung Erstellen einer Superklasse Fahrzeug Erstellen von 2 abgeleiteten Klassen Auto und Flugzeug DI Elmar Krajnc 103 Objektorientierte Programmierung mit Java Vererbung (Fortsetzung) Polymorphismus Oft ist bekannt welche abgeleite Klasse verwendet werden soll Ist ein Programm in der Lage mit Instanzen einer Superklasse zu arbeiten, so kann es auch mit Instanzen der Subklassen arbeiten. Das bedeutet: jedes Programm, das mit Transportmittel arbeiten kann, kann auch mit Auto, Schiff oder Flugzeug arbeiten, da es die Methoden und Variablen von Transportmittel kennt. DI Elmar Krajnc
36 Kompatibilität t zwischen Sub- und Superklasse Wegen der Kompatibilität kann eine Instanz der Subklasse auch einer Superklassenvariablen zugewiesen werden (up-casting) Transportmittel airbus = new Flugzeug(); //airbus ist ein Flugzeug, sieht aber wie ein Transportmittel aus Klassentyp prüfen if ( airbus instanceof Flugzeug) { Umwandeln auf original Klassentyp Flugzeug a380 = (Flugzeug) airbus; //casting DI Elmar Krajnc 106 Problem up-casting Welche Methoden werden verwendet? Probleme Methode in Subklasse wird überschrieben Instanz der Subklasse wird in einer Superklassen-Variable gespeichert = up-casting Frage: Welche Methode wird verwendet? Transportmittel Antwort: Die Methode des erzeugten Typs wird ausgeführt Dynamische Bindung baujahr: int vmax: int bezeichnung: String printinfo() Transportmittel airbus = new Flugzeug(); airbus.printinfo(); Flugzeug maxflufhoehe: int spannweite: double printinfo() Auto anztueren:int hatabs:boolean printinfo() DI Elmar Krajnc 107 Attribut final final + primitiver Datentyp Der Wert der "Variablen" bleibt konstant = KONSTANTE final int MAX_VALUE = 100; final + Objekt-Datentyp Die Referenz bleibt konstant final Nummer n1 = new Nummmer(1); Nummer n2 = new Nummer(15); n1=n2; //funktioniert nicht, da für n1 keine neue Referenz erlaubt ist. final + Parameter Der Parameter ist in der Methode unveränderbar public void setbetrag ( final double zinsen){ zinsen = zinsen * 5; // nicht OK, da kein neuer Wert für zinsen erlaubt ist DI Elmar Krajnc
37 Attribut final final + Methode Verhindert das Überschreiben der Methode durch eine Subklasse. Anwendungsgründe: Sicherheit oder Effizienzsteigerung (kein dyn. Binden) public class Transportmittel { public final String getbezeichnung(){ final + Klasse Eine Vererbung dieser Klasse ist nicht möglich. Anwendungsgründe: Sicherheit od. Effizienz soll erhöht werden. Methoden einer final definierten Klasse sind ebenfalls implizit als final definiert. final class Transportmittel { public class Moped extends Transportmittel{ //Anweisung ist nicht erlaubt DI Elmar Krajnc 109 Objektorientierte Programmierung mit Java Interfaces und Abstrakte Klassen Mehrfachvererbung Mehrfachvererbung bedeutet, dass ein Subklasse von zwei oder mehreren Superklassen abgeleitet wird. Bsp. ein Fussball ist ein Sportgerät und eine Kugel Java unterstützt grundsätzlich KEINE Mehrfachererbung Schlüsselwort extends kann nur eine Klasse weitervererben eine Klasse kann aber mehrere Interfaces implementieren DI Elmar Krajnc
38 Interfaces Ein Interface ist eine spezielle Form einer Klasse bietet die Möglichkeit eine einheitliche Schnittstelle zu definieren enthält nur die Signatur von Methoden (nicht ausprogrammiert) und Konstanten Die Methoden sind implizit public Keine Definition von Konstruktoren erlaubt DI Elmar Krajnc 112 Definition eines Interfaces //Definition interface Kugel { // Konstante static final double pi = 3.14; //autom. static und final //Methode public double getvolume(); //autom. public, KEINE Implementierung DI Elmar Krajnc 113 Implementierung eines Interfaces //Implementierung class Fussball implements Kugel { public double getvolueme(){ //volumen berechnen return volume; Der Compiler prüft, ob alle Methoden des Interfaces implementiert wurden. //Implementierung und Vererbung class Fussball extends MySuperClass implements Kugel { DI Elmar Krajnc
39 Mehrfachimplementierung von Interfaces //Mehrfachimplementierung class MyClass implements MyInterface1, MyInterface2,... { public double gethoehe(){ return hoehe; Der Compiler prüft, ob alle Methoden des Interfaces implementiert wurden.... //alle Methoden der Interfaces MÜSSEN implementiert werden //Mehrfachimplementierung und Vererbung class MyClass extends MySuperClass implements MyInterface1, MyInterface2 { DI Elmar Krajnc 115 Abstrakte Klassen sind eine Mischung aus Superklasse und Interface bietet, genau wie bei Interfaces, die Möglichkeit eine einheitliche Schnittstelle zu definieren enthält neben ausprogrammierten Methoden auch Signaturen von Methoden die in der abgeleiteten Klasse programmiert werden müssen Wird in einer Klasse für mindestens eine Methode nur die Signatur definiert (=abstrakte Methode), so muss die gesamte Klasse als abstrakt definiert werden Abstrakte Klassen können nicht instanziert werden Alle abstrakten Methoden müssen in den Subklassen implementiert werden DI Elmar Krajnc 116 Definition und Implementierung von abstrakten Klassen //Definition abstract class MyAbstractClass { void normalemethode (int i){ //Programmcode abstract void abstraktemethode(int a); //Implementierung class NeueKlasse extends MyAbstractClass { void abstraktemethode(int a){ //wird jetzt programmiert DI Elmar Krajnc
Java Einführung Packages
Java Einführung Packages Inhalt dieser Einheit Packages (= Klassenbibliotheken) Packages erstellen Packages importieren Packages verwenden Standard Packages 2 Code-Reuse Einbinden von bereits (selbst-/fremd)
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
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:
MehrHello World. Javakurs 2014, 1. Vorlesung. Sebastian Schuck. basierend auf der Vorlage von Arne Kappen. wiki.freitagsrunde.org. 3.
Hello World Javakurs 2014, 1. Vorlesung Sebastian Schuck basierend auf der Vorlage von Arne Kappen wiki.freitagsrunde.org 3. März 2014 This work is licensed under the Creative Commons Attribution-ShareAlike
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
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
MehrEinführung in Java. PING e.v. Weiterbildung Andreas Rossbacher 24. März 2005
Einführung in Java PING e.v. Weiterbildung Andreas Rossbacher 24. März 2005 Gliederung 1. Was ist Java / Geschichte von Java 2. Prinzip der Plattformunabhängigkeit 3. Wie kommt man vom Quellcode zum Programm
MehrSoftware-Engineering und Optimierungsanwendungen in der Thermodynamik
Software-Engineering und Optimierungsanwendungen in der Thermodynamik Software-Engineering 5 Programmentwicklung und Debuggen mit IDE und CASE-Tools Übungen Prof. Dr. Rolf Dornberger OPTSWE_SWE: 5 Programmentwicklung
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
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
MehrAbschnitt 12: Strukturierung von Java-Programmen: Packages
Abschnitt 12: Strukturierung von Java-Programmen: Packages 12. Strukturierung von Java-Programmen: Packages 12.1 Strukturierung durch Packages 12.2 Zugriffsspezifikationen 12.3 Zusammenfassung 12 Strukturierung
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
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
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
MehrDie Programmiersprache Java. Dr. Wolfgang Süß Thorsten Schlachter
Die Programmiersprache Java Dr. Wolfgang Süß Thorsten Schlachter Eigenschaften von Java Java ist eine von der Firma Sun Microsystems entwickelte objektorientierte Programmiersprache. Java ist......a simple,
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
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
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:
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
MehrVorlesung Informatik II
Vorlesung Informatik II Universität Augsburg Wintersemester 2011/2012 Prof. Dr. Bernhard Bauer Folien von: Prof. Dr. Robert Lorenz Lehrprofessur für Informatik 02. JAVA: Erstes Programm 1 Das erste Java-Programm
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
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
MehrJavadoc. Programmiermethodik. Eva Zangerle Universität Innsbruck
Javadoc Programmiermethodik Eva Zangerle Universität Innsbruck Überblick Einführung Java Ein erster Überblick Objektorientierung Vererbung und Polymorphismus Ausnahmebehandlung Pakete und Javadoc Spezielle
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
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
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
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:
MehrEinführung in die C++ Programmierung für Ingenieure
Einführung in die C++ Programmierung für Ingenieure MATTHIAS WALTER / JENS KLUNKER Universität Rostock, Lehrstuhl für Modellierung und Simulation 14. November 2012 c 2012 UNIVERSITÄT ROSTOCK FACULTY OF
MehrObjektorientierte Programmierung OOP
Objektorientierte Programmierung OOP Objektorientierte Programmierung OOP Ronja Düffel WS2012/13 08. Oktober 2013 Objektorientierte Programmierung OOP Objektorientierte Programmierung Objektorientierte
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
MehrJava Einführung Programmcode
Java Einführung Programmcode Inhalt dieser Einheit Programmelemente Der erste Programmcode Die Entwicklungsumgebung: Sun's Java Software Development Kit (SDK) Vom Code zum Ausführen des Programms 2 Wiederholung:
Mehr4. AuD Tafelübung T-C3
4. AuD Tafelübung T-C3 Simon Ruderich 17. November 2010 Arrays Unregelmäßige Arrays i n t [ ] [ ] x = new i n t [ 3 ] [ 4 ] ; x [ 2 ] = new i n t [ 2 ] ; for ( i n t i = 0; i < x. l e n g t h ; i ++) {
MehrWillkommen zur Vorlesung. Objektorientierte Programmierung Vertiefung - Java
Willkommen zur Vorlesung Objektorientierte Programmierung Vertiefung - Java Zum Dozenten Mein Name: Andreas Berndt Diplom-Informatiker (TU Darmstadt) Derzeit Software-Entwickler für Web- Applikationen
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
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,
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/
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
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; {
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,
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
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
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
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
MehrJava Einführung VARIABLEN und DATENTYPEN Kapitel 2
Java Einführung VARIABLEN und DATENTYPEN Kapitel 2 Inhalt dieser Einheit Variablen (Sinn und Aufgabe) Bezeichner Datentypen, Deklaration und Operationen Typenumwandlung (implizit/explizit) 2 Variablen
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
MehrProgrammierkurs Java
Programmierkurs Java Dr. Dietrich Boles Aufgaben zu UE16-Rekursion (Stand 09.12.2011) Aufgabe 1: Implementieren Sie in Java ein Programm, das solange einzelne Zeichen vom Terminal einliest, bis ein #-Zeichen
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
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
MehrPakete dienen dazu, die Software eines Projektes in größere inhaltlich zusammengehörige Bereiche mit eigenem Namen einzuteilen (siehe Java API).
Paketdeklaration Paketdeklaration package Bezeichner ; Pakete dienen dazu, die Software eines Projektes in größere inhaltlich zusammengehörige Bereiche mit eigenem Namen einzuteilen (siehe Java API). Ein
MehrDas Typsystem von Scala. L. Piepmeyer: Funktionale Programmierung - Das Typsystem von Scala
Das Typsystem von Scala 1 Eigenschaften Das Typsystem von Scala ist statisch, implizit und sicher 2 Nichts Primitives Alles ist ein Objekt, es gibt keine primitiven Datentypen scala> 42.hashCode() res0:
MehrEinführung Datentypen Verzweigung Schleifen Funktionen Dynamische Datenstrukturen. Java Crashkurs. Kim-Manuel Klein (kmk@informatik.uni-kiel.
Java Crashkurs Kim-Manuel Klein (kmk@informatik.uni-kiel.de) May 7, 2015 Quellen und Editoren Internet Tutorial: z.b. http://www.java-tutorial.org Editoren Normaler Texteditor (Gedit, Scite oder ähnliche)
MehrDiana Lange. Generative Gestaltung Operatoren
Diana Lange Generative Gestaltung Operatoren Begriffserklärung Verknüpfungsvorschrift im Rahmen logischer Kalküle. Quelle: google Operatoren sind Zeichen, die mit einer bestimmten Bedeutung versehen sind.
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,
MehrVorkurs Informatik WiSe 15/16
Java 1 Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe, 12.10.2015 Technische Universität Braunschweig, IPS Überblick Organisatorisches Arbeitsablauf Hello! 12.10.2015 Dr. Werner Struckmann / Stephan
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,
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
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
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"
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,
MehrGetName(), GetName(), GetGeschlecht() und AelterWerden().
11. Vererbung Vererbung ist eine der mächtigsten Funktionalitäten der objektorientierten Programmiersprachen. Man versteht unter Vererbung die Tatsache, dass eine Klasse alle Methoden und Variablen einer
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
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 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
MehrObjektorientiertes JavaScript
Objektorientiertes JavaScript Christoph Fabritz dm121506@fhstp.ac.at http://goo.gl/jzqxnw Inhalt JavaScript Objektorientierung OO in JavaScript Literatur JavaScript Interpretiert / gescriptet Dynamische
MehrUniversität Augsburg, Institut für Informatik Sommersemester 2005 Prof. Dr. Werner Kießling 16. Juli 2005 Dr. Alfons Huhn, Timotheus Preisinger
Universität Augsburg, Institut für Informatik Sommersemester 2005 Prof. Dr. Werner Kießling 16. Juli 2005 Dr. Alfons Huhn, Timotheus Preisinger Informatik II Hinweise: Die Bearbeitungszeit beträgt 90 Minuten.
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
MehrSoftware-Engineering Grundlagen des Software-Engineering
Software-Engineering Grundlagen des Software-Engineering 7.2 Programmentwicklung und Debuggen mit IDE und CASE-Tools Übungen Prof. Dr. Rolf Dornberger SWE: 7.2 Programmentwicklung und Debuggen mit IDE
MehrEs sollte die MS-DOS Eingabeaufforderung starten. Geben Sie nun den Befehl javac ein.
Schritt 1: Installation des Javacompilers JDK. Der erste Start mit Eclipse Bevor Sie den Java-Compiler installieren sollten Sie sich vergewissern, ob er eventuell schon installiert ist. Gehen sie wie folgt
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
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
MehrEinführung in die Programmierung
: Inhalt Einführung in die Programmierung Wintersemester 2008/09 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund - mit / ohne Parameter - mit / ohne Rückgabewerte
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
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
Mehr1. Formulieren Sie den Algorithmus <Bedienung eines Getränkeautomaten> nach den oben genannten Kriterien.
Java 1 Einführung Grundlegende Übungsaufgaben Arbeitsauftrag 1.1 1. Formulieren Sie den Algorithmus nach den oben genannten Kriterien. Beispiel: Bedienung eines Getränkeautomaten
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)
MehrProgrammieren Tutorium
Programmieren Tutorium Tom Schildhauer Tutorium 12 Universität Karlsruhe (TH) Institut für Programmstrukturen und Datenorganisation (IPD) Lehrstuhl Programmierparadigmen WS 2008/2009 c 2008 by Tom Schildhauer,
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.
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........................
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:
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
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-
MehrII.1.1. Erste Schritte - 1 -
! 1. Grundelemente der Programmierung! 2. Objekte, Klassen und Methoden! 3. Rekursion und dynamische Datenstrukturen! 4. Erweiterung von Klassen und fortgeschrittene Konzepte II.1.1. Erste Schritte - 1
MehrJava 7. Elmar Fuchs Grundlagen Programmierung. 1. Ausgabe, Dezember 2011 JAV7
Java 7 Elmar Fuchs Grundlagen Programmierung 1. Ausgabe, Dezember 2011 JAV7 5 Java 7 - Grundlagen Programmierung 5 Kontrollstrukturen In diesem Kapitel erfahren Sie wie Sie die Ausführung von von Bedingungen
MehrEinführung in Eclipse und Java
Universität Bayreuth Lehrstuhl für Angewandte Informatik IV Datenbanken und Informationssysteme Prof. Dr.-Ing. Jablonski Einführung in Eclipse und Java Dipl.Inf. Manuel Götz Lehrstuhl für Angewandte Informatik
MehrObjektbasierte Entwicklung
Embedded Software Objektbasierte Entwicklung Objektorientierung in C? Prof. Dr. Nikolaus Wulff Objektbasiert entwickeln Ohne C++ wird meist C im alten Stil programmiert. => Ein endlose while-schleife mit
MehrJava Kurs für Anfänger LMU SS09 Einheit 1 Javaumgebung
Java Kurs für Anfänger LMU SS09 Einheit 1 Javaumgebung Ludwig-Maximilians-Universität München Institut für Informatik Programmierung und Softwaretechnik (PST) Prof. Wirsing 6. Mai 2009 1 Der Name Java
MehrTestklausur 1 zur Vorlesung. Modellierung und Programmierung I. Dr. Monika Meiler Zeit: 60 Minuten
Matrikelnummer: Punkte: Testklausur 1 zur Vorlesung Modellierung und Programmierung I Dr. Monika Meiler Zeit: 60 Minuten Bemerkungen: Jedes Blatt ist mit der Matrikelnummer zu versehen. Jede Aufgabe ist
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
MehrListe Programmieren Java Überblick
Liste Programmieren Java Überblick 1 Was ist Java? 2 Klassen und Objekte 3 Vererbung 4 Schnittstellen 5 Innere Klassen 6 Exceptions 8 Datenstrukturen und Algorithmen 9 Ein-/Ausgabe 10 Threads 11 GUI-Programmierung
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
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
MehrModul 122 VBA Scribt.docx
Modul 122 VBA-Scribt 1/5 1 Entwicklungsumgebung - ALT + F11 VBA-Entwicklungsumgebung öffnen 2 Prozeduren (Sub-Prozeduren) Eine Prozedur besteht aus folgenden Bestandteilen: [Private Public] Sub subname([byval
MehrKlausur in Programmieren
Studiengang Sensorik/Sensorsystemtechnik Note / normierte Punkte Klausur in Programmieren Wintersemester 2010/11, 17. Februar 2011 Dauer: 1,5h Hilfsmittel: Keine (Wörterbücher sind auf Nachfrage erlaubt)
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
MehrÜbersicht. Schleifen. Schleifeninvarianten. Referenztypen, Wrapperklassen und API. 9. November 2009 CoMa I WS 08/09 1/15
Übersicht Schleifen Schleifeninvarianten Referenztypen, Wrapperklassen und API CoMa I WS 08/09 1/15 CoMa I Programmierziele Linux bedienen Code umschreiben strukturierte Datentypen Anweisungen und Kontrollstrukturen
MehrGraphic Coding. Klausur. 9. Februar 2007. Kurs A
Graphic Coding Klausur 9. Februar 2007 Kurs A Name: Matrikelnummer: Hinweise - Es sind keine Hilfsmaterialien erlaubt. (Keine Bücher, Taschenrechner, Handys) - Sie haben zwei Stunden Zeit. - Insgesamt
MehrKlausurteilnehmer. Wichtige Hinweise. Note: Klausur Informatik Programmierung, 17.09.2012 Seite 1 von 8 HS OWL, FB 7, Malte Wattenberg.
Klausur Informatik Programmierung, 17.09.2012 Seite 1 von 8 Klausurteilnehmer Name: Matrikelnummer: Wichtige Hinweise Es sind keinerlei Hilfsmittel zugelassen auch keine Taschenrechner! Die Klausur dauert
Mehr1. Übung zu "Numerik partieller Differentialgleichungen"
1. Übung zu "Numerik partieller Differentialgleichungen" Simon Gawlok, Eva Treiber Engineering Mathematics and Computing Lab 22. Oktober 2014 1 / 15 1 Organisatorisches 2 3 4 2 / 15 Organisatorisches Ort:
MehrJavakurs für Anfänger
Javakurs für Anfänger Einheit 02: Klassen & Objekte Lorenz Schauer Lehrstuhl für Mobile und Verteilte Systeme Heutige Agenda 1. Teil: Klassen Grundstruktur einer Java-Klasse Eigenschaften (Attribute) Variablen
Mehr