FH D
Fachhochschule Düsseldorf
University of Applied Sciences
1
Informatik 2
Objektorientierte Programmierung in Java
Prof. Dr.‐ Ing. André Stuhlsatz
FH D
Vorlesung: 16:00‐16:45/Pause/17:00‐17:45
Fachhochschule Düsseldorf
University of Applied Sciences
Dipl.‐Ing. in Elektrotechnik, Fachrichtung Nachrichtentechnik
Wissenschaftler am Fraunhofer Institut FIT, Forschungsbereich Augmented Reality
Wissenschaftlicher Angestellter im FB3/FB4 der FH Düsseldorf, Fachgebiet Mustererkennung
Dr.‐Ing. in Elektrotechnik, Fachgebiet Maschinelle Lernverfahren
André Stuhlsatz
Prof. Dr.‐Ing. in Informatik (nebenberuflich) seit 2014
Entwicklungsingenieur (hauptberuflich) bei SMS Siemag AG
Informatik 2
FH D
Fachhochschule Düsseldorf
University of Applied Sciences
2
Informatik Team
Informatik 1:
Prof. Dr.‐Ing. Thomas Zielke
Informatik 2:
Prof. Dr.‐Ing. André Stuhlsatz
Raum S4
Sprechzeit: Mittwochs 13‐14 Uhr
Immer erreichbar via E‐Mail:
andre.stuhlsatz@fh‐duesseldorf.de
Oder wissenschaftliche Mitarbeiter, Raum S1a :
M.Sc. Jens Lippel
B.Eng. Janika Merz
Oder Tutorensprechstunde:
Di. 16h, Mi. 14h & Do. 8:30h
Informatik 2
3
1
FH D
Fachhochschule Düsseldorf
University of Applied Sciences
Vorlesungsunterlagen
Vorlesung:
PowerPoint Folien http://mv.fh‐duesseldorf.de/d_pers/informatik
Wird regelmäßig aktualisiert.
Dort finden Sie auch Programmierbeispiele (Netbeans Projekte)
Klausuren:
Alle Klausuren als PDF‐Datei
Lösung der letzten Klausur (WS 2013/2014)
4
Informatik 2
FH D
Fachhochschule Düsseldorf
University of Applied Sciences
Vorlesungsunterlagen
Anwesenheit wird dringend empfohlen!
Folien sind Stichwortsammlung
Zusätzlich werden wichtige Lehrinhalte erläutert
Tipp: Nicht alles abschreiben, sondern selbst ergänzen!
Letzte Vorlesung: Probeklausur
Klausur: max. 48 Punkte, keine Kofferklausur, sondern einseitig handgeschriebener A4‐Merkzettel
5
Informatik 2
FH D
Praktikum
Fachhochschule Düsseldorf
University of Applied Sciences
Unterlagen und Information auf der Internetseite!
Beginnt ab 17.03.2014
Endgültige Gruppeneinteilung für das Info II Praktikum im Schaukasten neben S1a
4 Präsenztermine (4P) / 3 Projektaufgaben (15P) / 1 Abschlussprojekt (5P):
Präsenztermin: Praktische Programmierübung unter Betreuung (Anwesenheitspflicht!)
Projektaufgabe: Eigenständig zu bearbeitende Aufgaben zw. Präsenzterminen / Aufgabenstellung jeweils nach Präsenztermin
Abschlussprojekt: Größeres Projekt (freiwillig, jedoch für max. Punktzahl notwendig!)
Fragen zum Praktikum beantwortet Hr. Lippel oder Fr. Merz (Raum S1a).
Informatik 2
6
2
FH D
Literatur
Fachhochschule Düsseldorf
University of Applied Sciences
Handbuch der Java‐Programmierung
Guido Krüger, Thomas Stark
Gebundene Ausgabe: 1280 Seiten
Verlag: Addison‐Wesley, München; Auflage: 5. Auflage (28. November 2007)
Sprache: Deutsch
ISBN‐10: 3827323738
Die HTML Ausgabe des Buches ist auch kostenlos verfügbar:
www.javabuch.de
Java ist auch eine Insel
Christian Ullenboom
Geb. Ausgabe: 1308 S.
Galileo Computing, Sprache: Deutsch
ISBN‐10: 3836228734
Online kostenlos: http://openbook.galileocomputing.de/javainsel/
The Java® Language Specification
Sprache: Deutsch
http://docs.oracle.com/javase/
specs/jls/se7/html/index.html
Informatik 2
FH D
Fachhochschule Düsseldorf
University of Applied Sciences
7
Entwicklungsumgebung
In der Vorlesung wird die kostenlose Entwicklungsumgebung
NetBeans verwendet: http://netbeans.org/downloads/
Informatik 2
FH D
Fachhochschule Düsseldorf
University of Applied Sciences
8
Informatik 2: Java
Java ist eine objektorientierte Programmiersprache.
Vergleich C vs. Java
Syntax ist ähnlich (logische Ausdrücke, Schleifen)
Konzept der Programmierung ist grundlegend anders
Warum Java
Java ist kostenlos
Java ist plattformunabhängig
Für Java gibt es schon viele Programme, die Sie
auch verwenden können.
Informatik 2
9
3
FH D
Objektorientierung
Fachhochschule Düsseldorf
University of Applied Sciences
Objektorientierung ist ein Entwicklungskonzept für Software
Programmierparadigma (zugrundeliegendes Prinzip)
Daten werden klassifiziert nach Eigenschaften, Verhalten und Operationen.
Organisationsstrukturen oder reale „Dinge“ (Objekte) werden nachgebildet.
Objekte sind subjektiv
Was ein Objekt ist und was es für wichtige Eigenschaften und Verhalten hat,
hängt von der Wahrnehmungsweise ab.
Objekte sind eigenständig und können mit anderen Objekten interagieren/kommunizieren.
Beispiel: Motorrad
Händler: Baujahr, Preis
Kunde: Leistung, Fahreigenschaften
Finanzamt: Hubraum, CO2 Ausstoß
Versicherung: Leistung, Unfälle
10
Informatik 2
FH D
Abstraktion: Klasse
Fachhochschule Düsseldorf
University of Applied Sciences
Ein Objekt aus der realen Welt wird abstrahiert und dessen allgemeiner Bauplan als Klassendefinition implementiert.
Aus dieser Klasse können viele verschiedene Objekte (Instanzen einer Klasse) erzeugt werden.
Zur Definition einer Klasse gehören
Attribute:
Eigenschaften des Objektes
Methoden: Verhalten des Objektes
Jetzt ein paar Beispiele ohne konkrete Implementierung!
11
Informatik 2
FH D
Beispiel: Fußballspieler
Fachhochschule Düsseldorf
University of Applied Sciences
Reales System: Fußballmannschaft
Abstrakter:
Eine Spieler‐Klasse, davon 11 Instanzen
Attribute
Spiele: Tore:
in:
out:
Name:
Nummer:
Zahl 0…100
Zahl 0..22
Zahl 0..22
Zahl 0..22
Zeichenkette
Zahl
Methoden:
„Schieße auf das Tor“
„Ein Rote Karte mehr“
„Auswechseln“
Informatik 2
12
4
FH D
Fachhochschule Düsseldorf
University of Applied Sciences
SMS SIEMAG: Bandposition in Walzstraße
v1
v2
v3
Bandkopf wird beim Walzen schneller (Massenerhalt)
Wann sind die
Bandköpfe wo?
Objekte:
Walzen
Band
Informatik 2
FH D
13
Einfaches Java Programm
Fachhochschule Düsseldorf
University of Applied Sciences
Dieses einfache Java Programm gibt eine Meldung auf dem Bildschirm aus
public class Anwendung {
public static void main(String[] args) {
System.out.println("Erstes Beispiel");
}
}
Informatik 2
FH D
Fachhochschule Düsseldorf
University of Applied Sciences
14
Die Klasse „Anwendung“
public class Anwendung {
public static void main(String[] args) {
System.out.println("Erstes Beispiel");
}
}
public:
Sichtbarkeit „öffentlich“ – erst mal machen wir alles öffentlich.
class:
Klasse, Schlüsselwort von Java
Anwendung: Name der Klasse. Auch gleich Dateinamen „Anwendung.java“
{…}: Block. Alles zwischen den geschweiften Klammern gehört zur Klasse
Informatik 2
15
5
FH D
main Methode
Fachhochschule Düsseldorf
University of Applied Sciences
public class Anwendung {
public static void main(String[] args) {
System.out.println("Erstes Beispiel");
}
}
public:
Sichtbarkeit „öffentlich“ – erst mal machen wir alles öffentlich.
static:
Zugriff direkt ohne Objekt möglich später mehr dazu…
void: Rückgabetyp. Die Methode gibt nichts zurück
main(String[] args) :
Dies ist das Hauptprogramm. Eventuell werden aus der Kommandozeile Zeichenketten als Übergabeparameter bereitgestellt später…
{…}: Block. Alles zwischen den geschweiften Klammern gehört zur Methode
Informatik 2
FH D
16
Klasse für Eigenschaften von Spieler
Fachhochschule Düsseldorf
University of Applied Sciences
Spieler:
Jeder Spieler einer Fußballmannschaft soll
einen Namen und eine
Spielstärke haben.
public class Spieler {
int spielstärke;
String name;
}
Deklaration von Variablen:
<Datentyp> <Variablenname>;
Es ist nun der „Bauplan“ für einen Spieler gegeben.
Es gibt aber noch keine Spieler!
Spieler müssen erst noch erzeugt werden:
<Klassenname> <Variablenname>;
<Variablenname> = new <Klassenname> ();
<Klassenname> <Variablenname> = new <Klassenname> ();
Spieler mittelFeld = new Spieler();
Informatik 2
FH D
Fachhochschule Düsseldorf
University of Applied Sciences
17
Ein Spieler wird erzeugt und bekommt einen Namen
Spieler.java
public class Spieler {
int spielstärke;
String name;
}
Anwendung.java
public class Anwendung {
public static void main(String[] args){
Spieler mittelFeld = new Spieler();
mittelFeld.name = "Jim Knopf";
}
}
Zugriff auf Eigenschaften und Methoden mit „.“
<Variablenname>.<Eigenschaft>
mittelFeld.name = "Jim Knopf";
Informatik 2
18
6
FH D
Erstes Programmbeispiel
Fachhochschule Düsseldorf
University of Applied Sciences
public class Spieler {
int spielstärke;
String name;
}
public class Anwendung {
public static void main(String[] args) {
Spieler mittelFeld = new Spieler();
mittelFeld.name = "Jim Knopf";
mittelFeld.spielstärke = 57;
System.out.println("Die Spielstärke von " +
mittelFeld.name +
" ist " +
mittelFeld.spielstärke);
}
}
19
Informatik 2
FH D
Mehrere Spieler
Fachhochschule Düsseldorf
University of Applied Sciences
Es können mehrere Instanzen (Objekte) der Klasse Spieler erzeugt werden.
Jede Instanz hat ihre eigenen Eigenschaften.
Eine Instanz weiß nicht, ob es noch andere Instanzen seiner Klasse gibt.
public class Anwendung {
public static void main(String[] args) {
Spieler mittelFeld = new Spieler();
Spieler abwehr
= new Spieler();
Spieler sturm
= new Spieler();
mittelFeld.name
abwehr.name
sturm.name
= "Jim Knopf";
= "Lukas Loko";
= "Max Mahlzahn";
}
Informatik 2
FH D
Fachhochschule Düsseldorf
University of Applied Sciences
20
Methoden einer Klasse
public class Spieler {
int spielstärke;
String name;
public void zeigeInfo() {
System.out.println("Die Spielstärke von " +
name +
" ist " +
spielstärke);
}
}
Methoden sind die „Funktionen“ einer Klasse.
Diese Methoden werden i.d.R. verwendet, um auf die internen Attribute lesend oder schreibend zuzugreifen.
Methoden können mehrere oder keine Übergabewertehaben haben
Methoden können einen oder keinen Rückgabewert haben.
Auf die Methoden wird durch den Punktoperator zugegriffen:
Beispiel: mittelFeld.zeigeInfo()
Informatik 2
21
7