Einführung in die Programmierung
|
|
- Karlheinz Sternberg
- vor 6 Jahren
- Abrufe
Transkript
1 Chair of Software Engineering Einführung in die Programmierung Prof. Dr. Bertrand Meyer Lektion 9: Abstraktion
2 Heutige Themen Abstraktion, vor allem funktionale Abstraktion Der Begriff der Routine Das letzte Wort zu Features: alle Featurekategorien Das Prinzip des einheitlichen Zugriffs (Uniform Access Principle) Abstraktionen und Kundenprivilegien Das Geheimnisprinzip 2
3 Routine: eine Abstraktion eines Algorithmus Abstrahieren heisst, die Essenz eines Konzeptes zu erfassen und Details und Angaben zu ignorieren Will heissen: Einige Informationen weglassen Dem Ergebnis der Abstraktion einen Namen geben In der Programmierung: Datenabstraktion: Klasse Eine Routine wird auch Methode genannt Abstraktion eines (operativen) Algorithmus: Routine Oder Subprogramm oder Subroutine 3
4 Eine Routine ist eine der zwei Featurekategorien... die andere Kategorie sind die Attribute. Wir sind schon zahlreichen Routinen (als Features) begegnet, allerdings ohne den Namen zu kennen 4
5 Eine Routine r (arg : TYPE ;...) -- Kopfkommentar. require Vorbedingung (Boole scher Ausdruck) do Rumpf (Instruktionen) ensure Nachbedingung (Boole scher Ausdruck) end 5
6 Gebrauch von Routinen Von unten nach oben (bottom-up): Erfasse den existierenden Algorithmus, wenn möglich wiederverwendbar Von oben nach unten (top-down): Platzhalter-Routinen Eine attraktive Alternative zu Pseudocode build_route -- Eine Route bauen und -- damit arbeiten. do create_opera_route Zurich add_route (Opera_route) Opera_route reverse end create_opera_route -- Route erzeugen und -- Teilstrecken hinzufügen. do -- TODO -- BM, 26 Oct 2011 end Methodologie: TODO -Einträge sollten informativ sein 6
7 Zwei Arten von Routinen Prozedur: gibt kein Resultat zurück Ergibt einen Befehl Aufrufe sind Instruktionen Funktion: gibt ein Resultat zurück f (arg : TYPE;...): RESULT_TYPE... (Der Rest wie zuvor)... Ergibt eine Abfrage Aufrufe sind Ausdrücke 7
8 Features: Die ganze Wahrheit Eine Klasse wird durch ihre Features charakterisiert. Jedes Feature ist eine Operation auf den korrespondierenden Elementen: Abfrage oder Befehl. Features sind der Leserlichkeit halber in verschiedene Kategorien eingeteilt. Klassenklauseln: Notizen (Indexierung) Vererbung Erzeugung Feature (mehrere) Invariante Anatomie einer Klasse: Demo 8
9 Features: die ganze Wahrheit Kundenansicht (Spezifikation) Befehl Prozedur Interne Ansicht (Implementation) Kein Resultat Routine Feature Gibt Resultat zurück Funktion Berechnung Feature Abfrage Berechnung Speicherzugriff Attribut Speicherzugriff 9
10 Das Prinzip des einheitlichen Zugriffs* Dem Kunden ist es egal, ob Sie etwas berechnen oder im Speicher nachschauen *Uniform access principle 10
11 Das Prinzip des einheitlichen Zugriffs: Beispiel saldo = liste_der_einzahlungen.total liste_der_abhebungen.total (A1) liste_der_einzahlungen liste_der_abhebungen (A2) liste_der_einzahlungen liste_der_abhebungen saldo Ein Aufruf wie z.b. ihr_konto.saldo könnte ein Attribut oder eine Funktion benutzen 11
12 Das Prinzip des einheitlichen Zugriffs Dem Kunden ist es egal, ob Sie etwas berechnen oder im Speicher nachschauen 12
13 Das Prinzip des einheitlichen Zugriffs Etwas technischer ausgedrückt: Eine Abfrage sollte für Kunden auf die gleiche Weise aufrufbar sein, egal ob sie als Attribut oder Funktion implementiert wurde 13
14 Ein Objekt hat eine Schnittstelle set set_x set_y x y 14
15 Ein Objekt hat eine Implementation set set_x set_y first x count y 15
16 Das Geheimnisprinzip set set_x set_y x y 16
17 Was Kunden tun können class STATION feature name : STRING -- Name. position : VECTOR -- Position im Bezug auf das Stadtzentrum. end set_position (new_x, new_y : REAL) -- Position setzen. do position set (new_x, new_y) end 17
18 Was Kunden nicht tun können class STATION feature end name : STRING -- Name. position : VECTOR -- Position im Bezug auf das Stadtzentrum. set_position (new_x, new_y : REAL) -- Position setzen. do position x := new_x position y := new_y end NICHT ERLAUBT! 18
19 Benutzen Sie «setter-prozeduren» position set (3, position.y ) position set_x (3) position move (0, h) 19
20 Abstraktion und Kundenprivilegien Wenn Klasse A ein Attribut x hat, was darf eine Kundenklasse C mit a1.x tun, wobei a1 vom Typ A ist? C a1 : A a1 A x a1 x (C ) Lesezugriff, falls das Attribut exportiert ist. (A) a1.x ist ein Ausdruck! Eine Zuweisung a1.x := v wäre syntaktisch ungültig!! (Es würde einem Ausdruck etwas zuweisen, wie z.b.: a + b := v ) 20
21 Abstraktionsprinzipien anwenden Um Kunden Schreibprivilegien zu ermöglichen: Definieren Sie eine Setter-Prozedur, wie z.b.: set_temperature (u : REAL) -- Setzt temperature auf u. do temperature := u ensure temperature_set: temperature = u end Kunden können diese wie folgt aufrufen: x.set_temperature (21.5) 21
22 Setter-Befehle voll ausnutzen set_temperature (u : REAL) -- Setzt Temperaturwert auf u. require do nicht_unter_minimum: u >= -273 nicht_über_maximum: u <= 2000 temperature := u update_database ensure temperatur_gesetzt: temperature = u end 22
23 Abstraktion und Kundenprivilegien Wenn Klasse A ein Attribut x hat, was darf eine Kundenklasse C mit a1.x tun, wobei a1 vom Typ A ist? C a1 : A a1 A x a1 x (C ) Lesezugriff, falls das Attribut exportiert ist. (A) a1.x ist ein Ausdruck! Eine Zuweisung a1.x := v wäre syntaktisch ungültig!! (Es würde einem Ausdruck etwas zuweisen, wie z.b.: a + b := v ) 23
24 Exportieren (als public deklarieren) eines Attributes Ein Attribut exportieren heisst in Eiffel, (nur) seine Leserechte zu exportieren Von ausserhalb erkennt man es nicht als Attribut, nur als Abfrage: es könnte auch eine Funktion sein In C++, Java und C#, werden mit der public-deklaration eines Attributs* x sowohl Schreib- als auch Leserechte exportiert: v := a1.x a1.x := v Dies führt dazu, dass es fast immer eine schlechte Idee ist, ein Attribut zu exportieren * (field, member variable) 24
25 Features: die ganze Wahrheit Kundenansicht (Spezifikation) Befehl Prozedur Interne Ansicht (Implementation) Kein Resultat Routine Feature Gibt Resultat zurück Funktion Berechnung Feature Abfrage Berechnung Speicherzugriff Attribut Speicherzugriff 25
26 Getter-Funktionen In C++, Java und C# ist die Standardtechnik, um ein privates Attribut private_x zu exportieren, das Exportieren einer entsprechenden Getter-Funktion: x : T do end Result := private_x Eiffel braucht keine Getter-Funktionen: Man kann einfach das Attribut exportieren Das Attribut wird wie folgt exportiert: Nur Leserechte Ohne die Information, dass es ein Attribut ist. Es könnte auch eine Funktion sein. (Prinzip des einheitlichen Zugriffs) 26
27 Wir wollen beide Arten! (Eiffel-Syntax) Es ist möglich, eine Abfrage wie folgt zu definieren: temperature: REAL assign set_temperature Dann wird folgende Syntax x.temperature := 21.5 Keine Zuweisung, sondern ein Prozedurenaufruf! akzeptiert als Abkürzung für x.set_temperature (21.5) Erhält Verträge und andere ergänzende Operationen. In C# gibt es den Begriff des Property, womit das gleiche Ziel verfolgt wird 27
28 Das Geheimnisprinzip (Information Hiding) class A feature f... g... feature {NONE } h, i... feature {B, C } j, k, l... feature {A, B, C } end m, n... Status der Aufrufe in einem Kunden mit a1: A: a1.f, a1.g: in jedem Kunden gültig. a1.h: überall ungültig (auch in A s eigenem Klassentext!) a1.j: nur in B, C und deren Nachkommen gültig (Nicht gültig in A!) a1.m: nur in A, B, C und deren Nachkommen gültig. 28
29 Das Geheimnisprinzip Das Geheimnisprinzip gilt nur für Benutzung durch Kunden, mittels qualifizierten Aufrufen oder Infix-Notation, z.b.: a1.f Unqualifizierte Aufrufe (innerhalb einer Klasse) sind vom Geheimnisprinzip nicht betroffen: class A feature {NONE } h do... end feature end f do end...; h ;... 29
30 Ein Beispiel für selektiven Export LINKABLE exportiert ihre Features an LINKED_LIST Exportiert sie nicht für den Rest der Welt. Kunden von LINKED_LIST müssen nichts über die LINKABLE Zellen wissen. count 3 first_element active Haldenegg Central Hauptbahnhof item right item right item right 30
31 Selektiv exportieren class LINKABLE [G] Diese Features werden selektiv an LINKED_LIST und ihre Nachkommen exportiert. (Und zu keinen weiteren Klassen.) feature {LINKED_LIST } put_right (...) do... end right : G do... end end... 31
32 LINKABLE class LINKABLE feature {LINKED_LIST } item: STRING -- Wert dieser Zelle. Haldenegg item right : LINKABLE -- Zelle, welche rechts an diese Zelle -- angehängt ist (falls vorhanden). right end put_right (other : like Current) -- Setzt other rechts neben die aktuelle Zelle. do right := other ensure verkettet: right = other end 32
33 Was wir in dieser Vorlesung gesehen haben Die volle Kategorisierung von Features Routinen, Prozeduren, Funktionen Einheitlicher Zugriff Geheimnisprinzip Selektives Exportieren Setter- und Getter-Funktionen Eiffel: Assigner-Befehle 33
34 Leseaufgabe auf nächste Woche Kapitel über Inheritance (16) 34
Letztes Mal. static int ggt(int a, int b) { if (a == b) return a; else if (a > b) return ggt(a-b,b); else if (a < b) return ggt(a,b-a);
Letztes Mal static int ggt(int a, int b) { if (a == b) return a; else if (a > b) } return ggt(a-b,b); else if (a < b) return ggt(a,b-a); Darf hier nicht stehen! Compiler sagt: Missing return statement
Einführung in die Programmierung. Vorlesung 12: Das dynamische Modell. Zuweisung. Werte ändern: Zuweisung. Bertrand Meyer
1 2 Einführung in die Programmierung Bertrand Meyer Vorlesung 12: Das dynamische Modell Letzte Änderungen 24. November 2004 Werte ändern: Zuweisung 3 Zuweisung 4 target := source Ersetzt einen Wert durch
Einführung in die Programmierung. Bertrand Meyer. Vorlesung 23: Ein Beispiel: Undo-Redo. Das Problem
1 Einführung in die Programmierung Bertrand Meyer Letzte Bearbeitung 20. Januar 2004 2 Vorlesung 23: Ein Beispiel: Un-Re Das Problem 3 Den Benutzern eines interaktiven Systems ermöglichen, den Effekt des
Kapitel 9: Klassen und höhere Datentypen. Klassen und höhere. Objekte, Felder, Methoden. Küchlin/Weber: Einführung in die Informatik
Klassen und höhere Datentypen Objekte, Felder, Methoden Küchlin/Weber: Einführung in die Informatik Klassen Klasse (class) stellt einen (i.a. benutzerdefinierten) Verbund-Datentyp dar Objekte sind Instanzen
Einführung in die Programmierung
Chair of Software Engineering Einführung in die Programmierung Prof. Dr. Bertrand Meyer Lecture 18: Undo/Redo Chair of Software Engineering Weiterführe Referenzen Kapitel 21 von Object-Oriented Software
Inhaltsüberblick. I. Grundbegriffe - Objekte und Klassen. Organisatorisches. I. Grundbegriffe - Objektorientierte Konzepte
Grundkonzepte Objektorientierter Programmierung Nicole Himmerlich FSU Jena mit Java, Oberon-2, Object-Pascal und Python Inhaltsüberblick I. Grundbegriffe 1) Kopplung 2) Datenkaspelung 3) Konstruktor 4)
Softwaretechnik (Allgemeine Informatik) Überblick
Softwaretechnik (Allgemeine Informatik) Überblick 1 Einführung und Überblick 2 Abstraktion 3 Objektorientiertes Vorgehensmodell 4 Methoden der Anforderungs- und Problembereichsanalyse 5 UML-Diagramme 6
Selbstbestimmtes Lernen. Proinformatik III Objektorientierte Programmierung. Format. Inhalt. Buzzwords
4.0 Proinformatik III Objektorientierte Programmierung Michael Kölling University of Kent Canterbury, UK Selbstbestimmtes Lernen Vorlesung Tutorium Übungen Buch Web-Seite Üben, üben, üben! Format Vorlesung:
Objektorientierte Programmierung mit Java. Grundlagen Übersicht. Programmiersprachen
Objektorientierte Programmierung mit Grundlagen 27.10.2008 1 Übersicht 27.10.2008 2 1 Übersicht Klassen und Objekte in - Klassen - Objekte - Klassen - Objekte 27.10.2008 3 Übersicht 27.10.2008 4 2 Einführung
PIWIN I. Praktische Informatik für Wirtschaftsmathematiker, Ingenieure und Naturwissenschaftler I. Vorlesung 3 SWS WS 2007/2008
PIWIN I Kap. 7 Objektorientierte Programmierung - Einführung 1 PIWIN I Praktische Informatik für Wirtschaftsmathematiker, Ingenieure und Naturwissenschaftler I Vorlesung 3 SWS WS 2007/2008 FB Informatik
Repetitorium 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
Objektorientierte Programmierung
Objektorientierte Programmierung 1 Geschichte Dahl, Nygaard: Simula 67 (Algol 60 + Objektorientierung) Kay et al.: Smalltalk (erste rein-objektorientierte Sprache) Object Pascal, Objective C, C++ (wiederum
FEINDLICHE VERWENDUNG
1 2 Letzte Aktualisierung: 16. April 2004 Programmierung im Grossen Bertrand Meyer Vorlesung 2: Modularität, Wiederverwbarkeit Programm für heute 3 Software Qualität 4 Software Qualität Modularität Wiederverwbarkeit
Vererbung & Schnittstellen in C#
Vererbung & Schnittstellen in C# Inhaltsübersicht - Vorüberlegung - Vererbung - Schnittstellenklassen - Zusammenfassung 1 Vorüberlegung Wozu benötigt man Vererbung überhaubt? 1.Um Zeit zu sparen! Verwendung
EINI WiMa/LW. Einführung in die Informatik für Naturwissenschaftler und Ingenieure. Vorlesung 2 SWS WS 11/12
EINI WiMa/LW Einführung in die Informatik für Naturwissenschaftler und Ingenieure Vorlesung 2 SWS WS 11/12 Fakultät für Informatik Technische Universität Dortmund lars.hildebrand@udo.edu http://ls1-www.cs.uni-dortmund.de
Objektorientierte Programmierung. Kapitel 12: Interfaces
12. Interfaces 1/14 Objektorientierte Programmierung Kapitel 12: Interfaces Stefan Brass Martin-Luther-Universität Halle-Wittenberg Wintersemester 2012/13 http://www.informatik.uni-halle.de/ brass/oop12/
zu große Programme (Bildschirmseite!) zerlegen in (weitgehend) unabhängige Einheiten: Unterprogramme
Bisher Datentypen: einfach Zahlen, Wahrheitswerte, Zeichenketten zusammengesetzt Arrays (Felder) zur Verwaltung mehrerer zusammengehörender Daten desselben Datentypes eindimensional, mehrdimensional, Array-Grenzen
3 Klassen, Attribute, Methoden
3 Klassen, Attribute, Methoden Jörn Loviscach Versionsstand: 10. April 2011, 10:25 Die nummerierten Felder sind absichtlich leer, zum Ausfüllen in der Vorlesung. Videos dazu: http://www.j3l7h.de/videos.html
Assertions (Zusicherungen)
April 10, 2005 Oberseminar Software-Entwicklung Inhalt 1. Einführung (Motivation, Tony Hoare, Programmverifikation) 2. Design by Contract (Idee, Eiffel) 3. Praxis: Programming by Contract for Python 4.
Chair of Software Engineering
1 2 Enführung n de Programmerung Bertrand Meyer Vorlesung 13: Contaner-Datenstrukturen Letzte Bearbetung 1. Dezember 2003 Themen für dese Vorlesung 3 Contaner-Datenstrukturen 4 Contaner und Genercty Enthalten
zu große Programme (Bildschirmseite!) zerlegen in (weitgehend) unabhängige Einheiten: Unterprogramme
Bisher Datentypen: einfach Zahlen, Wahrheitswerte, Zeichenketten zusammengesetzt Arrays (Felder) zur Verwaltung mehrerer zusammengehörender Daten desselben Datentypes eindimensional, mehrdimensional, Array-Grenzen
Einführung Datentypen Verzweigung Schleifen Funktionen Dynamische Datenstrukturen. Java Crashkurs. Kim-Manuel Klein (kmk@informatik.uni-kiel.
Java Crashkurs Kim-Manuel Klein (kmk@informatik.uni-kiel.de) May 7, 2015 Quellen und Editoren Internet Tutorial: z.b. http://www.java-tutorial.org Editoren Normaler Texteditor (Gedit, Scite oder ähnliche)
Chair of Software Engineering. Bezieher SUBSCRIBERS Ereignis Erzeuger (zb GUI) Chair of Software Engineering. Save_file ROUTINE
1 2 Letzte Aktualisierung: 27. Mai 2004 Programmierung im Grossen Vorlesung 13: Ereignis-Gesteuertes Design Bertrand Meyer Ereignis-gesteuerte Programmierung 3 Vermeiden von glue code 4 Verbreiter PUBLISHERS
Java 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
Software Engineering. Zur Architektur der Applikation Data Repository. Franz-Josef Elmer, Universität Basel, HS 2015
Software Engineering Zur Architektur der Applikation Data Repository Franz-Josef Elmer, Universität Basel, HS 2015 Software Engineering: Mit acht bewährten Praktiken zu gutem Code 2 Schichtarchitektur
5.5.8 Öffentliche und private Eigenschaften
5.5.8 Öffentliche und private Eigenschaften Schnittstellen vs. Implementierungen: Schnittstelle einer Klasse beschreibt, was eine Klasse leistet und wie sie benutzt werden kann, ohne dass ihre Implementierung
Grundzüge der Programmierung. Wiederverwendung VERERBUNG
Grundzüge der Programmierung Wiederverwendung VERERBUNG Inhalt dieser Einheit Syntax: Vererbung in Java Superklassen - Subklassen Konstruktorenaufruf in Subklassen super, abstract und final 2 Code-Reuse
Visual Studio 2010 Neues für Architekten
1 conplement AG 2009. All rights reserved. NIK Technologieseminar Visual Studio 2010 und.net 4.0 inside Visual Studio 2010 Neues für Architekten 16. November 2009 Thomas Hemmer Daniel Meixner conplement
Innovator 11 classix. Java Reverse Engineering. HowTo. Ralph Schönleber. www.mid.de
Innovator 11 classix Java Reverse Engineering Ralph Schönleber HowTo www.mid.de Mit Innovator Java Reverse Engineering durchführen Inhaltsverzeichnis Voraussetzungen... 2 Java Reverse Engineering... 2
Java Einführung Methoden in Klassen
Java Einführung Methoden in Klassen Lehrziel der Einheit Methoden Signatur (=Deklaration) einer Methode Zugriff/Sichtbarkeit Rückgabewerte Parameter Aufruf von Methoden (Nachrichten) Information Hiding
Design by Contract with JML
Thema: Design by Contract with JML Proseminar: Assertions Verfasser: Literatur: Betreuer: Natalya Moriz Gary T.Leavens and Yoonsik Cheon: Design by Contract with JML Prof. Dr. Heike Wehrheim 1 Inhalt DBC
Übung 1 mit C# 6.0 MATTHIAS RONCORONI
Übung 1 mit C# 6.0 MATTHIAS RONCORONI Inhalt 2 1. Überblick über C# 2. Lösung der Übung 1 3. Code 4. Demo C# allgemein 3 aktuell: C# 6.0 mit.net-framework 4.6: Multiparadigmatisch (Strukturiert, Objektorientiert,
Anwendungsentwicklung mit Java. Grundlagen der OOP, Vererbung, Schnittstellen, Polymorphie
Anwendungsentwicklung mit Java Grundlagen der OOP, Vererbung, Schnittstellen, Polymorphie Vererbung (1) 2 Problem: Objekte mit gleichen Attributen/Methoden, aber nicht völlig identisch, z.b., LKW, PKW,
Javakurs 2013 Objektorientierung
Javakurs 2013 Objektorientierung Objektorientierte Programmierung I Armelle Vérité 7 März 2013 Technische Universität Berlin This work is licensed under the Creative Commons Attribution-ShareAlike 3.0
Javakurs für Anfänger
Javakurs für Anfänger Einheit 09: Vererbung Lorenz Schauer Lehrstuhl für Mobile und Verteilte Systeme Heutige Agenda 1. Teil Einführung in die Vererbung Motivation Das Schlüsselwort extends Einführendes
188.154 Einführung in die Programmierung Vorlesungsprüfung
Matrikelnummer Studienkennzahl Name Vorname 188.154 Einführung in die Programmierung Vorlesungsprüfung Donnerstag, 27.1.2005, 18:15 Uhr EI 7 Arbeitszeit: 60 min - max. 50 Punkte erreichbar - Unterlagen
Javakurs 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
Tutorium Java. Softwaretechnologie: Java I. Marco Jürgens und Mihail Atanassov.
Tutorium Java Softwaretechnologie: Java I Marco Jürgens und Mihail Atanassov tutoren@spinfo.uni-koeln.de Themen Entwicklungsumgebung: Eclipse-Installation MrTurtle und Plugins für Eclipse Java: Klassen
Programmierung in Python
Programmierung in Python imperativ, objekt-orientiert dynamische Typisierung rapid prototyping Script-Sprache Funktionales und rekursives Programmieren P raktische Informatik 1, W S 2004/05, F olien P
Objects First With Java A Practical Introduction Using BlueJ. Mehr über Vererbung. Exploring polymorphism 1.0
Objects First With Java A Practical Introduction Using BlueJ Mehr über Vererbung Exploring polymorphism 1.0 Zentrale Konzepte dieses Kapitels Methoden-Polymorphie statischer und dynamischer Typ Überschreiben
Wiederholung Wozu Methoden? Methoden Schreiben Methoden Benutzen Rekursion?! Methoden. Javakurs 2012, 3. Vorlesung
Wiederholung Wozu? Schreiben Benutzen Rekursion?! Javakurs 2012, 3. Vorlesung maggyrz@freitagsrunde.org 5. März 2013 Wiederholung Wozu? Schreiben Benutzen Rekursion?! 1 Wiederholung 2 Wozu? 3 Schreiben
3 Objektorientierte Konzepte in Java
3 Objektorientierte Konzepte in Java 3.1 Klassendeklarationen Fragen an die Klassendeklaration: Wie heißt die Klasse? Wer darf auf die Klasse und ihre Attribute/Methoden zugreifen? Ist die Klasse eine
Einführung in die Informatik
Einführung in die Informatik Jochen Hoenicke Software Engineering Albert-Ludwigs-University Freiburg Sommersemester 2014 Jochen Hoenicke (Software Engineering) Einführung in die Informatik Sommersemester
Java Kurs für Anfänger Einheit 4 Klassen und Objekte
Java Kurs für Anfänger Einheit 4 Klassen und Ludwig-Maximilians-Universität München (Institut für Informatik: Programmierung und Softwaretechnik von Prof.Wirsing) 13. Juni 2009 Inhaltsverzeichnis klasse
II. Grundlagen der Programmierung. 9. Datenstrukturen. Daten zusammenfassen. In Java (Forts.): In Java:
Technische Informatik für Ingenieure (TIfI) WS 2005/2006, Vorlesung 9 II. Grundlagen der Programmierung Ekkart Kindler Funktionen und Prozeduren Datenstrukturen 9. Datenstrukturen Daten zusammenfassen
OOP und Angewandte Mathematik. Eine Einführung in die Anwendung objektorientierter Konzepte in der angewandten Mathematik
Eine Einführung in die Anwendung objektorientierter Konzepte in der angewandten Mathematik WS 2011/12 Inhalt Test-Besprechung! Ziele verdeutlichen Große Bild von OOP Wiederholung: Einbettung als Technik
2. Programmieren gegen Schnittstellen Advanced Programming Techniques
2. Programmieren gegen Schnittstellen Advanced Programming Techniques Prof. Dr. Bernhard Humm FB Informatik, Hochschule Darmstadt Sommersemester 2011 1 Einordnung in den gesamten Kurs 2 1. Einführung 2.
Grundlagen der Informatik für Ingenieure I
3 Einführung in das objektorientierte Programmier-Paradigma 3 Einführung in das objektorientierte Programmier-Paradigma 3.1.1 Top-down structured design 3.1.2 Data-driven design 3.1.3 Object-oriented design
7. Schnittstellen Grundlagen zu Schnittstellen. 7. Schnittstellen
7. Schnittstellen Grundlagen zu Schnittstellen 7. Schnittstellen Eine Schnittstelle (Interface) ist eine Spezifikation eines Typs in Form eines Typnamens und einer Menge von Methoden, die keine Implementierungen
Thema 2 Acceleo-MTL- Sprachmittel
SE Vertiefung Beuth-Hochschule Berlin Thema 2 Acceleo-MTL- Sprachmittel Sprachstruktur Template-Sprache implementiert MOFM2T Bausteine: Modul Template Query Block Protected Area (c) schmiedecke 13 Generator-Kapsel;
Aufbau von Klassen. class punkt {...
Einführung in C++ Aufbau von Klassen Eine wird mit dem Schlüsselwort class eingeleitet, und endet mit einem Semikolon. Der Inhalt wird zwischen geschweiften Klammern geschrieben. class punkt {... ; Im
Probeklausur: 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,
Interaktionen zwischen Objekten durch Senden von Nachrichten und Reagieren auf empfangene Nachrichten
Objekt Objekt kapselt Variablen und Routinen Interaktionen zwischen Objekten durch Senden von Nachrichten und Reagieren auf empfangene Nachrichten Eigenschaften jedes Objekts: Identität (identisch = mehrere
Einfache Rechenstrukturen und Kontrollfluss II
Einfache Rechenstrukturen und Kontrollfluss II Martin Wirsing in Zusammenarbeit mit Moritz Hammer und Axel Rauschmayer http://www.pst.informatik.uni-muenchen.de/lehre/ss06/infoii/ SS 06 Ziele Lernen imperative
Drei-Schichten-Architektur. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 16: 3-Schichten-Architektur 1 Fachkonzept - GUI
Universität Osnabrück Drei-Schichten-Architektur 3 - Objektorientierte Programmierung in Java Vorlesung 6: 3-Schichten-Architektur Fachkonzept - GUI SS 2005 Prof. Dr. F.M. Thiesing, FH Dortmund Ein großer
Übungen Softwaretechnik I
Universität Stuttgart Institut für Automatisierungstechnik und Softwaresysteme Prof. Dr.-Ing. M. Weyrich Übungen Softwaretechnik I Übung 5: Objektorientierte Analyse Einführung Objektorientierung in der
Einführung in die Programmierung mit VBA
Einführung in die Programmierung mit VBA Vorlesung vom 07. November 2016 Birger Krägelin Inhalt Vom Algorithmus zum Programm Programmiersprachen Programmieren mit VBA in Excel Datentypen und Variablen
Programmieren I. Strategie zum Entwurf von Klassen. Beispiele. Design von Klassen. Dr. Klaus Höppner. Beispiel: Bibliothek
Programmieren I Dr. Klaus Höppner Hochschule Darmstadt Wintersemester 2008/2009 1 / 22 2 / 22 Strategie zum Entwurf von Klassen Beispiele Objektorientierte Sichtweise: Mit welchen Objekten habe ich es
Kapitel 9. Inner Classes. 9.1 Wiederholung: Iteratoren. Ausführen einer Operation auf allen Elementen einer Containerklasse
Kapitel 9 Inner Classes 9.1 Wiederholung: Iteratoren Ausführen einer Operation auf allen Elementen einer Containerklasse (zb Liste, Baum,...) vgl. map/f old in der funktionalen Programmierung. Aber: higher-order
Funktionale Programmiersprachen
Funktionale Programmiersprachen An den Beispielen Haskell und Erlang Übersicht Programmiersprachen λ-kalkül Syntax, Definitionen Besonderheiten von funktionalen Programmiersprache, bzw. Haskell Objektorientierte
Einführung in die Java- Programmierung
Einführung in die Java- Programmierung Dr. Volker Riediger Tassilo Horn riediger horn@uni-koblenz.de WiSe 2012/13 1 Wichtig... Mittags keine Pommes... Praktikum A 230 C 207 (Madeleine + Esma) F 112 F 113
Aufgabe 1 KAPSELUNG. »Programmieren«, WS 2006/2007. Nino Simunic M.A.
»Prgrammieren«, WS 2006/2007 Nin Simunic M.A. Nin Simunic (nin.simunic@uni-due.de) Übungsblatt 8 Die benötigten Quelltexte finden Sie hier: http://imperia.uni-due.de/imperia/md/cntent/cmputerlinguistik/uebungsblatt_8_cde.zip
Klassendefinitionen verstehen
Klassendefinitionen verstehen Java-Programme bestehen aus Klassendefinitionen und sonst nichts! 1 1.0 Konzepte Felder Konstruktoren Methoden Parameter Zuweisungen ( = ) Anweisungen bedingte Anweisungen
Java: Vererbung. Teil 3: super() www.informatikzentrale.de
Java: Vererbung Teil 3: super() Konstruktor und Vererbung Kindklasse ruft SELBSTSTÄNDIG und IMMER zuerst den Konstruktor der Elternklasse auf! Konstruktor und Vererbung Kindklasse ruft SELBSTSTÄNDIG und
Silke Trißl, Prof. Ulf Leser Wissensmanagement in der Bioinformatik. Jede Applikation braucht eine Klasse mit einer main-methode
Methoden und Klassen Silke Trißl, Prof. Ulf Leser Wissensmanagement in der Bioinformatik Wiederholung Jede Applikation braucht eine Klasse mit einer main-methode Eintrittspunkt in das Programm Die main-methode
3. Grundlegende Sprachkonstruktionen imperativer Programme
3. Grundlegende Sprachkonstruktionen imperativer Programme Java-Beispiele: Temperature.java Keyboard.java K. Bothe, Institut für Informatik, HU Berlin, GdP, WS 2015/16 Version: 4. Nov. 2015 2 Schwerpunkte
OO Softwareentwicklung
OO Softwareentwicklung Objektorientierung Prof. Dr. Bernhard Schiefer 1 OO als Ansatz zur Verbesserung der Software-Qualität Modellierung der Welt als selbständig agierende Objekte. Gemeinsame Beschreibung
Javakurs 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
Einstieg in die Informatik mit Java
1 / 34 Einstieg in die Informatik mit Java Klassen mit Instanzmethoden Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 34 1 Definition von Klassen 2 Methoden 3 Methoden
Kapitel 3: Variablen
Kapitel 3: Variablen Thema: Programmieren Seite: 1 Kapitel 3: Variablen Im letzten Kapitel haben wir gelernt, bestimmte Ereignisse zu wiederholen solange eine Bedingung erfüllt ist. Nun möchten wir aber
Gregor Raschke 2008 HIBERNATE. Eine Einführung
1 HIBERNATE Eine Einführung Inhalt 2 Einleitung Beispielkonfiguration Die hibernate.cfg.xml Eine Beispieltransaktion Abfragemöglichkeiten JPA und Hibernate Ressourcen und Quellen Einleitung (1) - Geschichtliches
Informationsverarbeitung 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
Präsentation Interfaces
Einführung in Java Präsentation Interfaces Nozar Delassaei Marvi Inhalt 1. Erinnerung Klasse Objekte Beispiel Klasse Abstrakte Klasse Beispiel Abstrakte Klasse Mehrfachvererbung-1 Mehrfachvererbung-2 2.
7. Objektorientierte Softwareentwicklung/3. Informatik II für Verkehrsingenieure
7. Objektorientierte Softwareentwicklung/3 Informatik II für Verkehrsingenieure Überblick FOLGENDE BEGRIFFE/PRINZIPIEN SOLLTEN BEKANNT SEIN Objekte Klasse Attribute Fähigkeiten ZIEL DER HEUTIGEN LEHRVERANSTALTUNG
Remote Method Invocation
Remote Method Invocation spezielle Technik aus dem Java-Umfeld Ausführung der Methoden auf einem entfernten Rechner Analogon zum RPC (Remote Procedure Call) Zweck: Objekte in verschiedenen Java-VM s Aufruf
Java: Geheimnisprinzip, Kapselung; Getter und Setter.
Java: Geheimnisprinzip, Kapselung; Getter und Setter Geheimnisprinzip Nur einige Methoden und Attribute einer Klasse sind öffentlich zugänglich, die anderen bleiben geheim. = weniger (unbefugte, ungewollte
16 Architekturentwurf Einführung und Überblick
Teil III: Software-Architekturentwurf 16 Architekturentwurf Einführung und Überblick 16.1 Software entwerfen Warum? Beim Arbeiten im Kleinen nicht oder nur ansatzweise (Detailentwurf) Größere Software
26 Hierarchisch strukturierte Daten
Algorithmik II Peter Wilke Sommersemester 2005 Teil III Funktionale Programmierung 26 Hierarchisch strukturierte Daten Peter Wilke Algorithmik II Sommersemester 2005 1 Peter Wilke Algorithmik II Sommersemester
Programmieren I. Kapitel 5. Kontrollfluss
Programmieren I Kapitel 5. Kontrollfluss Kapitel 5: Kontrollfluss Ziel: Komplexere Berechnungen im Methodenrumpf Ausdrücke und Anweisungen Fallunterscheidungen (if, switch) Wiederholte Ausführung (for,
1. Der Begriff Informatik 2. Syntax und Semantik von Programmiersprachen. I.2. I.2. Grundlagen von von Programmiersprachen.
1. Der Begriff Informatik 2. Syntax und Semantik von Programmiersprachen I.2. I.2. Grundlagen von von Programmiersprachen. - 1 - 1. Der Begriff Informatik "Informatik" = Kunstwort aus Information und Mathematik
13 OOP MIT DELPHI. Records und Klassen Ein Vergleich
13 OOP MIT DELPHI Delphi war früher "Object Pascal". Dieser Name impliziert eine Funktionalität, welche in der Welt der Programmierung nicht mehr wegzudenken ist: die objektorientierte Programmierung,
Übersicht. Schleifen. Schleifeninvarianten. Referenztypen, Wrapperklassen und API. 9. November 2009 CoMa I WS 08/09 1/15
Übersicht Schleifen Schleifeninvarianten Referenztypen, Wrapperklassen und API CoMa I WS 08/09 1/15 CoMa I Programmierziele Linux bedienen Code umschreiben strukturierte Datentypen Anweisungen und Kontrollstrukturen
Teil 2: OOP und JAVA (Vorlesung 11)
Teil 2: OOP und JAVA (Vorlesung 11) Modul: Programmierung B-PRG Grundlagen der Programmierung II Prof. Dot.-Ing. Roberto Zicari Professur für Datenbanken und Informationssysteme (FB 12) 28.06.06 1 Teil
J.5 Die Java Virtual Machine
Java Virtual Machine Die Java Virtual Machine 22 Prof. Dr. Rainer Manthey Informatik II Java-Compiler und Java Virtual Machine Quellcode-Datei class C... javac D.java Java-Compiler - Dateien class class
Theorie zu Übung 8 Implementierung in Java
Universität Stuttgart Institut für Automatisierungstechnik und Softwaresysteme Prof. Dr.-Ing. M. Weyrich Theorie zu Übung 8 Implementierung in Java Klasse in Java Die Klasse wird durch das class-konzept
Einstieg in die Informatik mit Java
1 / 41 Einstieg in die Informatik mit Java Vererbung Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 41 1 Überblick: Vererbung 2 Grundidee Vererbung 3 Verdeckte Variablen
Einstieg in die Informatik mit Java
1 / 26 Einstieg in die Informatik mit Java Felder Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 26 1 Was sind Felder? 2 Vereinbarung von Feldern 3 Erzeugen von Feldern
Teil 1 : Erstellen eines neuen Typen und Einbindung in den 'Type Chooser' der Standardsuche
Teil 1 : Erstellen eines neuen Typen und Einbindung in den 'Type Chooser' der Standardsuche Inhalt in diesem Kapitel Neue Attribute im BUSINESS anlegen Neuen Typ im BUSINESS anlegen Erstellen und Zuweisen
Einfü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)
Einfü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
Software Engineering Klassendiagramme Assoziationen
Software Engineering Klassendiagramme Assoziationen Prof. Adrian A. Müller, PMP, PSM 1, CSM Fachbereich Informatik und Mikrosystemtechnik 1 Lesen von Multiplizitäten (1) Multiplizitäten werden folgendermaßen
Swetlana Stickhof. Universität Heidelberg 03.02.2013
Modellierung einer Testdokumentation mit Suchfunktionen in Semantic MediaWiki und Implementierung einer Jira-Anbindung als Semantic MediaWiki Extension Universität Heidelberg 03.02.2013 1 Inhalt Motivation
Software Engineering Klassendiagramme Einführung
Software Engineering Klassendiagramme Einführung Prof. Adrian A. Müller, PMP, PSM 1, CSM Fachbereich Informatik und Mikrosystemtechnik 1 Aufgabe Erstellen Sie eine Klasse Person in Java. Jede Person verfügt
Delegatesund Ereignisse
Delegatesund Ereignisse «Delegierter» Methoden Schablone Funktionszeiger Dr. Beatrice Amrhein Überblick Definition eines Delegat Einfache Delegate Beispiele von Delegat-Anwendungen Definition eines Ereignisses
Teil IV : Abstrakte Datentypen (ADT)
Teil IV : Abstrakte Datentypen (ADT) Abstraktion ADT in Modula-2 K. Murmann, H. Neumann, Fakultät für Informatik, Universität Ulm, 2001 1. Abstraktion Rekapitulation Realisation eines Stacks Idee für ADT-Konzept
Algorithmische Kernsprache. Zuweisung, einfache und bedingte Anweisung, Blöcke, Schleifen, return, debugging.
Algorithmische Kernsprache Zuweisung, einfache und bedingte Anweisung, Blöcke, Schleifen, return, debugging. Ausdrücke Anweisungen Ausdrücke bezeichnen einen Wert Kontext stellt Werte von Variablen Werte
Delphi DLL Tutorial Wie exportiere ich Komponenten aus einer DLL?
Delphi DLL Tutorial Wie exportiere ich Komponenten aus einer DLL? Von Padmalcom (20.03.2009) www.jofre.de Nach dem Tutorial 1 von Leonardo M. Ramé 1 Ja, es geht wirklich! Im Internet sind tausende Forenbeinträge
Workshop 6. Einführung in die objektorientierte Programmierung. Teil: Java mit BlueJ
IBBB 2010 Workshop 6 Einführung in die objektorientierte Programmierung Dozenten: J. Penon, J. Frank, A. Schindler Teil: Java mit BlueJ Dozent: A. Schindler Einf. i. d. OOP - Java u. BlueJ / A. Schindler
8. Generics Grundlagen der Programmierung 1 (Java)
8. Generics Grundlagen der Programmierung 1 (Java) Fachhochschule Darmstadt Haardtring 100 D-64295 Darmstadt Prof. Dr. Bernhard Humm FH Darmstadt, 6. Dezember 2005 Einordnung im Kontext der Vorlesung 1.
GEOPROCESSING UND MODELBUILDER
GEOPROCESSING UND MODELBUILDER RÄUMLICHE ANALYSEFUNKTIONEN UND DATENMODELLIERUNG IN ARCGIS MIT TOOLBOX UND MODELBUILDER. EINFÜHRUNG INS PYTHON-SCRIPTING IN ARCGIS DAUER: 2 Tage ÜBERSICHT In dieser Schulung