TAG 4: SORTIEREN VON ARRAYS, OBJEKTORIENTIERTE PROGRAMMIERUNG Brückenkurs Programmierung SoSe 17
|
|
- Maike Melsbach
- vor 5 Jahren
- Abrufe
Transkript
1 TAG 4: SORTIEREN VON ARRAYS, OBJEKTORIENTIERTE PROGRAMMIERUNG Brückenkurs Programmierung SoSe 17 Toni Barthel
2 Organisatorisches I Themen: Tag 1: Variablen Operatoren, Verzweigungen Tag 2: Animationen, Schleifen Tag 3: Funktionen, Events, Arrays, Exkurs: Speicherverwaltung Tag 4: Sortieren von Arrays, Objektorientierte Programmierungm Geheimnisprinzip Tag 5: Ausblick auf Java und C Heute: Wiederholung Tag 3 etwas mehr Praxis
3 Organisatorisches II Tagesablauf: Zwei Vorlesungsblöcke (ca. 90min), 15min Kaffeepause Neuankömmlinge melden sich bitte in der Pause bei mir Ankündigungen Arbeitsergebnisse auf Kursseite hochladen Software der Hochschule Office 365 kostenfrei für angehörige der Hochschule Dreamspark
4 TAG 4.0: WIEDERHOLUNG Brückenkurs Programmierung SoSe 17 Toni Barthel
5 WDH: Funktionen Erläutern Sie das Prinzip der Modularität. Dieses Prinzip setzt voraus, das komplexe Aufgaben in ihre Grundbestandteile unterteilt werden um die kleineren Teilaufgaben später einfach wiederverwenden zu können Modularität. Formulieren Sie beliebige Funktion/Methode ohne Rückgabewert. void beliebigefunktion() { Wie viele Variablen kann ein eine Funktionsdefinition enthalten? beliebig viele. Welche Rückgabewerte kann eine Funktion annehmen? alle primitiven Datentypen sowie Referenzdatentypen.
6 WDH: Funktionen/Events in Processing I Welche Mouse-Events kennen Sie? void mouseclicked() { // Aktion wenn die Maus geklickt wurde void mousepressed() { // Aktion wenn die Maus geklickt ist void mousereleased() { // Aktion wenn eine Maustaste losgelassen wird. void mousemoved() { // Aktion wenn sich die Maus bewegt Auch wenn ein Stück Code nur einmal aufgerufen wird, kann es Sinn machen dieses in eine eigene Funktion auszulagern, um den Code lesbarer zu machen und die Fehlersuche zu erleichtern. void mousedragged() { // Aktion wenn die Maus geklickt ist und bewegt wird
7 WDH: Funktionen/Events in Processing II Wann und wie oft wird die Funktion setup() ausgeführt? Die Funktion setup() wird einmal zu Beginn des Programms einmal ausgeführt Auf welche Funktion trifft folgende Beschreibung zu? Wird, je nach framerate() pro Sekunde ausgeführt (default 60 Frames pro Sekunde) - Hauptteil unseres Processing Die ist die draw() Funktion. Wann wird die Funktion keypressed() ausgeführt? Die Funktion wird einmal ausgeführt, wenn eine Taste auf der Tastatur gedrückt wird.
8 WDH: Arrays Definieren Sie ein Array der länge 5. int[] a = new int [5]; Füllen sie das definierte Array mit einer aufsteigenden Zahlenfolge. for (int i=0;i<a.length; i++){ a[i] = i+10; Ändern Sie den Wert des Arrays an 3. Stelle auf den Wert 99. int[] a = {1,2,3,4,5,6,7; for(int i=0; i<a.length;i++) if(a[i]%2!=0) a[i]=0;
9 WDH: Arrays Geben Sie das definierte Array a zeilenweise, von der letzten zur ersten Stelle auf der Konsole aus. int[] a = {1,2,3,4,5; for(int i = a.length; i!=0 ;i--){ println(a[i-1]); Überschreiben sie jedes gerade Element im Array a mit dem Wert 0. int[] a = {1,2,3,4,5; for(int i = a.length; i!=0 ;i--){ println(a[i-1]);
10 WDH: Speicherverwaltung I In welche zwei Datentyp-Arten können Sie unterscheiden? primitive (einfache) Datentypen und komplexe Datentypen Definieren Sie den Begriff Stack. Auf dem Stack werden Parameter und alle lokalen Variablen aller gerade aktiven Methoden verwaltet. (Parameter und Lokale Variablen leben nur für die Dauer der Aktivität der Methode) Definieren Sie den Begriff Heap. Auf dem Heap werden Objekte verwaltet (unter anderem mit new angelegt). Der Inhalt der Referenzvariablen verweisen auf den Speicherort der Objekte im Heap. Ein Array ist ein Objekt.
11 WDH: Speicherverwaltung II Zeichnen Sie für folgenden Sachverhalt einen Stack und einen Heap. void main (String[] args){ int[] a = {1,2,3,4; int[] b = {10,20,30,40; b" a" args" Stack& Heap&
12 WDH: Speicherverwaltung II - Das Selbe / Gleiche
13 WDH: Speicherverwaltung III Welche Aufgabe hat die Carbage Collection? Der Garbage Collector reinigt den Heap vom Müll Verfolgt systematisch alle Referenzen und markiert diese Nicht markierte Objekte können weggeräumt werden, da keine Referenzvariable auf diese Objekte zeigt Das Wegräumen nicht benötigter Objekte erfolgt automatischin regelmäßigen Abständen
14 TAG 4.1: SORTIEREN VON ARRAYS Brückenkurs Programmierung SoSe 17 Toni Barthel
15 Wie bringen wir Ordnung in ein Array? Problemstellung Sie haben ein unsortiertes Array a vorliegen. Wie können Sie dieses am einfachsten sortieren? Es geht nicht um Geschwindigkeit oder Performance einfach nur sortieren. int[] a = {5,1,12,-5,16; int[] a = {-5,1,5,12,16; B U B B L E S O R T
16 Wie bringen wir Ordnung in ein Array? Der BubbleSort In der Bubble-Phase wird die Eingabe-Liste von links nach rechts durchlaufen. Dabei wird in jedem Schritt das aktuelle Element mit dem rechten Nachbarn verglichen. Falls die beiden Elemente das Sortierkriterium verletzen, werden sie getauscht. Am Ende der Phase steht bei auf- bzw. absteigender Sortierung das größte bzw. kleinste Element der Eingabe am Ende der Liste. void swap(int[] meinarray, int index1, int index2){ int temp = meinarray[index1]; meinarray[index1] = meinarray[index2]; meinarray[index2] = temp; void draw() { int[] unsortiert={5,1,12,-5,16; int[] sortiert=bubblesort(unsortiert); for (int i = 0; i<sortiert.length; i++) System.out.print(sortiert[i] + " "); exit(); int[] bubblesort(int[] meinarray) { for (int i=1; i<meinarray.length; i++) for (int j=0; j<meinarray.length-i; j++) if (meinarray[j]>meinarray[j+1]) swap(meinarray,j,j+1); return meinarray;
17 TAG 4.2: BASIS OBJEKTORIENTIERTE PROGRAMMIERUNG Brückenkurs Programmierung SoSe 17 Toni Barthel
18 Zu Erinnerung I - Theorie Klassen und Objekte in Programmen Klassen: definieren die Art der Speicherung und die Operationen (Funktionen und Methoden). Objekte: sind Exemplare (Instanzen) einer Klasse Sie enthalten die jeweils unterschiedlichen Daten. Objekte haben i.a. einen sich ändernden Zustand. Methoden eines Objekts operieren auf den Daten des Objekts. Nur vom Prinzip her. Autos bilden keine Menschen ab!
19 Zu Erinnerung II - Aufbau im Quellcode class BouncingBall { //Variablen (Eigenschaften) float x = 0; float y = 0; Variablen, Eigenschaften display() //Konstruktor (Baumeister) BouncingBall () { Konstruktor (spezielle Methode!) float x = 0; float y = 0; //Methoden (Fähigkeiten) void display(){ Methoden (allgemeine) ellipse(200,200,20,20); Objekt: b1 mit der Bauplan aus der Klasse BouncingBall
20 Vergleich Standardlösung und OOP
21 Zu Erinnerung
22 Klassenaufbau und Objekterzeugen class BouncingBall { //Deklaration BouncingBall myball; //Variablen (Eigenschaften) float x = 0; float y = 0; //Konstruktor (Baumeister) BouncingBall () { //Methoden (Fähigkeiten) void display(){ ellipse(200,200,20,20); BouncingBall //Initalisierung (Setup) void setup(){ size(600,600); smooth(); //Erzeugen einer neuen Instanz der Klasse //(anlegen eines neuen Objektes) //new ist das Schlüsselwort myball = new BouncingBall(); void draw(){ background(0); myball.display(); //Aufruf der Funktion Main_BouncingBall_Programm
23 Klassenaufbau und Objekterzeugen class BouncingBall { //Variablen (Eigenschaften) float x = 0; float y = 0; //Deklaration BouncingBall myball; BouncingBall myball2; //Initalisierung (Setup) //Konstruktor (Baumeister) BouncingBall (float einx, float einy) { this.x = einx; this.y = einy; void setup(){ size(600,600); smooth(); myball = new BouncingBall(200,200); myball2 = new BouncingBall(300,400); //Methoden (Fähigkeiten) void display(){ ellipse(this.x,this.y,20,20); BouncingBall void draw(){ background(0); myball.display(); myball2.display(); Main_BouncingBall_Programm
24 Exkurs: Objekte im Array erzeugen und anzeigen //Deklaration BouncingBall[] myballs; //Initalisierung (Setup) void setup(){ size(600,600); smooth(); myballs = new BouncingBall[10]; for(int i=0; i<myballs.length;i++) myballs[i] = new BouncingBall(10+(i*40),200); void draw(){ background(0); for(int i=0; i<10;i++) myballs[i].display(); Main_BouncingBall_Programm
25 Bewegung des Balls class BouncingBall {... void move(){ this.x = this.x + this.speedx; this.y = this.y + this.speedy;... void draw(){ background(0); myball.display(); //Aufruf der Funktion myball.move(); myball.bounce(); void bounce(){ if((x > width) (x < 9)) this.speedx = this.speedx * -1; myball.gravity(); Main_BouncingBall_Programm if((y > height) (y < 9)){ this.speedy = this.speedy * -1; void gravity(){ this.speedy = speedy + 0.2;... BouncingBall
26 Exkurs: Bewegung des Balls //Deklaration BouncingBall[] myballs; //Initalisierung (Setup) void setup(){ size(600,600); smooth(); myballs = new BouncingBall[10]; for(int i=0; i<myballs.length;i++) myballs[i] = new BouncingBall(10+(i*40),200); void draw(){ background(0); for(int i=0; i<10;i++) { myballs[i].display(); myballs[i].move(); myballs[i].bounce(); myballs[i].gravity(); Main_BouncingBall_Programm
27 Weitere Strukturierung class BouncingBall {... //Methoden (Fähigkeiten) void run () { this.move(); this.bounce(); this.gravity(); this.display(); void move(){ this.x = this.x + this.speedx; this.y = this.y + this.speedy; void bounce(){ if((x > width) (x < 9)) this.speedx = this.speedx * -1; if((y > height) (y < 9)) this.speedy = this.speedy * -1;... //Deklaration BouncingBall myball; //Initalisierung (Setup) void setup(){ size(600,600); smooth(); //Erzeugen einer neuen Instanz der Klasse + //(anlegen eines neuen Objektes) myball = new BouncingBall(200,200); void draw(){ background(0); myball.run();
28 Weitere Strukturierung //Deklaration BouncingBall[] myballs; //Initalisierung (Setup) void setup(){ size(600,600); smooth(); myballs = new BouncingBall[10]; for(int i=0; i<myballs.length;i++) myballs[i] = new BouncingBall(random(0,600),random(0,300)); void draw(){ background(0); for(int i=0; i<10;i++) { myballs[i].run(); Main_BouncingBall_Programm
29 Letzte Umbauten //Deklaration BouncingBall[] myballs; //Initalisierung (Setup) void setup(){ size(600,600); background(0); smooth(); myballs = new BouncingBall[10]; for(int i=0; i<myballs.length;i++) myballs[i] = new BouncingBall(random(0,600),random(0,300)); void draw(){ for(int i=0; i<10;i++) { myballs[i].run(); Main_BouncingBall_Programm
30 TAG 4.3: OOP - GEHEIMNISPRINZIP Brückenkurs Programmierung SoSe 17 Toni Barthel
31 Prinzipien der OOP Kohäsion Kohäsion und Kopplung Geheimnisprinzip
32 Kohäsion Kohäsion einer SW-Komponente Beschreibt den innerer Zusammenhalt der Komponente: Eine SW-Komponente (z.b. Klasse) sollte stets ein klardefiniertes und fest umrissenes Konzept realisieren! Die Kohäsion einer Klasse sollte so groß wie möglich sein.
33 Kohäsion In der objektorientierten Programmierung beschreibt Kohäsion, wie gut eine Programmeinheit eine logische Aufgabe oder Einheit abbildet. In einem System mit starker Kohäsion ist jede Programmeinheit (eine Methode, eine Klasse oder ein Modul) verantwortlich für genau eine wohldefinierte Aufgabe oder Einheit. (Wikipedia)
34 Geheimnisprinzip: Kohäsion und Kopplung Kopplung von SW-Komponenten Gegenseitige logische oder reale Abhängigkeit von Komponenten: Information die notwendig ist, um die Komponente nutzen zu können. Information (Daten) die von mehreren Komponenten gemeinsam genutzt wird. Die Kopplung von Klassen sollte so klein wie möglich sein.
35 Geheimnisprinzip: Kohäsion und Kopplung class BouncingBall { //Variablen (Eigenschaften) float x = 0; float y = 0; float speedx = 4; float speedy = 0.5; //Konstruktor (Baumeister) BouncingBall (float eingabex, float eingabey) { this.x = eingabex; this.y = eingabey; void draw(){ for(int i=0; i<10;i++) { myballs[i].run(); myballs[i].speedx = 10; Aufgedecktes Geheimnis Privacy-Leak: Eine Referenz (!) auf Internes wird mit dem Nutzer geteilt, beispielsweise weil es mit einem getter ausgeliefert wird. Objekte können manipuliert werden, ohne die offizielle Schnittstelle zu nutzen! Referenz'auf'ein' gekapseltes'objekt'
36 Geheimnisprinzip: Kohäsion und Kopplung Öffentliche Objektvariablen erhöhen unnötig die Kopplung Was ist daran so schlimm? Wie macht man es richtig? Hüten&sollst&Du&Dich&vor& öffentlichen& Objektvariablen!& in zwei Schritten So&spare&ich&mir& Methodenaufrufe,&das& Programm&läuC& schneller!&
37 Verhindern eines Privacy-Lacks class BouncingBall { //Variablen (Eigenschaften) private float x = 0; private float y = 0; private float speedx = 4; private float speedy = 0.5; //Konstruktor (Baumeister) BouncingBall (float eingabex, float eingabey) { this.x = eingabex; this.y = eingabey; Die$dunkle$Seite$der$ Macht;$mit$hoher$ Kopplung$arbeitet$sie;$ins$ Chaos$führt$sie$!$ void draw(){ for(int i=0; i<10;i++) { myballs[i].run(); myballs[i].speedx = 10;
38 Problemstellung display() bounce() private float x = 0; private float y = 0; private color c = color(120); gravity() In dem ich mir Methoden dafür baue! Wie kann ich speedx von außen verändern? run() setcolor() Objekt: b1 mit der Bauplan aus der Klasse BouncingBall Öffentliche Objektvariablen: ersetze durch Getterund Setter-Methoden
39 Am Beispiel
40 Get- und Set-Methode //Variablen (Eigenschaften) private color c = color(120,158,25);... //Methoden (Fähigkeiten) void setcolor (float r, float g, float b) { this.c = color(r,g,b); void draw(){ for(int i=0; i<10;i++) { myballs[i].run(); println(myballs[i].getcolor()); myballs[i].setcolor(random(0,255),random(0,255),random(0,255)); float getcolor() { return this.c;
41 Zusammenfassung class private getter und setter() Klasse und Methode: class Ball { float x,y; Ball(float x, float y) { this.x = x; this.y = y; void display() { ellipse(x,y,50,50); Objekte und Methodenaufruf: Praxis: Sortieren eines Arrays Aufbau einer Klasse Variablen -> Attribute (Eigenschaften) Methoden -> Konstruktoren (Baumeister) Methoden (Fähigkeiten) Theorie: Kohäsion Kopplung Geheimnisprinzip Ball b = new Ball(100,200); b.display();
42 Mit freundlichen Dank an HERRN SCHWARZ, M.SC. FÜR DIE INHALTLICHE VORLAGE AUS DEN DEN OOP FOLIEN.
43 HERZLICHEN DANK FÜR IHRE AUFMERKSAMKEIT Toni Barthel
TAG 3: FUNKTIONEN, EVENTS, ARRAYS, EXKURS: SPEICHERVERWALTUNG Brückenkurs Programmierung SoSe 16
TAG 3: FUNKTIONEN, EVENTS, ARRAYS, EXKURS: SPEICHERVERWALTUNG Brückenkurs Programmierung SoSe 16 Toni Barthel Organisatorisches I Themen: Tag 1: Variablen Operatoren, Verzweigungen Tag 2: Animationen,
MehrBru ckenkurs Programmieren
Bru ckenkurs Programmieren Tag 2: Animationen und Schleifen Jakob Czekansky Technische Hochschule Mittelhessen 28. Ma rz 2017 Inhalt Animationen Bewegungen Mausposition abfragen Schleifen While For Ausblick:
MehrTAG 2: ANIMTATIONEN UND SCHLEIFEN Brückenkurs Programmierung WiSe 15/16
TAG 2: ANIMTATIONEN UND SCHLEIFEN Brückenkurs Programmierung WiSe 15/16 Toni Barthel Organisatorisches I Themen: Tag 1: Variablen Operatoren, Verzweigungen Tag 2: Animationen, Schleifen Tag 3: Events,
MehrPROCESSING KLASSEN UND OBJEKTE. Created by Michael Kirsch & Beat Rossmy
PROCESSING KLASSEN UND OBJEKTE Created by Michael Kirsch & Beat Rossmy INHALT 1. Rückblick 1. Processing Basics 3. Anwendung 1. Klassen 2. Arrays 2. Objekte 2. 3. Characters 4. Strings 5. Funktionen 6.
MehrAlgorithmen und Datenstrukturen II
Algorithmen und Datenstrukturen II in JAVA D. Rösner Institut für Wissens- und Sprachverarbeitung Fakultät für Informatik Otto-von-Guericke Universität Magdeburg Sommer 2009, 4. Mai 2009, c 2009 D.Rösner
MehrBru ckenkurs Programmieren
Bru ckenkurs Programmieren Tag 3: Events und Arrays Jakob Czekansky Technische Hochschule Mittelhessen 28. September 2016 Inhalt Events Arrays Wert- vs Referenzsemantik 2 / 20 Inhalt Events Arrays Wert-
MehrGliederung. Algorithmen und Datenstrukturen II. Java: Objektorientierung. Java: Objektorientierung. Objektorientierung in JAVA. D.
Gliederung Algorithmen und Datenstrukturen II in JAVA D. Rösner Institut für Wissens- und Sprachverarbeitung Fakultät für Informatik Otto-von-Guericke Universität Magdeburg Sommer 2009, 4. Mai 2009, c
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
MehrCreated by Michael Kirsch & Beat Rossmy
PROCESSING EINE EINFÜHRUNG IN DIE INFORMATIK Created by Michael Kirsch & Beat Rossmy INHALT 1. Sto der Vorlesung 1. Processing Basics 2. Übung 1. Aufgabe 1 2. Strings & Arrays 2. Aufgabe 1-A 3. Klassen
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
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
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:
MehrProbeklausur Java Einführung in die Informatik. Wintersemester 2017/2018
Fakultät IV NI & CV Java Einführung in die Informatik Wintersemester 2017/2018 Hinweis: Diese ist eine kleine Aufgabensammlung, die etwa dem Schwierigkeitsgrad der schriftlichen Prüfung des Moduls Einführung
MehrPROCESSING EINE ZUSAMMENFASSUNG. Created by Michael Kirsch & Beat Rossmy
PROCESSING EINE ZUSAMMENFASSUNG Created by Michael Kirsch & Beat Rossmy INHALT 1. Typen und Operatoren 1. Datentypen 3. Klassen und Objekte 1. Klassen und Objekte 2. Operatoren 2. Konstruktor 3. Typkonversion
MehrJava Referenzdatentypen genauer betrachtet
Informatik 1 für Nebenfachstudierende Grundmodul Java Referenzdatentypen genauer betrachtet Kai-Steffen Hielscher Folienversion: 23. Januar 2018 Informatik 7 Rechnernetze und Kommunikationssysteme Referenzdatentypen
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 Programmierung für NF MI. Übung 07
Einführung in die Programmierung für NF MI Übung 07 Inhalt Wiederholung Kommentare Wiederholung Arrays Einführung in Objekte Einführung in die Programmierung für NF Übung 07 2 Wiederholung Kommentare Kommentare
MehrImplementieren von Klassen
Implementieren von Klassen Felder, Methoden, Konstanten Dr. Beatrice Amrhein Überblick Felder/Mitglieder (Field, Member, Member-Variable) o Modifizierer Konstanten Methoden o Modifizierer 2 Felder und
MehrObjektorientierte Programmierung
Unterlagen zur Veranstaltung Einführung in die Objektorientierte Programmierung Mit Processing Alexis Engelke Sommer 2012 Alexis Engelke Inhalt Level 1: Geometrie Hintergrundfarben Punkte, Linien und deren
MehrObjektorientierte Programmierung und Klassen
Objektorientierte Programmierung und Klassen Gerd Bohlender Institut für Angewandte und Numerische Mathematik Vorlesung: Einstieg in die Informatik mit Java 16.5.07 G. Bohlender (IANM UNI Karlsruhe) OOP
MehrPROCESSING ELTERN UND KINDER. Created by Michael Kirsch & Beat Rossmy
PROCESSING ELTERN UND KINDER Created by Michael Kirsch & Beat Rossmy INHALT 1. Rückblick 1. Processing Basics 3. Anwendung 1. extends 2. Klassen 2. implements 2. 3. 1. Objekte Theorie Es gibt ja nicht
MehrFragen zur OOP in Java
- 1 - Inhalt Was bedeutet OOP?... 2 Was versteht man unter einer Klasse?... 2 Wie nennt man die Mitglieder einer Klasse?... 2 Wie erzeugt man Objekte?... 2 Wie greife ich auf Member einer Klasse zu?...
MehrJava Zusammenfassung. Basisdatentypen ganzzahlig: Byte, Short, Integer, Long Fließkomma: Float, Double Zeichen: Character Wahrheitswerte: Boolean
Java Zusammenfassung Martin Zettwitz, Otto-von-Guericke Universität Magdeburg Standardprogramm - Einstieg/Initialisierung in der main() Funktion - Hier(Basic/Start) die Variablen deklarieren, Methoden
MehrCS1005 Objektorientierte Programmierung
CS1005 Objektorientierte Programmierung Bachelor of Science (Informatik) Objektorientierung I : Statische Klassen Statische Aspekte (Modularisierung) Dynamische Aspekte (Klassen-Objekte) Seite 1 Th Letschert
Mehrn 1. Grundzüge der Objektorientierung n 2. Methoden, Unterprogramme und Parameter n 3. Datenabstraktion n 4. Konstruktoren n 5. Vordefinierte Klassen
n 1. Grundzüge der Objektorientierung n 2. Methoden, Unterprogramme und Parameter n 3. Datenabstraktion n 4. Konstruktoren n 5. Vordefinierte Klassen II.2.2 Methoden, Unterprogramme und Parameter - 1 -
MehrTag 8 Repetitorium Informatik (Java)
Tag 8 Repetitorium Informatik (Java) Dozent: Michael Baer Lehrstuhl für Informatik 2 (Programmiersysteme) Friedrich-Alexander-Universität Erlangen-Nürnberg Wintersemester 2017/2018 Informatik-Repetitorium
MehrPropädeutikum Programmierung in der Bioinformatik
Propädeutikum Programmierung in der Bioinformatik Java Klassen und Objekte Thomas Mauermeier 27.11.2018 Ludwig-Maximilians-Universität München Rückblick Imperative Programmierung Variablen Fallunterscheidungen
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
MehrCS1005 Objektorientierte Programmierung Bachelor of Science (Informatik)
CS005 Objektorientierte Programmierung Bachelor of Science (Informatik) Th Letschert Felder Seite Th Letschert OOP Felder / Arrays Seite 2 Th Letschert Feld / Array Feld (auch Array) Daten unter einem
MehrJavakurs FSS Lehrstuhl Stuckenschmidt. Tag 3 - Objektorientierung
Javakurs FSS 2012 Lehrstuhl Stuckenschmidt Tag 3 - Objektorientierung Warum Objektorientierung Daten und Funktionen möglichst eng koppeln und nach außen kapseln Komplexität der Software besser modellieren
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
Mehr1. Grundzüge der Objektorientierung 2. Methoden, Unterprogramme und Parameter 3. Datenabstraktion 4. Konstruktoren 5. Vordefinierte Klassen
1. Grundzüge der Objektorientierung 2. Methoden, Unterprogramme und Parameter 3. Datenabstraktion 4. Konstruktoren 5. Vordefinierte Klassen II.2.2 Methoden, Unterprogramme und Parameter - 1 - 2. Methoden
MehrObjekte und Klassen. INE2 M. Thaler, Office TG ZHAW, M. Thaler, K. Rege, G. Burkert, E.
Objekte und Klassen INE2 M. Thaler, tham@zhaw.ch Office TG208 http://www.zhaw.ch/~tham 1 Um was geht es? typedef struct Konto { double saldo; int id; Konto; Modul "konto" konto.h konto.c Prozedurale Programmierung:
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.......................
MehrCreated by Michael Kirsch & Beat Rossmy
PROCESSING EINE EINFÜHRUNG IN DIE INFORMATIK Created by Michael Kirsch & Beat Rossmy INHALT 1. Sto der Vorlesung 1. PImage 2. Übung 1. Aufgabe 1 2. Modulo 2. Aufgabe 2 3. Animation-Array STOFF DER VORLESUNG
MehrSoftware Entwicklung 1
Software Entwicklung 1 Annette Bieniusa Peter Zeller AG Softech FB Informatik TU Kaiserslautern Speichermanagement Wie viel Speicher braucht ein Programm? Wofür wird Speicher benötigt? Wie ist der Speicher
MehrAllgemeines - Prinzipien
OOP - Prinzipien Allgemeines - Prinzipien OO modelliert die reale Welt als System interagierender Objekte Objekt = gedankliche oder reale Einheit in der Umwelt und/oder in Software Klar definierte Schnittstellen
MehrPROCESSING STRUKTUR UND INPUT. Created by Michael Kirsch & Beat Rossmy
PROCESSING STRUKTUR UND INPUT Created by Michael Kirsch & Beat Rossmy INHALT 1. Rückblick 1. Processing Basics 3. Anwendung 1. random 2. 1,2,3,... Integer! 2. else 3. Boolsche Operatoren 3. float 4. Bedingungen
MehrDer Ball kann angezeigt werden: anzeigen( ) {... } Der Ball kann z.b. seine Größe verändern: groesseaendern(int veraenderung) {... } usw.
Objekt-Orientierung Die ersten objektorientierten Sprachen wurden ab 1967 entwickelt (Simula, Smalltalk). Die Grundidee besteht darin, Objekte der realen Welt abzubilden. Java-Programme bestehen aus Klassen.
MehrPROCESSING SCHUBLADEN UND ZEICHEN. Created by Michael Kirsch & Beat Rossmy
PROCESSING SCHUBLADEN UND ZEICHEN Created by Michael Kirsch & Beat Rossmy INHALT 1. Rückblick 1. Processing Basics 3. Anwendung 1. Array 2. float 2. String 3. for 3. Funktionen 2. 4. else 5. Mouse Input
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/
MehrObjektorientierung. Klassen und Objekte. Dr. Beatrice Amrhein
Objektorientierung Klassen und Objekte Dr. Beatrice Amrhein Überblick Konzepte der Objektorientierten Programmierung Klassen und Objekte o Implementierung von Klassen o Verwendung von Objekten 2 Konzepte
MehrProgrammieren I. Arrays Heusch 7.2 Ratz Institut für Angewandte Informatik
Programmieren I Arrays Heusch 7.2 Ratz 5.1 KIT Die Forschungsuniversität in der Helmholtz-Gemeinschaft www.kit.edu Arrays: Definition Arrays (dt. Felder) dienen zum Speichern mehrerer gleichartiger Daten
MehrFH D. Objektorientierte Programmierung in Java FH D FH D. Prof. Dr. Ing. André Stuhlsatz. Referenzen. Referenzen
5 Objektorientierte Programmierung in Java Prof. Dr. Ing. André Stuhlsatz Referenzen Beispiel an der einfachen Klasse Walze: public class Walze { int id; public Walze(int id) { this.id = id; Verwenden
Mehrfloat: Fließkommazahl nach IEEE 754 Standard mit 32 bit
Primitive Datentypen Fließkommazahlen float: Fließkommazahl nach IEEE 754 Standard mit 32 bit Vorzeichen Exponent 8 bit Mantisse 23 bit double: Fließkommazahl nach IEEE 754 Standard mit 64 bit Vorzeichen
MehrPrinzipien der objektorientierten Programmierung (OOP)
Die Ziele der OOP sind: - bessere Warbarkeit - Wiederverwendbarkeit 1.) Datenkapselung Prinzipien der objektorientierten Programmierung (OOP) Komplexe Datenstrukturen (wie zb ein Stack) werden vom Anwendungsprogramm
MehrDiana Lange. Generative Gestaltung Die Processing Bibliothek
Diana Lange Generative Gestaltung Die Processing Bibliothek Inhalt Diese Foliensammlung gibt eine Einsicht über processingspezifischen Anweisungen und Variablen. Einführung Alle Elemente, die wir dank
Mehr6 Speicherorganisation
Der Speicher des Programms ist in verschiedene Speicherbereiche untergliedert Speicherbereiche, die den eigentlichen Programmcode und den Code der Laufzeitbibliothek enthalten; einen Speicherbereich für
MehrC++ - Objektorientierte Programmierung Konstruktoren und Destruktoren
C++ - Objektorientierte Programmierung Konstruktoren und Destruktoren hat eine Kantenlänge hat eine Füllfarbe Kantenlänge setzen Füllfarbe lesen Volumen berechnen Leibniz Universität IT Services Anja Aue
Mehr1. Grundzüge der Objektorientierung 2. Methoden, Unterprogramme und Parameter 3. Datenabstraktion 4. Konstruktoren 5. Vordefinierte Klassen
1. Grundzüge der Objektorientierung 2. Methoden, Unterprogramme und Parameter 3. Datenabstraktion 4. Konstruktoren 5. Vordefinierte Klassen II.2.2 Methoden, Unterprogramme und Parameter - 1 - 2. Methoden
MehrVorlesung Programmieren
Vorlesung Programmieren Speicherverwaltung und Parameterübergabe Prof. Dr. Stefan Fischer Institut für Telematik, Universität zu Lübeck http://www.itm.uni-luebeck.de/people/fischer Gültigkeitsbereich von
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
MehrCoMa 04. Java II. Paul Boeck. 7. Mai Humboldt Universität zu Berlin Institut für Mathematik. Paul Boeck CoMa 04 7.
CoMa 04 Java II Paul Boeck Humboldt Universität zu Berlin Institut für Mathematik 7. Mai 2013 Paul Boeck CoMa 04 7. Mai 2013 1 / 13 Verzweigungen Wenn-Dann Beziehungen if (BEDINGUNG) { else if (BEDINGUNG2)
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
MehrTAG5: ABSCHLUSS Brückenkurs Programmierung SoSe 17
TAG5: ABSCHLUSS Brückenkurs Programmierung SoSe 17 Toni Barthel Organisatorisches I Themen: Tag 1: Variablen Operatoren, Verzweigungen Tag 2: Animationen, Schleifen Tag 3: Funktionen, Events, Arrays, Exkurs:
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
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
Mehr3.3. Rekursive Datentypen
3.3. Rekursive Datentypen class Element int info; Element naechster;... Element element = new Element(); element.info = 1; element.naechster = new Element(); element.naechster.info = 2; Erläuterung: Objekte
MehrProgrammierung 1 Studiengang MI / WI
Programmierung 1 Studiengang MI / WI Dipl.-Inf., Dipl.-Ing. (FH) Michael Wilhelm Hochschule Harz FB Automatisierung und Informatik mwilhelm@hs-harz.de http://mwilhelm.hs-harz.de Raum 2.202 Tel. 03943 /
MehrC# Programmierung. Eine Einführung in das.net Framework. C# Programmierung - Tag 2: Einstieg in die OOP
C# Programmierung Eine Einführung in das.net Framework C# Programmierung - Tag 2: Einstieg in die OOP 1/27/2012 1 Di Datentypen Arrays Operatoren Parameter Überladen Heap / Stack Klassen (un)boxing Tag
MehrHeap vs. Stack vs. statisch. 6 Speicherorganisation. Beispiel Statische Variablen. Statische Variablen
Heap vs. vs. statisch Der Speicher des Programms ist in verschiedene Speicherbereiche untergliedert Speicherbereiche, die den eigentlichen Programmcode und den Code der Laufzeitbibliothek enthalten; einen
Mehr4. Objektorientierte Programmierung mit C++
4. Objektorientierte Programmierung mit C++ Einführung C++ / Entwicklung der Sprachfamilie Erweiterungen der Sprache C: Ein- und Ausgabe, Referenzen, Speicherallokation und Freigabe Grundlagen des Typkonzepts
MehrEinstieg in die Informatik mit Java
1 / 25 Einstieg in die Informatik mit Java Objektorientierte Programmierung und Klassen Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 25 1 Die Philosophie 2 Definition
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]
Mehr1 Einleitung Generizität Syntax... 2
Inhaltsverzeichnis Inhaltsverzeichnis 1 Einleitung 1 1.1 Generizität................................ 1 1.2 Syntax.................................. 2 2 Realisierung 2 2.1 Compilierung generischer Klassen...................
MehrHeap vs. Stack vs. statisch. 6 Speicherorganisation. Beispiel Statische Variablen. Statische Variablen
Heap vs. vs. statisch Der Speicher des Programms ist in verschiedene Speicherbereiche untergliedert Speicherbereiche, die den eigentlichen Programmcode und den Code der Laufzeitbibliothek enthalten; einen
MehrProgrammieren I. Arrays Heusch 7.2 Ratz Institut für Angewandte Informatik
Programmieren I Arrays Heusch 7.2 Ratz 5.1 KIT Die Forschungsuniversität in der Helmholtz-Gemeinschaft www.kit.edu Arrays: Definition Arrays (dt. Felder) dienen zum Speichern mehrerer gleichartiger Daten
MehrPROCESSING EINE EINFÜHRUNG IN DIE INFORMATIK. Created by Michael Kirsch & Beat Rossmy
PROCESSING EINE EINFÜHRUNG IN DIE INFORMATIK Created by Michael Kirsch & Beat Rossmy INHALT 1. Einleitung 1. Ziele 3. Anwendung 1. Sprung ins kalte Wasser 2. Der Informatiker Ein Klischee 2. Wir basteln
MehrJavakurs für Anfänger
Javakurs für Anfänger Einheit 03: Wiederholung Klassen & Objekte Lorenz Schauer Lehrstuhl für Mobile und Verteilte Systeme Heutige Agenda Wiederholung Klassen, Objekte, Attribute und Methoden Das Schlüsselwort
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
MehrProgrammierstarthilfe SS 2008 Fakultät für Ingenieurwissenschaften und Informatik 8. Blatt Für den 16. und
Programmierstarthilfe SS 2008 Fakultät für Ingenieurwissenschaften und Informatik 8. Blatt Für den 16. und 17.6.2008 Organisatorisches Um auf die Mailingliste aufgenommen zu werden schicke einfach eine
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
MehrTest zu Grundlagen der Programmierung Leitung: Susanne Guth/Michael Hahsler. 31. Jänner 2003
Test zu Grundlagen der Programmierung Leitung: Susanne Guth/Michael Hahsler 1. Jänner 00 Name Martrikelnummer Unterschrift Bitte kreuzen Sie das Studium an, für das Sie diese Prüfung ablegen: O Bakkalaureat
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
MehrGrundlagen der Informatik 0
Technische Universität Darmstadt 01.07.2013 Grundlagen der Informatik 0 Vorlesung 0 Java ist eine Programmiersprache Ilkay Baytekin Douglas Crockford http://media.smashingmagazine.com/wp-content/uploads/2012/04/doug-crockford-image.jpg
MehrFolienpaket 7 Themenschwerpunkte: Methoden in OOP /2016 Dr. Daniel Haase - Vorkurse Informatik V3/V4
Folienpaket 7 Themenschwerpunkte: Methoden in OOP 284 09/2016 Dr. Daniel Haase - Vorkurse Informatik V3/V4 Eine Klasse entwerfen Eine Klasse enthält folgende Information: Name der Klasse (ist auch der
MehrC++ - Objektorientierte Programmierung Konstante und statische Elemente
C++ - Objektorientierte Programmierung Konstante und statische Elemente hat eine Kantenlänge hat eine Füllfarbe Kantenlänge setzen Füllfarbe lesen Volumen berechnen Leibniz Universität IT Services Anja
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
Mehr6 Speicherorganisation
6 Speicherorganisation Der Speicher des Programms ist in verschiedene Speicherbereiche untergliedert Speicherbereiche, die den eigentlichen Programmcode und den Code der Laufzeitbibliothek enthalten; einen
MehrKapitel 13. Abstrakte Methoden und Interfaces. Fachgebiet Knowledge Engineering Prof. Dr. Johannes Fürnkranz
Kapitel 13 Abstrakte Methoden und Interfaces 13. Abstrakte Klassen und Interfaces 1. Abstrakte Klassen 2. Interfaces und Mehrfachvererbung Folie 12.2 Abstrakte Methoden und Klassen Manchmal macht es überhaupt
MehrProbeklausur Java Einführung in die Informatik. Wintersemester 2017/2018. Musterlösung
Fakultät IV NI & CV Java Einführung in die Informatik Wintersemester 2017/2018 Hinweis: Diese ist eine kleine Aufgabensammlung, die etwa dem Schwierigkeitsgrad der schriftlichen Prüfung des Moduls Einführung
MehrTeil 2: Weitere Aspekte der Objektorientierung
Teil 2: Weitere Aspekte der Objektorientierung Klassenvariablen So wie es Instanzvariablen gibt, die zu einer gewissen Instanz (Objekt) gehören und deren Attribute speichern, so gibt es aus Klassenvariablen:
MehrVererbung. Generalisierung und Spezialisierung Vererbung und Polymorphismus
Vererbung Generalisierung und Spezialisierung Vererbung und Polymorphismus Wir wollen in unserem Aquarium verschiedene Arten von Fischen schwimmen lassen. In einem ersten Ansatz definieren wir nicht nur
MehrObjektorientierung (OO)
Objektorientierung (OO) Objekte haben Zustände (oder Eigenschaften, Attribute) und Verhalten Zustände: Objektvariablen (in Java auch fields) Verhalten (oder Aktionen): Methoden (methods, Funktionen) members
MehrJava Methoden. Informatik 1 für Nebenfachstudierende Grundmodul. Kai-Steffen Hielscher Folienversion: 1. Februar 2017
Informatik 1 für Nebenfachstudierende Grundmodul Java Methoden Kai-Steffen Hielscher Folienversion: 1. Februar 2017 Informatik 7 Rechnernetze und Kommunikationssysteme Inhaltsübersicht Kapitel 3 - Java
MehrJava Einführung Methoden. Kapitel 6
Java Einführung Methoden Kapitel 6 Inhalt Deklaration und Aufruf von Methoden Lokale und globale Namen (Bezeichner) Sichtbarkeit und Lebensdauer von Variablen in Methoden Überladen von Methoden 2 Methoden
MehrAlgorithmen und Programmierung II
Algorithmen und Programmierung II Vererbung Prof. Dr. Margarita Esponda SS 2012 1 Imperative Grundbestandteile Parameterübergabe String-Klasse Array-Klasse Konzepte objektorientierter Programmierung Vererbung
MehrJavakurs für Anfänger
Javakurs für Anfänger Einheit 03: Wiederholung Klassen & Objekte Kyrill Schmid Lehrstuhl für Mobile und Verteilte Systeme Wiederholung Heutige Agenda Klassen, Objekte, Attribute und Methoden Das Schlüsselwort
MehrJava für Bauingenieure
1 JAVA für Bauingenieure Alexander Karakas SS 2008 Objektorientierte Programmierung 30.04.2008, CIP Pool Objektorientierte Programmierung Übersicht 2 Klasse und Objekt Polymorphismus und Vererbung Klassen
MehrFakultät IV Elektrotechnik/Informatik
Fakultät IV Elektrotechnik/Informatik Probeklausur Einführung in die Informatik I Hinweis: Diese Probeklausur ist eine kleine Aufgabensammlung, die etwa dem Schwierigkeitsgrad der Teilleistung TL 2 (Programmiertest)
MehrGrundlagen der OO- Programmierung in C#
Grundlagen der OO- Programmierung in C# Technische Grundlagen 1 Dr. Beatrice Amrhein Überblick Visual Studio: Editor und Debugging Die Datentypen Methoden in C# Die Speicherverwaltung 2 Visual Studio 3
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...........................
MehrDAP2-Programmierpraktikum Einführung in C++ (Teil 2)
DAP2-Programmierpraktikum Einführung in C++ (Teil 2) Carsten Gutwenger 18. April 2008 Lehrstuhl 11 Algorithm Engineering Fakultät für Informatik, TU Dortmund Überblick Dynamischer Speicher Klassen und
Mehr