Informatik 2

Werbung
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
Herunterladen