Vorlesung Programmieren
|
|
- Reiner Reuter
- vor 7 Jahren
- Abrufe
Transkript
1 Vorlesung Programmieren 1. Objekte und Klassen Jun.-Prof. Dr.-Ing. Anne Koziolek Version 1.0 ARBEITSGRUPPE ARCHITECTURE-DRIVEN REQUIREMENTS ENGINEERING (ARE) INSTITUT FÜR PROGRAMMSTRUKTUREN UND DATENORGANISATION (IPD), KIT-FAKULTÄT FÜR INFORMATIK are.ipd.kit.edu KIT Universität des Landes Baden-Württemberg und nationales Forschungszentrum in der Helmholtz-Gemeinschaft
2 Organisatorisches Erstes Tutorium: bringen Sie Ihren Laptop mit, falls vorhanden Die Tutorien finden ab heute statt Das Tutorium 19 entfällt aus organisatorischen Gründen Falls Sie diesbezüglich keine bekommen haben, fragen Sie bitte Frau Yurchenko nach der Vorlesung Einverständniserklärung bitte bis per Programmieren- Briefkasten abgeben, falls noch nicht geschehen Parallel zur Vorlesung im Audimax gibt es Live-Streams in die Hörsäle: -101, Gebäude 50.34, 1. UG -102, Gebäude 50.34, 1. UG Vorlesung Programmieren: Objekte und Klassen Jun.-Prof. Dr.-Ing. Anne Koziolek, Arbeitsgruppe Architecture-Driven Requirements
3 Semesterplan - Überblick Objekte und Klassen Typen und Variablen Kontrollstrukturen Konstruktoren und Methoden Arrays; Konvertierung, Datenkapselung, Sichtbarkeit Listen und Abstrakte Datentypen Vererbung Interfaces und Generics; Exceptions Rekursion; Java API Testen und Assertions Parsen, Suchen, Sortieren Präsenzübung Objektorientierte Design-Prinzipien Vom Programm zur Maschine, Best Practices Vorlesung Programmieren: Objekte und Klassen Jun.-Prof. Dr.-Ing. Anne Koziolek, Arbeitsgruppe Architecture-Driven Requirements
4 Literaturhinweis - Weiterlesen Dietmar Ratz, Jens Scheffler, Detlef Seese und Jan Wiesenberger Grundkurs Programmieren in Java, 7. Auflage, 2014 (mit Java 8), Hansa-Verlag Abschnitt 2.2. Was heißt Programmieren? Abschnitt 3.1. Mein erstes Programm Vorlesung Programmieren: Objekte und Klassen Jun.-Prof. Dr.-Ing. Anne Koziolek, Arbeitsgruppe Architecture-Driven Requirements
5 Was ist Programmierung? Aufgabe: Aufstellung der Personen der Größe nach Verfügbare Instruktionen: 1. nach links oder rechts weitergeben 2. nach links oder rechts weitergeben 3. Personen, die oder halten, wechseln den Platz Beispielablauf: 1. nach rechts 2. Platz wechseln 3. nach links 4. Platz wechseln Vorlesung Programmieren: Objekte und Klassen Jun.-Prof. Dr.-Ing. Anne Koziolek, Arbeitsgruppe Architecture-Driven Requirements
6 War das nun Programmieren? Zum Teil ja: Präzise festgelegter Prozess Eindeutige Instruktionen Es fehlt: Ein allgemeiner Plan, der angibt, welcher Schritt als nächstes zu tun ist Allgemein: für beliebige Anzahl von Personen Möglichst abstrakt, d.h. (z.b.) nicht nur auf Personen bezogen Dies wäre dann ein Programm! Vorlesung Programmieren: Objekte und Klassen Jun.-Prof. Dr.-Ing. Anne Koziolek, Arbeitsgruppe Architecture-Driven Requirements
7 Bubblesort Implementierung public class BubbleSort { public static void sort(long[] a) { for (int pass = 1; pass < a.length; pass++) { for (int i = 0; i < a.length - pass; i++) { if (a[i] > a[i+1]) { long tmp = a[i]; a[i] = a[i+1]; a[i+1] = tmp; Vorlesung Programmieren: Objekte und Klassen Jun.-Prof. Dr.-Ing. Anne Koziolek, Arbeitsgruppe Architecture-Driven Requirements
8 System.out.println("Hello World!"); Vorlesung Programmieren: Objekte und Klassen Jun.-Prof. Dr.-Ing. Anne Koziolek, Arbeitsgruppe Architecture-Driven Requirements
9 System.out.println("Hello World!"); Wie starte ich mein Java-Programm? Vorlesung Programmieren: Objekte und Klassen Jun.-Prof. Dr.-Ing. Anne Koziolek, Arbeitsgruppe Architecture-Driven Requirements
10 Praxis: Übersetzen von Java-Klassen Der Prozessor versteht kein Programm in einer höheren Programmiersprache, wie z.b. Java! Er verarbeitet nur Binärcode! Java-Programme müssen daher zunächst übersetzt ( compiliert ) werden javac Jede Klasse in einer eigenen Datei: class SimpleProgram Datei SimpleProgram.java Dateiname muss dem Klassennamen entsprechen Klassendeklaration in Java SimpleProgram. java Java-Compiler javac Ausführbare Version der Klasse ( Bytecode ) SimpleProgram. class Vorlesung Programmieren: Objekte und Klassen Jun.-Prof. Dr.-Ing. Anne Koziolek, Arbeitsgruppe Architecture-Driven Requirements
11 System.out.println("Hello World!");...$javac SimpleProgram.java Wie starte ich mein Java-Programm? Kompilieren Vorlesung Programmieren: Objekte und Klassen Jun.-Prof. Dr.-Ing. Anne Koziolek, Arbeitsgruppe Architecture-Driven Requirements
12 Praxis: Ausführen von Java-Programmen Mit javac übersetze Programme (Klassen) werden mit dem Java-Interpreter java ausgeführt. Im Beispiel: java SimpleProgram Dabei wird in der angegebenen Klasse die Methode main gesucht und diese gestartet. main muss deklariert sein als public static void main(string args[]) {... Ausgaben können mittels System.out.print() und System.out.println() vorgenommen werden; letzteres gibt einen Zeilenvorschub mit aus Vorlesung Programmieren: Objekte und Klassen Jun.-Prof. Dr.-Ing. Anne Koziolek, Arbeitsgruppe Architecture-Driven Requirements
13 System.out.println("Hello World!");...$javac SimpleProgram.java...$java SimpleProgram Hello World!...$ Wie starte ich mein Java-Programm? Kompilieren Ausführen Vorlesung Programmieren: Objekte und Klassen Jun.-Prof. Dr.-Ing. Anne Koziolek, Arbeitsgruppe Architecture-Driven Requirements
14 Wozu Compiler? Ein Programm ist ein Algorithmus, der in einer Programmiersprache geschrieben wurde. Die Programmierer sprechen also mit dem Rechner. Zum Sprechen kann in einer Sprache erfolgen, die der Rechner direkt versteht. Binärcode Eine Notation mit Nullen und Einsen Für Menschen schwer verständlich Idee: Maschinennahe Sprachen, auch Assemblersprache genannt. Assemblersprache besteht aus Buchstaben und Ziffern, z.b.: MOV RG1 RG5 ADD RG2 RG Vorlesung Programmieren: Objekte und Klassen Jun.-Prof. Dr.-Ing. Anne Koziolek, Arbeitsgruppe Architecture-Driven Requirements
15 Wozu Compiler? Assemblercode kann direkt vom Prozessor ausgeführt werden. Abhängig vom Prozessortyp Verwenden einer benutzernahen Sprache Höhere Programmiersprachen Übersetzer notwendig Übersetzer ist eine spezielle Software, die den Code einer höheren Programmiersprache übersetzt in die Maschinensprache oder eine Zwischensprachen Vorlesung Programmieren: Objekte und Klassen Jun.-Prof. Dr.-Ing. Anne Koziolek, Arbeitsgruppe Architecture-Driven Requirements
16 Compiler vs. Interpreter Compiler Compiler transformieren die Programme in einer höheren Sprache in maschinennahe Programme. Compiler übersetzen die Programme nicht vollständig. Die Programme werden später ausgeführt. Interpreter Interpreter werden benutzt, wenn die Programme Anweisung für Anweisung übersetzt werden. Die Programme werden unmittelbar ausgeführt Vorlesung Programmieren: Objekte und Klassen Jun.-Prof. Dr.-Ing. Anne Koziolek, Arbeitsgruppe Architecture-Driven Requirements
17 Übersetzung in Maschinennahe Sprache Traditionelle höhere Programmiersprachen benötigen für jeden Prozessortyp einen Compiler. Der Quellcode wird in das Zielprogramm übersetzt. Das Programm muss für jeden Prozessortyp übersetzt werden Vorlesung Programmieren: Objekte und Klassen Jun.-Prof. Dr.-Ing. Anne Koziolek, Arbeitsgruppe Architecture-Driven Requirements
18 Interpretation nach Vorübersetzung Java hingegen ist plattformunabhängig. Nur ein Compiler wird für alle Plattformen benötigt. Compiler übersetzt den Quellcode in Java-Bytecode. Java-Bytecode ist unabhängig von einem bestimmten Prozessor. Java-Bytecode kann nicht unmittelbar ausgeführt werden. Java-Bytecode ist portabel. Java-Bytecode wird für einen virtuellen Prozessor gefertigt. Der virtuelle Prozessor wird die virtuelle Maschine (VM) genannt. Java-Interpreter analysiert den Java-Bytecode und führt ihn aus Vorlesung Programmieren: Objekte und Klassen Jun.-Prof. Dr.-Ing. Anne Koziolek, Arbeitsgruppe Architecture-Driven Requirements
19 Übersetzung und Ausführung in Java Java-Quellcode Vector2D.java Java-Compiler javac Java-Bytecode Vector2D.class java Java VM für Windows Java VM für Linux Java VM für MacOS Ausführbares Windows-Programm Ausführbares Linux- Programm Ausführbares MacOS-Programm Vorlesung Programmieren: Objekte und Klassen Jun.-Prof. Dr.-Ing. Anne Koziolek, Arbeitsgruppe Architecture-Driven Requirements
20 Just In Time Compilation Ein leichtgewichtiger Compiler Findet während der Ausführung des Codes statt Ziel: Optimierung des Codes zum Verbessern der Performance Optimierung des häufig auszuführenden Codes, wie z.b. Schleifen Beispiele für die Code-Optimierung: Entfernen von redundanten Aufrufen (z.b. durch Ersetzen mit einer lokalen Variable) Copy Propagation (Beispiel: Ersetzen von z=x+y und y=f durch z=x+f) Entfernen vom toten Code (Code, der nie aufgerufen wird oder dessen Ergebnis nie benutzt wird) Vorlesung Programmieren: Objekte und Klassen Jun.-Prof. Dr.-Ing. Anne Koziolek, Arbeitsgruppe Architecture-Driven Requirements
21 System.out.println("Hello World!");...$javac SimpleProgram.java...$java SimpleProgram Hello World!...$ Wie ändere ich die Ausgabe? Vorlesung Programmieren: Objekte und Klassen Jun.-Prof. Dr.-Ing. Anne Koziolek, Arbeitsgruppe Architecture-Driven Requirements
22 System.out.println("Hello World!");...$javac SimpleProgram.java...$java SimpleProgram Hello World!...$ Wie ändere ich die Ausgabe? Vorlesung Programmieren: Objekte und Klassen Jun.-Prof. Dr.-Ing. Anne Koziolek, Arbeitsgruppe Architecture-Driven Requirements
23 System.out.println("Hello!");...$javac SimpleProgram.java...$java SimpleProgram Hello World!...$ Wie ändere ich die Ausgabe? Vorlesung Programmieren: Objekte und Klassen Jun.-Prof. Dr.-Ing. Anne Koziolek, Arbeitsgruppe Architecture-Driven Requirements
24 System.out.println("Hello!");...$javac SimpleProgram.java...$java SimpleProgram Hello World!...$ Wie ändere ich die Ausgabe? Muss ich das Programm wieder kompilieren? Vorlesung Programmieren: Objekte und Klassen Jun.-Prof. Dr.-Ing. Anne Koziolek, Arbeitsgruppe Architecture-Driven Requirements
25 System.out.println("Hello!");...$javac SimpleProgram.java...$java SimpleProgram Hello World!...$ Wie ändere ich die Ausgabe? Muss ich das Programm wieder kompilieren? Ja Vorlesung Programmieren: Objekte und Klassen Jun.-Prof. Dr.-Ing. Anne Koziolek, Arbeitsgruppe Architecture-Driven Requirements
26 System.out.println("Hello!");...$javac SimpleProgram.java...$java SimpleProgram Hello World!...$javac SimpleProgram.java...$java SimpleProgram Hello! Wie ändere ich die Ausgabe? Muss ich das Programm wieder kompilieren? Ja Vorlesung Programmieren: Objekte und Klassen Jun.-Prof. Dr.-Ing. Anne Koziolek, Arbeitsgruppe Architecture-Driven Requirements
27 System.out.println("Hello"); System.out.println("World!");...$javac SimpleProgram.java...$java SimpleProgram Hello World!...$javac SimpleProgram.java...$java SimpleProgram Hello! Welche Ausgabe erwarte ich? Vorlesung Programmieren: Objekte und Klassen Jun.-Prof. Dr.-Ing. Anne Koziolek, Arbeitsgruppe Architecture-Driven Requirements
28 System.out.println("Hello"); System.out.println("World!");...$ Welche Ausgabe erwarte ich? Vorlesung Programmieren: Objekte und Klassen Jun.-Prof. Dr.-Ing. Anne Koziolek, Arbeitsgruppe Architecture-Driven Requirements
29 System.out.println("Hello"); System.out.println("World!");...$javac SimpleProgram.java Welche Ausgabe erwarte ich? Vorlesung Programmieren: Objekte und Klassen Jun.-Prof. Dr.-Ing. Anne Koziolek, Arbeitsgruppe Architecture-Driven Requirements
30 System.out.println("Hello"); System.out.println("World!");...$javac SimpleProgram.java...$java SimpleProgram Hello World! Welche Ausgabe erwarte ich? Vorlesung Programmieren: Objekte und Klassen Jun.-Prof. Dr.-Ing. Anne Koziolek, Arbeitsgruppe Architecture-Driven Requirements
31 System.out.println("1+1");...$ Welche Ausgabe erwarte ich? Vorlesung Programmieren: Objekte und Klassen Jun.-Prof. Dr.-Ing. Anne Koziolek, Arbeitsgruppe Architecture-Driven Requirements
32 System.out.println("1+1");...$javac SimpleProgram.java Welche Ausgabe erwarte ich? Vorlesung Programmieren: Objekte und Klassen Jun.-Prof. Dr.-Ing. Anne Koziolek, Arbeitsgruppe Architecture-Driven Requirements
33 System.out.println("1+1");...$javac SimpleProgram.java...$java SimpleProgram 1+1 Welche Ausgabe erwarte ich? Vorlesung Programmieren: Objekte und Klassen Jun.-Prof. Dr.-Ing. Anne Koziolek, Arbeitsgruppe Architecture-Driven Requirements
34 Ein Beispiel für eine Klasse Klassenname Methodenname System.out.println("Hello"); System.out.println("World!"); main-methode...$javac SimpleProgram.java...$java SimpleProgram Hello World!...$ Woraus besteht das einfache Beispiel? Vorlesung Programmieren: Objekte und Klassen Jun.-Prof. Dr.-Ing. Anne Koziolek, Arbeitsgruppe Architecture-Driven Requirements
35 int firstnumber = 1; int secondnumber = 2; System.out.println(firstNumber+secondNumber);...$ Welche Ausgabe erwarte ich? Vorlesung Programmieren: Objekte und Klassen Jun.-Prof. Dr.-Ing. Anne Koziolek, Arbeitsgruppe Architecture-Driven Requirements
36 int firstnumber = 1; int secondnumber = 2; System.out.println(firstNumber+secondNumber);...$javac SimpleProgram.java...$java SimpleProgram 3 Welche Ausgabe erwarte ich? Vorlesung Programmieren: Objekte und Klassen Jun.-Prof. Dr.-Ing. Anne Koziolek, Arbeitsgruppe Architecture-Driven Requirements
37 int firstnumber = 1; int secondnumber = 2; System.out.println(firstNumber+secondNumber);...$javac SimpleProgram.java...$java SimpleProgram 3 Woraus besteht das modifizierte Beispiel? Vorlesung Programmieren: Objekte und Klassen Jun.-Prof. Dr.-Ing. Anne Koziolek, Arbeitsgruppe Architecture-Driven Requirements
38 Variablendeklaration int firstnumber = 1; int secondnumber = 2; System.out.println(firstNumber+secondNumber);...$javac SimpleProgram.java...$java SimpleProgram 3 Woraus besteht das modifizierte Beispiel? Vorlesung Programmieren: Objekte und Klassen Jun.-Prof. Dr.-Ing. Anne Koziolek, Arbeitsgruppe Architecture-Driven Requirements
39 Variablendeklaration Wert int firstnumber = 1; int secondnumber = 2; System.out.println(firstNumber+secondNumber);...$javac SimpleProgram.java...$java SimpleProgram 3 Woraus besteht das modifizierte Beispiel? Vorlesung Programmieren: Objekte und Klassen Jun.-Prof. Dr.-Ing. Anne Koziolek, Arbeitsgruppe Architecture-Driven Requirements
40 Variablenname Variablendeklaration Wert int firstnumber = 1; int secondnumber = 2; System.out.println(firstNumber+secondNumber);...$javac SimpleProgram.java...$java SimpleProgram 3 Woraus besteht das modifizierte Beispiel? Vorlesung Programmieren: Objekte und Klassen Jun.-Prof. Dr.-Ing. Anne Koziolek, Arbeitsgruppe Architecture-Driven Requirements
41 Variablentyp Variablenname Variablendeklaration Wert int firstnumber = 1; int secondnumber = 2; System.out.println(firstNumber+secondNumber);...$javac SimpleProgram.java...$java SimpleProgram 3 Woraus besteht das modifizierte Beispiel? Vorlesung Programmieren: Objekte und Klassen Jun.-Prof. Dr.-Ing. Anne Koziolek, Arbeitsgruppe Architecture-Driven Requirements
42 Variablentyp Variablenname Variablendeklaration Wert int firstnumber = 1; int secondnumber = 2; System.out.println(firstNumber+secondNumber); Initialisierung...$javac SimpleProgram.java...$java SimpleProgram 3 Woraus besteht das modifizierte Beispiel? Vorlesung Programmieren: Objekte und Klassen Jun.-Prof. Dr.-Ing. Anne Koziolek, Arbeitsgruppe Architecture-Driven Requirements
43 System.out.println("Hello"); System.out.println("World!");...$javac SimpleProgram.java...$java SimpleProgram Hello World!...$ In welcher Reihenfolge wird mein Programm ausgeführt? Vorlesung Programmieren: Objekte und Klassen Jun.-Prof. Dr.-Ing. Anne Koziolek, Arbeitsgruppe Architecture-Driven Requirements
44 System.out.println("Hello"); System.out.println("World!");...$javac SimpleProgram.java...$java SimpleProgram Hello World!...$ In welcher Reihenfolge wird mein Programm ausgeführt? Die Ausführung beginnt mit der main-methode Vorlesung Programmieren: Objekte und Klassen Jun.-Prof. Dr.-Ing. Anne Koziolek, Arbeitsgruppe Architecture-Driven Requirements
45 System.out.println("Hello"); System.out.println("World!");...$javac SimpleProgram.java...$java SimpleProgram Hello World!...$ In welcher Reihenfolge wird mein Programm ausgeführt? Die Ausführung beginnt mit der main-methode Die Ausführung beginnt mit der ersten Zeile der main-methode Vorlesung Programmieren: Objekte und Klassen Jun.-Prof. Dr.-Ing. Anne Koziolek, Arbeitsgruppe Architecture-Driven Requirements
46 System.out.println("Hello"); System.out.println("World!");...$javac SimpleProgram.java...$java SimpleProgram Hello World!...$ In welcher Reihenfolge wird mein Programm ausgeführt? Die Ausführung beginnt mit der main-methode Die Ausführung beginnt mit der ersten Zeile der main-methode Die Ausführung endet mit der letzten Zeile der main-methode Vorlesung Programmieren: Objekte und Klassen Jun.-Prof. Dr.-Ing. Anne Koziolek, Arbeitsgruppe Architecture-Driven Requirements
47 System.out.println("Hello"); static void printworld(){ System.out.println("World!");...$ Welche Ausgabe erwarten wir? Vorlesung Programmieren: Objekte und Klassen Jun.-Prof. Dr.-Ing. Anne Koziolek, Arbeitsgruppe Architecture-Driven Requirements
48 System.out.println("Hello"); static void printworld(){ System.out.println("World!");...$ Welche Ausgabe erwarten wir? Wird die Methode printworld ausgeführt? Vorlesung Programmieren: Objekte und Klassen Jun.-Prof. Dr.-Ing. Anne Koziolek, Arbeitsgruppe Architecture-Driven Requirements
49 System.out.println("Hello"); static void printworld(){ System.out.println("World!");...$ Welche Ausgabe erwarten wir? Wird die Methode printworld ausgeführt? Nein Vorlesung Programmieren: Objekte und Klassen Jun.-Prof. Dr.-Ing. Anne Koziolek, Arbeitsgruppe Architecture-Driven Requirements
50 System.out.println("Hello"); static void printworld(){ System.out.println("World!");...$javac SimpleProgram.java...$java SimpleProgram Hello Welche Ausgabe erwarten wir? Wird die Methode printworld ausgeführt? Nein Vorlesung Programmieren: Objekte und Klassen Jun.-Prof. Dr.-Ing. Anne Koziolek, Arbeitsgruppe Architecture-Driven Requirements
51 System.out.println("Hello"); static void printworld(){ System.out.println("World!");...$ Wie kann ich die Methode printworld ausführen? Vorlesung Programmieren: Objekte und Klassen Jun.-Prof. Dr.-Ing. Anne Koziolek, Arbeitsgruppe Architecture-Driven Requirements
52 System.out.println("Hello"); printworld(); static void printworld(){ System.out.println("World!");...$ Wie kann ich die Methode printworld ausführen? Vorlesung Programmieren: Objekte und Klassen Jun.-Prof. Dr.-Ing. Anne Koziolek, Arbeitsgruppe Architecture-Driven Requirements
53 System.out.println("Hello"); printworld(); static void printworld(){ System.out.println("World!");...$javac SimpleProgram.java...$java SimpleProgram Hello World Wie kann ich die Methode printworld ausführen? Vorlesung Programmieren: Objekte und Klassen Jun.-Prof. Dr.-Ing. Anne Koziolek, Arbeitsgruppe Architecture-Driven Requirements
54 Billard-Spiel Programmieren ist nicht nur die Definition von Befehlen und deren Ausführungsreihenfolge. Datenmodellierung y (px,py) (vx,vy) x Vorlesung Programmieren: Objekte und Klassen Jun.-Prof. Dr.-Ing. Anne Koziolek, Arbeitsgruppe Architecture-Driven Requirements
55 Billard-Spiel Angenommen, wir wollen ein Billard-Spiel programmieren Erster Schritt: Simulation der Bewegung der Kugeln Tisch Größe Kugeln: jede Kugel hat (zu jedem Zeitpunkt): Eine Position auf dem Tisch Eine Bewegungsrichtung und Geschwindigkeit Evtl. Effet (Drall, Spin) Kugeln können aneinanderstoßen und ändern dann die Bewegungsrichtung y (px,py) (vx,vy) x Vorlesung Programmieren: Objekte und Klassen Jun.-Prof. Dr.-Ing. Anne Koziolek, Arbeitsgruppe Architecture-Driven Requirements
56 Objektorientierte Programmierung (OOP) Grundidee der Objektorientierten Programmierung: Jedes Objekt der Realität hat ein virtuelles Gegenstück Objekte kooperieren durch Datenaustausch Im Zentrum: Modellierungsfrage Wer macht was? (Im Gegensatz zu: Wie wird s gemacht? ) Gebräuchliche Benennungen für Datenaustausch: Objekt A sendet Nachricht an Objekt B Objekt A ruft eine Methode von Objekt B auf y (px,py) (vx,vy) x Vorlesung Programmieren: Objekte und Klassen Jun.-Prof. Dr.-Ing. Anne Koziolek, Arbeitsgruppe Architecture-Driven Requirements
57 OOP am Beispiel Billard-Spiel Reale Welt Objektname Programmwelt Objekte Attribute Modellierung length width name getlength() getwidth() getname() addball(...) Table t 254 cm 127 cm Toronto Deluxe Methoden Ball blueball Ball redball diameter Ball whiteball 57,2 mm diameter 57,2 mm weightdiameter 170 g 57,2 mm weight 170 g color weight 170 gred color RED xpos color 30 cmred xpos 30 cm ypos xpos 50 cm30 cm ypos 50 cm ypos 50 cm simulationstep(...) simulationstep(...) simulationstep(...) Vorlesung Programmieren: Objekte und Klassen Jun.-Prof. Dr.-Ing. Anne Koziolek, Arbeitsgruppe Architecture-Driven Requirements
58 Klassen: Der Bauplan von Objekten Objekt Klasse (Java) Ball redball diameter 57,2 mm weight 170 g color RED xpos 30 cm ypos 50 cm simulationstep(...) class Ball { // Attribute float diameter; // in mm Int weight; // in gram... float xpos; // in cm float ypos; // in cm... // Methoden void simulationstep() { Aus einer Klasse können beliebig viele Objekte ( Objekt-Instanzen, Instanzen der Klasse ) dieses Bauplans erzeugt werden Vorlesung Programmieren: Objekte und Klassen Jun.-Prof. Dr.-Ing. Anne Koziolek, Arbeitsgruppe Architecture-Driven Requirements
59 Definition: Objekte und Klassen Ein Objekt wird durch drei Aspekte charakterisiert: Identität Objekteigenschaften können sich ändern, die Identität des Objekts bleibt aber gleich Durch Objektnamen sichergestellt Zustand Menge der Eigenschaften des Objekts zu einem Zeitpunkt Durch Attribute realisiert Verhalten Ausführen von Aktionen, die den Zustand ändern können Durch Methoden realisiert Eine Klasse ist ein Bauplan für gleichartige Objekte und legt fest welche Attribute die Objekt-Instanzen der Klasse haben welche Methoden die Objekt-Instanzen der Klasse haben Grady Booch, Object Oriented Analysis and Design Vorlesung Programmieren: Objekte und Klassen Jun.-Prof. Dr.-Ing. Anne Koziolek, Arbeitsgruppe Architecture-Driven Requirements
60 Ursprung Objektorientierter Programmierung 1960er Jahre: Ole-Johan Dahl ( ) und Kristen Nygaard ( ) entwickeln die Programmiersprache Simula genauer: erst Simula I, danach Simula 67 Simula steht für SIMulation LAnguage, eine Programmiersprache für Simulationen Erste Programmiersprache, die zwischen Klassen und Objekten unterscheidet Viele weitere Konzepte aus Simula finden sich in heutigen Objektorientierten Sprachen wieder Vorlesung Programmieren: Objekte und Klassen Jun.-Prof. Dr.-Ing. Anne Koziolek, Arbeitsgruppe Architecture-Driven Requirements
61 Klassen in Java class Ball { // Attribute float diameter; // in mm int weight; // in gram... float xposition; // in cm float yposition; // in cm float xvelocity; // in m/s Float yvelocity; // in m/s // Methoden... Kommentare Zwei Arten von Kommentaren in Java: // Zeilenkommentar /* längerer Kommentar über mehrere Zeilen */ Schema: class Name { Klassenrumpf Klassen-Deklaration Vorlesung Programmieren: Objekte und Klassen Jun.-Prof. Dr.-Ing. Anne Koziolek, Arbeitsgruppe Architecture-Driven Requirements
62 Ist die Klassendefinition gut so? class Ball { // Attribute float diameter; // in mm int weight; // in gram... float xposition; // in cm float yposition; // in cm float xvelocity; // in m/s Float yvelocity; // in m/s Wir haben zweimal fast dasselbe Konstrukt. Lässt sich das vereinfachen? // Methoden... Ja! Abstraktion der x/y-paare in eine neue Klasse Vector2D Vorlesung Programmieren: Objekte und Klassen Jun.-Prof. Dr.-Ing. Anne Koziolek, Arbeitsgruppe Architecture-Driven Requirements
63 Abstraktion: Klasse für Koordinatenpaare class Ball { // Attribute float diameter; // in mm int weight; // in gram... float Vector2D xposition; position; // in cm float Vector2D yposition; velocity; // in cm m/s float xvelocity; // in m/s Float // Methoden yvelocity; // in m/s... // Methoden... class Vector2D { // Attribute: x/y-koordinaten float x; float y; // Methoden... Was haben wir gewonnen? Kürzere, übersichtlichere Klassendeklaration Strukturierung, Kapselung von Daten Vorlesung Programmieren: Objekte und Klassen Jun.-Prof. Dr.-Ing. Anne Koziolek, Arbeitsgruppe Architecture-Driven Requirements
64 Wie erzeugt man Objekte? Objekte werden mit dem new-operator erzeugt Vector2D position = new Vector2D(); // erzeugt Vektor position Vector2d velocity = new Vector2D(); // erzeugt Vektor velocity Ball ball = new Ball(); // erzeugt Billardkugel Vorlesung Programmieren: Objekte und Klassen Jun.-Prof. Dr.-Ing. Anne Koziolek, Arbeitsgruppe Architecture-Driven Requirements
65 Jetzt sind Sie gefragt! Wir modellieren die Mensa Bauplan für gleichartige Objekte Welche Klassen benötigen wir? Welche Attribute? Welche Methoden? Eigenschaften eines Objekts (Zustand) Aktionen, welche den Objekt-Zustand ändern können (Verhalten) Vorlesung Programmieren: Objekte und Klassen Jun.-Prof. Dr.-Ing. Anne Koziolek, Arbeitsgruppe Architecture-Driven Requirements
66 Wir modellieren die Mensa! name: String postleitzahl: int strasse: String Mensa 1 1 Speiseplan getgericht(name): Gericht * 1..* name: String preis: double Gericht getspeiseplan(): Speiseplan bezahlen(gericht: Gericht, geld: int): int * * Mensabesucher vorname: String nachname: String hunger: boolean geld: int essen(gericht: Gericht) besuchen(mensa: Mensa) Vorlesung Programmieren: Objekte und Klassen Jun.-Prof. Dr.-Ing. Anne Koziolek, Arbeitsgruppe Architecture-Driven Requirements
67 Jetzt sind Sie gefragt! Schreiben Sie eine main-methode für die Klasse Vector2D, die die Koordinaten eines Vektors ausgibt. class Vector2D { // attributes: // x/y-coordinates float x; float y; class Vector2D { // attributes: x/y-coordinates float x; float y; // main method (for test) public static void main(string args[]) { Vector2D v = new Vector2D(); System.out.println("v.x = " + v.x); System.out.println("v.y = " + v.y); Vorlesung Programmieren: Objekte und Klassen Jun.-Prof. Dr.-Ing. Anne Koziolek, Arbeitsgruppe Architecture-Driven Requirements
68 Zusammenfassung Objekte modellieren Gegenstände der realen Welt Klassen sind Baupläne für Objekte Klassen in Java werden deklariert mit class Name { Klassenrumpf Neue Objekte einer Klasse werden mittels new erzeugt Klassen erlauben eine Erweiterung der eingebauten Java-Datentypen Vorlesung Programmieren: Objekte und Klassen Jun.-Prof. Dr.-Ing. Anne Koziolek, Arbeitsgruppe Architecture-Driven Requirements
Vorlesung Programmieren
Vorlesung Programmieren 1. Objekte und Klassen 27.10.2014 Prof. Dr. Ralf H. Reussner Version 1.1 LEHRSTUHL FÜR SOFTWARE-DESIGN UND QUALITÄT (SDQ) INSTITUT FÜR PROGRAMMSTRUKTUREN UND DATENORGANISATION (IPD),
MehrVorlesung Programmieren
Vorlesung Programmieren 1. Objekte und Klassen 21.10.2015 Prof. Dr. Ralf H. Reussner Version 1.0 LEHRSTUHL FÜR SOFTWARE-DESIGN UND QUALITÄT (SDQ) INSTITUT FÜR PROGRAMMSTRUKTUREN UND DATENORGANISATION (IPD),
MehrVorlesung Programmieren
Vorlesung Programmieren 11 Rekursion Jun.-Prof. Dr.-Ing. Anne Koziolek Version 1.1 ARBEITSGRUPPE ARCHITECTURE-DRIVEN REQUIREMENTS ENGINEERING (ARE) INSTITUT FÜR PROGRAMMSTRUKTUREN UND DATENORGANISATION
MehrVorkurs Informatik WiSe 17/18
Java Einführung Dr. Werner Struckmann / Stephan Mielke, Nicole Naczk, 04.10.2017 Technische Universität Braunschweig, IPS Überblick Organisatorisches Arbeitsablauf Hello World 04.10.2017 Dr. Werner Struckmann
MehrVorkurs Informatik WiSe 16/17
Java Einführung Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe, 04.10.2016 Technische Universität Braunschweig, IPS Überblick Organisatorisches Hello! 04.10.2016 Dr. Werner Struckmann / Stephan Mielke,
MehrInstitut für Programmierung und Reaktive Systeme. Java 1. Markus Reschke
Java 1 Markus Reschke 06.10.2014 Überblick Einführung in die Programmierung zur Vereinfachung des Einstiegs ins Studium Erstellung von ausführbaren Programmen für den Computer Denk- und Vorgehensweisen
MehrVorlesung Programmieren
Vorlesung Programmieren 3. Kontrollstrukturen 09.11.2016 Jun.-Prof. Dr.-Ing. Anne Koziolek Version 1.1 ARBEITSGRUPPE ARCHITECTURE-DRIVEN REQUIREMENTS ENGINEERING (ARE) INSTITUT FÜR PROGRAMMSTRUKTUREN UND
MehrVorlesung Programmieren
Vorlesung Programmieren 6. Arrays 23.11.2016 Jun.-Prof. Dr.-Ing. Anne Koziolek Version 1.1 ARBEITSGRUPPE ARCHITECTURE-DRIVEN REQUIREMENTS ENGINEERING (ARE) INSTITUT FÜR PROGRAMMSTRUKTUREN UND DATENORGANISATION
MehrVorlesung Programmieren
Vorlesung Programmieren Einführung 26.10.2016 Jun.-Prof. Dr.-Ing. Anne Koziolek Version 1.0 ARBEITSGRUPPE ARCHITECTURE-DRIVEN REQUIREMENTS ENGINEERING (ARE) INSTITUT FÜR PROGRAMMSTRUKTUREN UND DATENORGANISATION
MehrEinführung in die Programmierung mit Java
Einführung in die Programmierung mit Java Martin Wirsing 2 Ziele Geschichte der OO-Programmiersprachen Warum Java als Programmiersprache verwenden? Ein einfaches Java-Programm erstellen, übersetzen und
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 - 1.
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 - 1.
MehrProgrammiervorkurs. Wintersemester 2013/2014
Programmiervorkurs Wintersemester 2013/2014 Programmiervorkurs Wintersemester 2013/2014 Organisation: Tutoren: Steffen Gebert, Alexander Wolff Johannes Grohmann, Anna Seufert, Anna Aumann, Nicolas Färber,
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 - 1.
MehrÜbung zur Vorlesung Wissenschaftliches Rechnen Sommersemester 2012 Auffrischung zur Programmierung in C++, 2. Teil
MÜNSTER Übung zur Vorlesung Wissenschaftliches Rechnen Sommersemester 2012 Auffrischung zur Programmierung in C++ 2. Teil 18. April 2012 Organisatorisches MÜNSTER Übung zur Vorlesung Wissenschaftliches
MehrMartin Unold INFORMATIK. Geoinformatik und Vermessung
Zusammenfassung Was ist eine Programmiersprache? Eine Sprache, die Formal eindeutig in Maschinenbefehle übersetzbar ist Für Menschen einfacher verständlich ist als Bytecode Zur Formulierung von Datenstrukturen
MehrVorlesung Programmieren
Vorlesung Programmieren 3. Kontrollstrukturen 04.11.2015 Prof. Dr. Ralf H. Reussner Version 1.1 LEHRSTUHL FÜR SOFTWARE-DESIGN UND QUALITÄT (SDQ) INSTITUT FÜR PROGRAMMSTRUKTUREN UND DATENORGANISATION (IPD),
MehrProgrammieren I + II Regeln der Code-Formatierung
Technische Universität Braunschweig Dr. Werner Struckmann Institut für Programmierung und Reaktive Systeme WS 2012/2013, SS 2013 Programmieren I + II Regeln der Code-Formatierung Die hier vorgestellten
MehrVorlesung Programmieren
Vorlesung Programmieren 5. Jun.-Prof. Dr.-Ing. Anne Koziolek Version 1.1 ARBEITSGRUPPE ARCHITECTURE-DRIVEN REQUIREMENTS ENGINEERING (ARE) INSTITUT FÜR PROGRAMMSTRUKTUREN UND DATENORGANISATION (IPD), KIT-FAKULTÄT
MehrProgrammieren I + II Regeln der Code-Formatierung
Technische Universität Braunschweig Dr. Werner Struckmann Institut für Programmierung und Reaktive Systeme WS 2016/2017, SS 2017 Programmieren I + II Regeln der Code-Formatierung In diesem Dokument finden
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
MehrEs gibt keinen Algorithmus zum Schreiben eines Programms bzw. Algorithmus.
1 Einführung Programmiersprachen: Ermöglichen formale Beschreibung von Problemlösungsverfahren, die auf einem Computer oder Computersystemen ausführbar sind. Bilden die Basis zur Entwicklung von Software
MehrJava: Kapitel 1. Überblick. Programmentwicklung WS 2008/2009. Holger Röder Holger Röder
Java: Kapitel 1 Überblick Programmentwicklung WS 2008/2009 Holger Röder holger.roeder@informatik.uni-stuttgart.de Was ist Java? Die Java-Technologie umfasst die Programmiersprache Java sowie die Java-Plattform
Mehr2 Eine einfache Programmiersprache
2 Eine einfache Programmiersprache Eine Programmiersprache soll Datenstrukturen anbieten Operationen auf Daten erlauben Kontrollstrukturen zur Ablaufsteuerung bereitstellen Als Beispiel betrachten wir
Mehr2 Eine einfache Programmiersprache. Variablen. Operationen Zuweisung. Variablen
Variablen Eine Programmiersprache soll Datenstrukturen anbieten Operationen auf Daten erlauben Kontrollstrukturen zur Ablaufsteuerung bereitstellen Variablen dienen zur Speicherung von Daten. Um Variablen
MehrEinführung Datentypen Verzweigung Schleifen. Java Crashkurs. Kim-Manuel Klein May 4, 2015
Java Crashkurs Kim-Manuel Klein (kmk@informatik.uni-kiel.de) May 4, 2015 Quellen und Editoren Internet Tutorial: z.b. http://www.java-tutorial.org Editoren Normaler Texteditor (Gedit, Scite oder ähnliche)
Mehr7. Objektorientierung. Informatik II für Verkehrsingenieure
7. Objektorientierung Informatik II für Verkehrsingenieure Klassen, Objekte und Attribute Buslinie und Haltestellen 3 Haltestellen und deren Eigenschaften Bauplan einer Haltestelle (Struktur) Konkrete
MehrProgramme erstellen in Java
Programmieren mit Java Modul 0 Programme erstellen in Java Theorieteil Inhaltsverzeichnis 1 Modulübersicht 3 2 Schreiben von Computerprogrammen 3 2.1 Computerprogramme bestehen aus Daten und Instruktionen.......
MehrTag 7 Repetitorium Informatik (Java)
Tag 7 Repetitorium Informatik (Java) Dozent: Patrick Kreutzer Lehrstuhl für Informatik 2 (Programmiersysteme) Friedrich-Alexander-Universität Erlangen-Nürnberg Wintersemester 2017/2018 Informatik-Repetitorium
MehrOrganisatorisches. Folien (u.a.) gibt's auf der Lva-Homepage zum Download
Organisatorisches Folien (u.a.) gibt's auf der Lva-Homepage zum Download Diesen Mi erstes Tutorium (15-17) Ab nächster Woche montags 10-12 (jeweils im Computerraum) 17.10.2017 IT I - VO 3 1 Organisatorisches
MehrInstitut für Programmierung und Reaktive Systeme 2. Februar Programmieren I. Übungsklausur
Technische Universität Braunschweig Dr. Werner Struckmann Institut für Programmierung und Reaktive Systeme 2. Februar 2017 Hinweise: Klausurtermine: Programmieren I Übungsklausur Programmieren I: 13. März
MehrJava-Programmierung mit NetBeans
Java-Programmierung mit NetBeans Klassen, Objekte, Alternativen Dr. Henry Herper Otto-von-Guericke-Universität Magdeburg - WS 2012/13 Grundlegende Definitionen - Objekt Ein Objekt ist allgemein ein Gegenstand
MehrEinführung in die Programmierung I. 1.0 EBNF 2.0 Einfache Java Programme. Thomas R. Gross. Department Informatik ETH Zürich
252-0027 Einführung in die Programmierung I 1.0 EBNF 2.0 Einfache Java Programme Thomas R. Gross Department Informatik ETH Zürich Graphische Darstellung von EBNF Regeln Syntax Graph: graphische Darstellung
MehrEinführung in die Programmierung 1
Einführung in die Programmierung 1 Einführung (S.2) Einrichten von Eclipse (S.4) Mein Erstes Programm (S.5) Hallo Welt!? Programm Der Mensch (S.11) Klassen (S.12) Einführung Wie Funktioniert Code? Geschriebener
Mehr2 Eine einfache Programmiersprache
2 Eine einfache Programmiersprache Eine Programmiersprache soll Datenstrukturen anbieten Operationen auf Daten erlauben Kontrollstrukturen zur Ablaufsteuerung bereitstellen Als Beispiel betrachten wir
MehrInformatik. Studiengang Chemische Technologie. Michael Roth Hochschule Darmstadt -Fachbereich Informatik- WS 2012/2013.
Informatik Studiengang Chemische Technologie Michael Roth michael.roth@h-da.de Hochschule Darmstadt -Fachbereich Informatik- WS 2012/2013 Inhalt Teil VIII Einstieg in Java II Michael Roth (h_da) Informatik
MehrErste Java-Programme (Scopes und Rekursion)
Lehrstuhl Bioinformatik Konstantin Pelz Erste Java-Programme (Scopes und Rekursion) Tutorium Bioinformatik (WS 18/19) Konstantin: Konstantin.pelz@campus.lmu.de Homepage: https://bioinformatik-muenchen.com/studium/propaedeutikumprogrammierung-in-der-bioinformatik/
MehrObjektorientierte Programmierung Studiengang Medieninformatik
Objektorientierte Programmierung Studiengang Medieninformatik Hans-Werner Lang Hochschule Flensburg Vorlesung 1 15.03.2017 Objektorientierte Programmierung (Studiengang Medieninformatik) Form: Prüfung:
MehrObjekte. Theorieteil. Inhaltsverzeichnis. Begriffe. Programmieren mit Java Modul 5. 1 Modulübersicht 3
Programmieren mit Java Modul 5 Objekte Theorieteil Inhaltsverzeichnis 1 Modulübersicht 3 2 Klassen und Objekte 3 2.1 Klassen.................................... 4 2.2 Objektvariablen und Methoden.......................
MehrProgrammiersprache. Emily & rica
Programmiersprache Emily & rica inhaltsangabe Programmiersprache Def inition/funktion Arten Gängige Algorithmus/Syntax Compiler, Interpreter Def inition Unterscheidung Vor- und Nachteile Compiler/ Interpreter
MehrVorlesung Programmieren
Vorlesung Programmieren 5. Arrays Prof. Dr. Ralf H. Reussner Version 1.1 LEHRSTUHL FÜR SOFTWARE-DESIGN UND QUALITÄT (SDQ) INSTITUT FÜR PROGRAMMSTRUKTUREN UND DATENORGANISATION (IPD), FAKULTÄT FÜR INFORMATIK
MehrDie einfachsten Anweisungen
2 Die einfachsten Anweisungen 2-1 Inhalt Die einfachsten Anweisungen Einführung Datentypen Arithmetische Operatoren Mathematische Funktionen Mehrfache Zuweisungen Übungsaufgaben Einführung Wir wollen unser
MehrThemen der Übung. Methoden und Wrapperklassen. Vorteile von Methoden. Methoden. Grundlagen
Themen der Übung 1 Organisatorisches Methoden und Wrapperklassen 2 Methoden 3 Wrapper-Klassen CoMa-Übung IV TU Berlin 07.11.2012 Organisatorisches: Im Pool nur auf die Abgabeliste setzen, wenn ihr wirklich
MehrInstitut für Programmierung und Reaktive Systeme 25. Januar Programmieren I. Übungsklausur
Technische Universität Braunschweig Dr. Werner Struckmann Institut für Programmierung und Reaktive Systeme 25. Januar 2018 Hinweise: Klausurtermine: Programmieren I Übungsklausur Programmieren I: 17. Februar
MehrMethoden und Wrapperklassen
Methoden und Wrapperklassen CoMa-Übung IV TU Berlin 06.11.2012 CoMa-Übung IV (TU Berlin) Methoden und Wrapperklassen 06.11.2012 1 / 24 Themen der Übung 1 Methoden 2 Wrapper-Klassen CoMa-Übung IV (TU Berlin)
MehrRepetitorium Informatik (Java)
Repetitorium Informatik (Java) Tag 6 Lehrstuhl für Informatik 2 (Programmiersysteme) Übersicht 1 Klassen und Objekte Objektorientierung Begrifflichkeiten Deklaration von Klassen Instanzmethoden/-variablen
Mehr2 Eine einfache Programmiersprache
2 Eine einfache Programmiersprache Eine Programmiersprache soll Datenstrukturen anbieten Operationen auf Daten erlauben Kontrollstrukturen zur Ablaufsteuerung bereitstellen Als Beispiel betrachten wir
MehrÜbungen zur Vorlesung Wissenschaftliches Rechnen I
Übungen zur Vorlesung Wissenschaftliches Rechnen I Nicolas Gauger, René Lamour, Hella Rabus Wintersemester 2007/2008 Programmierung - Einführung Programmierung - Einführung Berechnung einer Formel y =
MehrVorlesung Programmieren
Vorlesung Programmieren 6. Konvertierung, Datenkapselung, Sichtbarkeit Prof. Dr. Ralf H. Reussner Version 1.1 LEHRSTUHL FÜR SOFTWARE-DESIGN UND QUALITÄT (SDQ) INSTITUT FÜR PROGRAMMSTRUKTUREN UND DATENORGANISATION
MehrPraxis der Programmierung
Template-Funktionen und -Klassen Einführung in Java Institut für Informatik und Computational Science Universität Potsdam Henning Bordihn 1 Template-Funktionen 2 Minimumfunktion und offene Typen Aufruf
MehrInhaltsverzeichnis. Grundlagen und Einführung (1. Band) 1
Inhaltsverzeichnis Grundlagen und Einführung (1. Band) 1 1 Einleitung und Vorwort 1 1.1 Vorwort zur 13. Auflage....................... 1 1.2 Vorwort zur 10. Auflage....................... 1 1.3 Voraussetzungen...........................
MehrInstitut für Programmierung und Reaktive Systeme. Java 6. Markus Reschke
Institut für Programmierung und Reaktive Systeme Java 6 Markus Reschke 13.10.2014 OOP Objekte = Verhalten (durch Methoden) + Daten (durch Attribute) Klassen = Baupläne für Objekte Kapselung von Programmteilen
MehrOrganisatorisches. Folien (u.a.) auf der Lva-Homepage Skriptum über MU Online
Organisatorisches Folien (u.a.) auf der Lva-Homepage Skriptum über MU Online Nächste Woche VO und UE am Dienstag, den 30.10.! UE im CR IL/IT Wissensüberprüfung am Zettel 25.10.2018 IT I - VO 3 1 Organisatorisches
MehrAufgabenblatt 1: - Präsenzübung für die Übungen Do Mi Ausgabe Mi
Grundlagen der Programmierung 1 WS 2012/2013 Prof. Dr. Stefan Böttcher Aufgabenblatt 1: - Präsenzübung für die Übungen Do. 11.10.- Mi. 17.10.2012 Ausgabe Mi. 10.10.2012 1.1. Zahlen vertauschen mit wenigen
MehrGliederung der Folien
1 Gliederung der Folien 1. Einführung 1.1. Gliederung 1.2. Literatur 1.3. Einstieg in Java 1.3.1. Geschichte von Java 1.3.2. Hello World 1.3.3. Übersetzen eines Java-Programms 1.4. Die Entwicklungsumgebung
MehrEINFÜHRUNG IN DIE PROGRAMMIERUNG
EINFÜHRUNG IN DIE PROGRAMMIERUNG OBJEKTORIENTIERTES PROGRAMMIEREN Tobias Witt 25.03.2014 09:00-10:30 Täglich Übungen zur Vertiefung Laptop hier nicht erforderlich Linux, OS X Freitag: http://hhu-fscs.de/linux-install-party/
Mehr1 Klassen und Objekte
1 Klassen und Objekte Datentyp - Spezifikation des Typs von Datenobjekten Datenstruktur - logische Ordnung von Elementen eines Datentyps - zur (effizienten) Speicherung, Verwaltung, Zugriff - auf die Elemente
MehrEinführung in die Programmierung. (K-)II/Wb17
Probeklausur Hochschule Zittau/Görlitz, Prüfer: Prof. Dr. Georg Ringwelski Einführung in die Programmierung (K-)II/Wb17 Matrikelnummer: Punkte: 1 2 3 4 5 6 Gesamt /21 /19 /20 /20 /20 /20 /120 Spielregeln:
MehrTeil 3 - Java. Grundlagen Klassen, Attribute Methoden
Teil 3 - Java Grundlagen Klassen, Attribute Methoden 1 Java 2 - Geschichte Ursprung: Green -Project bei der Firma Sun Microsystems 1991 Entwicklung eines Systems mit folgenden Eigenschaften: hardwareunabhängig
MehrVorlesung Programmieren
Vorlesung Programmieren Einführung 20.10.2014 Prof. Dr. Ralf H. Reussner Version 1.0 LEHRSTUHL FÜR SOFTWARE-DESIGN UND QUALITÄT (SDQ) INSTITUT FÜR PROGRAMMSTRUKTUREN UND DATENORGANISATION (IPD), FAKULTÄT
MehrPraktische Informatik 1
Praktische Informatik 1 Imperative Programmierung und Objektorientierung Karsten Hölscher und Jan Peleska Wintersemester 2011/2012 Session 2 Programmierung Begriffe C/C++ Compiler: übersetzt Quellcode
MehrEinführung in die Programmierung I. 2.0 Einfache Java Programme. Thomas R. Gross. Department Informatik ETH Zürich
252-0027 Einführung in die Programmierung I 2.0 Einfache Java Programme Thomas R. Gross Department Informatik ETH Zürich Uebersicht 2.0 Einfache Java Programme Struktur Namen Output 2 Graphische Darstellung
MehrKapitel
10.11.005 Kapitel 4-10.11.005 Lehrbeispiel: Sortieralgorithmus " Bubble Sort" Sortieren von Primitivtypen Der "Abstrakte Datentyp" Grundlagen der Objektorientierung: Abstraktion, Kapselung, Modularität,
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,
MehrGrundlagen von C# - 1
Grundlagen von C# - 1 Marc Satkowski 20. November 2016 C# Kurs Gliederung 1. Über diesen Kurs 2. Benötigte Software 3. Exkurs: Architektur von.net und C# 4. Erstes Programm: Hello World Grundlegende Eigenschaften
MehrÜbersicht. Vorstellung des OO-Paradigmas
Java, OO und UML Vorstellung des OO-Paradigmas Übersicht Umsetzung des OO-Paradigmas in Java Einführung (seeeeeehr rudimenter) in UML zur graphischen Darstellung von OO Grammatik und Semantik von Java
MehrKlausur Grundlagen der Programmierung
Klausur Grundlagen der Programmierung Aufgabenstellung: Martin Schultheiß Erreichte Punktzahl: von 60 Note: Allgemeine Hinweise: Schreiben Sie bitte Ihren Namen auf jedes der Blätter Zugelassene Hilfsmittel
MehrIII.1 Prinzipien der funktionalen Programmierung - 1 -
1. Prinzipien der funktionalen Programmierung 2. Deklarationen 3. Ausdrücke 4. Muster (Patterns) 5. Typen und Datenstrukturen 6. Funktionale Programmiertechniken III.1 Prinzipien der funktionalen Programmierung
MehrGrundelemente objektorientierter Sprachen (1)
Grundelemente objektorientierter Sprachen (1) Objekt Repräsentation eines Objektes der realen Welt in der Terminologie objektorientierter Programmiersprachen besitzen Attribute (Eigenschaften), deren Werte
MehrProgrammierkurs. Manfred Jackel
Java für Anfänger Teil 1: Intro Programmierkurs 12.-16.10.2009 10 2009 Manfred Jackel 1 1. Handwerkszeug Notwendige Software Java Runtime Environment JRE 6 von http://java.sun.com/javase/downloads/index.js
MehrOrganisatorisches. drei Gruppen Gruppe 1: 10:10-11:40, Gruppe 2: 11:45-13:15 Gruppe 3: 13:20-14:50
Organisatorisches Vorlesung Donnerstag 8:35 bis 10:05 Übung drei Gruppen Gruppe 1: 10:10-11:40, Gruppe 2: 11:45-13:15 Gruppe 3: 13:20-14:50 Tutorium (Mehr oder weniger) abwechselnd Mo und Mi 10-11:30 Termine
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
MehrEINFÜHRUNG IN DIE PROGRAMMIERUNG
EINFÜHRUNG IN DIE PROGRAMMIERUNG OBJEKTORIENTIERTES PROGRAMMIEREN Tobias Witt 25.03.2014 10:30-12:00 Täglich Übungen zur Vertiefung Laptop hier nicht erforderlich Aber in den Übungen! Linux, OS X http://hhu-fscs.de/linux-install-party/
MehrObjektorientierte Programmierung Studiengang Medieninformatik
Objektorientierte Programmierung Studiengang Medieninformatik Hans-Werner Lang Hochschule Flensburg Vorlesung 5 12.04.2017 Was bisher geschah... Objektorientierte Programmierung Klassen und Objekte, Attribute
Mehr2 Eine einfache Programmiersprache
2 Eine einfache Programmiersprache Eine Programmiersprache soll Datenstrukturen anbieten Operationen auf Daten erlauben Kontrollstrukturen zur Ablaufsteuerung bereitstellen Als Beispiel betrachten wir
MehrThis work is licensed under the Creative Commons Attribution-ShareAlike 3.0 License.
This work is licensed under the Creative Commons Attribution-ShareAlike 3.0 License. Studentische Initiative voller Studenten Gesamte Fak IV: ET, TI, Info Organisiert: Kurse, Kickerturniere, Gremienarbeit
MehrInformationsverarbeitung im Bauwesen
1/21 Informationsverarbeitung im Bauwesen Einführung in das Programmieren mit C++ Markus Uhlmann Institut für Hydromechanik Karlsruher Institut für Technologie www.ifh.kit.edu WS 2010/2011 Vorlesung 8
MehrProbeklausur Java Einführung in die Informatik. Wintersemester 2016/2017
Fakultät IV NI & CV Java Einführung in die Informatik Wintersemester 2016/2017 Hinweis: Diese ist eine kleine Aufgabensammlung, die etwa dem Schwierigkeitsgrad der schriftlichen Prüfung des Moduls Einführung
MehrEinführung in die Programmiersprache Java II
Einführung in die Programmiersprache Java II ??????????? UML OOP "Object oriented programming is bad" - professional retard 90s... UML Entwicklungsziele verschiedenen existierenden objektorienten Modellierungsmethoden
MehrGrundelemente objektorientierter Sprachen (1)
Grundelemente objektorientierter Sprachen (1) Objekt Repräsentation eines Objektes der realen Welt in der Terminologie objektorientierter Programmiersprachen besitzen Attribute (Eigenschaften), deren Werte
MehrJava-Grundkurs für Wirtschaftsinformatiker
Klaus-Georg Deck Herbert Neuendorf Java-Grundkurs für Wirtschaftsinformatiker Die Grundlagen verstehen - Objektorientierte Programmierung - Fortgeschrittene Konzepte kennenlernen - Betriebswirtschaftlich
MehrAbschnitt 1: Einführung
Abschnitt 1: Einführung 1. Einführung 1.1 Historischer Überblick: Objektorientierte Programmiersprachen 1.2 Java Erste Schritte 1.3 Kommentare in Java 1 Einführung Informatik 2 (SS 07) 10 Überblick 1.
MehrGrundelemente objektorientierter Sprachen (1)
Grundelemente objektorientierter Sprachen (1) Objekt Repräsentation eines Objektes der realen Welt in der Terminologie objektorientierter Programmiersprachen besitzen Attribute (Eigenschaften), deren Werte
MehrDr. Monika Meiler. Inhalt
Inhalt 15 Parallele Programmierung... 15-2 15.1 Die Klasse java.lang.thread... 15-2 15.2 Beispiel 0-1-Printer als Thread... 15-3 15.3 Das Interface java.lang.runnable... 15-4 15.4 Beispiel 0-1-Printer
MehrÜberblick. R.Grossmann / P. Sobe 1
Überblick 1. Einführung C++ / Entwicklung/ Sprachfamilie 2. Nicht objektorientierte Erweiterungen von C 3. Grundlagen des Typkonzepts von C++ 4. Ziele der Objektorientierung 5. Objekt und Klasse, Elementfunktionen
MehrKapitel 9. Programmierkurs. Attribute von Klassen, Methoden und Variablen. 9.1 Attribute von Klassen, Methoden und Variablen
Kapitel 9 Programmierkurs Birgit Engels Anna Schulze Zentrum für Angewandte Informatik Köln Objektorientierte Programmierung Attribute von Klassen, Methoden und Variablen Interfaces WS 07/08 1/ 18 2/ 18
MehrBeispiele für Ausdrücke. Der imperative Kern. Der imperative Kern. Imperativer Kern - Kontrollstrukturen. Deklarationen mit Initialisierung
Beispiele für Ausdrücke Der imperative Kern Deklarationen mit Initialisierung Variablendeklarationen int i = 10; int j = 15; Beispiele für Ausdrücke i+j i++ i & j i j [] [static]
MehrTag 5. Repetitorium Informatik (Java) Dozent: Marius Kamp Lehrstuhl für Informatik 2 (Programmiersysteme)
Tag 5 Repetitorium Informatik (Java) Dozent: Marius Kamp Lehrstuhl für Informatik 2 (Programmiersysteme) Friedrich-Alexander-Universität Erlangen-Nürnberg Wintersemester 2017/2018 Übersicht Methoden Deklaration
MehrMartin Unold INFORMATIK. Geoinformatik und Vermessung
Wiederholung So sieht ein leeres Java-Programm aus public class Programmname { public static void main (String[] args) { // Hier stehen die Anweisungen Welche Arten von Anweisungen gibt es? Anweisungen
MehrProgrammieren II. Innere Klassen. Heusch 10, Ratz 5.2.1, Institut für Angewandte Informatik
Programmieren II Innere Klassen Heusch 10, 13.10 Ratz 5.2.1, 9.8 KIT Die Forschungsuniversität in der Helmholtz-Gemeinschaft www.kit.edu Innere Klassen Bisher kennen wir nur Klassen, die entweder zusammen
MehrEinführung in Java. Ausgewählte Quellen zu Java
Einführung in Java Wesentliche Eigenschaften und Merkmale der Programmiersprache Java Prof. Dr. Stefan Böttcher Universität Paderborn im Rahmen der Vorlesung: Webbasierte Informationssysteme SS 2004 Einführung
MehrEinleitung. Informationsquellen: - Webseite zur Vorlesung, Abschnitt Informationen zu C und C++ Kurzeinführung in C/C++
Informationsquellen: - Webseite zur Vorlesung, Abschnitt Informationen zu C und C++ 1 Einleitung Vorteile von Java: gut strukturiert mit hohem Funktionsumfang (mächtige Standardbibliothek) weitestgehend
Mehr10. Programmierungs-Phase: Objektorientierung Software Engineering
10. Programmierungs-Phase: Objektorientierung Software Engineering Fachhochschule Darmstadt Haardtring 100 D-64295 Darmstadt Prof. Dr. Bernhard Humm FH Darmstadt, 15. Dezember 2005 Einordnung in den Kontext
MehrProgrammierung für Mathematik HS11
software evolution & architecture lab Programmierung für Mathematik HS11 Übung 8 1 Aufgabe: Codeverständnis (Repetition) 1.1 Lernziele 1. Code verstehen können. 2. Fehler im Code finden und korrigieren
MehrJava Einführung Klassendefinitionen
Java Einführung Klassendefinitionen Inhalt dieser Einheit Java-Syntax Klassen definieren Objekte instanziieren Instanzvariable deklarieren Klassenvariable deklarieren 2 Klassen definieren In der Problemanalyse
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
MehrInformatik I - Einstiegskurs
Informatik I - Einstiegskurs Dr. Henrik Brosenne Georg-August-Universität Göttingen Institut für Informatik Basiert auf dem Einstiegskurs im Wintersemester 2009/10 von Markus Osterhoff Wintersemester 2012/13
Mehr