Objektorientierte Programmierung



Ähnliche Dokumente
Version 0.3. Installation von MinGW und Eclipse CDT

Programmieren in Java

Objektorientierte Programmierung

Ordner Berechtigung vergeben Zugriffsrechte unter Windows einrichten

Installation des Add-Ins für Lineare Algebra in Microsoft Excel

3. auf Symbol klicken erstellt von Erika Völkel

2 DAS BETRIEBSSYSTEM. 2.1 Wozu dient das Betriebssystem. 2.2 Die Bildschirmoberfläche (Desktop) Themen in diesem Kapitel: Das Betriebssystem

Wintersemester Maschinenbau und Kunststofftechnik. Informatik. Tobias Wolf Seite 1 von 22

26. November EFS Übung. Ziele. Zwei Administrator Benutzer erstellen (adm_bill, adm_peter) 2. Mit adm_bill eine Text Datei verschlüsseln

32.4 Anpassen von Menüs und Symbolleisten 795i

Empfehlungen zur Nutzung der CD zum Buch: Klee & Wiemann: Beweglichkeit und Dehnfähigkeit. Schorndorf: Hofmann,

Bedienung von BlueJ. Klassenanzeige

Es sollte die MS-DOS Eingabeaufforderung starten. Geben Sie nun den Befehl javac ein.

Java: Vererbung. Teil 3: super()

Objektorientierte Programmierung mit C++ Zusammenfassung der wichtigsten Topics rund um die objektorientierte Programmierung mit C++11

Anleitung zum Arbeiten mit Microsoft Visual Studio 2008 im Softwarepraktikum ET/IT

Variablen & erweiterte Aktionen nutzen

my.ohm Content Services Autorenansicht Rechte

Um über FTP Dateien auf Ihren Public Space Server - Zugang laden zu können benötigen Sie folgende Angaben:

Handbuch ECDL 2003 Modul 2: Computermanagement und Dateiverwaltung Dateien löschen und wiederherstellen

Grundlagen Word Eigene Symbolleisten. Eigene Symbolleisten in Word erstellen

Starten der Software unter Windows 7

Kapitel 1: Betriebssystem IX. W indows Explorer und der Arbeitsplatz Teil 2

Verschlüsseln von USB-Sticks durch Installation und Einrichtung von TrueCrypt

Drei-Schichten-Architektur. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 17: 3-Schichten-Architektur 2

Handbuch ECDL 2003 Basic Modul 2: Computermanagement und Dateiverwaltung Dateien löschen und wiederherstellen

VB.net Programmierung und Beispielprogramm für GSV

Ein + vor dem Ordnernamen zeigt an, dass der Ordner weitere Unterordner enthält. Diese lassen sich mit einem Klick (linke Maustaste) anzeigen.

Übung - Freigabe eines Ordners und Zuordnung eines Netzwerlaufwerks in Windows XP

Was muss gesichert werden? -Ihre angelegten Listen und Ihre angelegten Schläge.

Laden der beiden virtuellen Orgeln (36 bzw. 100 Register) unter Hauptwerk

FuxMedia Programm im Netzwerk einrichten am Beispiel von Windows 7

Anleitung zum Einfügen von Daten aus OpenOffice Calc in OpenOffice Base Beispiel anhand einer Adressen Calc-Tabelle

Tel.: Fax: Ein Text oder Programm in einem Editor schreiben und zu ClassPad übertragen.

Übung 1. Explorer. Paint. Paint. Explorer

Newsletter. 1 Erzbistum Köln Newsletter

Vorkurs C++ Programmierung

Übung - Datensicherung und Wiederherstellung in Windows 7

Übung - Konfigurieren einer Windows Vista-Firewall

Das Startmenü. Das Startmenü anpassen

Bauteilattribute als Sachdaten anzeigen

Anleitungen zum Publizieren Ihrer Homepage

Outlook 2000 Thema - Archivierung

Office-Programme starten und beenden

Installation einer C++ Entwicklungsumgebung unter Windows --- TDM-GCC und Eclipse installieren

Firefox: Die Lesezeichen im Griff

Meldung Lokale Anwendung inkompatibel oder Microsoft Silverlight ist nicht aktuell bei Anmeldung an lokal gespeicherter RWE SmartHome Anwendung

Drei-Schichten-Architektur. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 16: 3-Schichten-Architektur 1 Fachkonzept - GUI

iphone-kontakte zu Exchange übertragen

ACHTUNG: Es können gpx-dateien und mit dem GP7 aufgezeichnete trc-dateien umgewandelt werden.

Einen Wiederherstellungspunktes erstellen & Rechner mit Hilfe eines Wiederherstellungspunktes zu einem früheren Zeitpunkt wieder herstellen

Einführung in die Programmierung

Programmiersprache 2 (C++) Prof. Dr. Stefan Enderle NTA Isny

1 Was ist das Mediencenter?

Das Organisationssystem für die Fertigung

Objektorientierte Programmierung. Kapitel 12: Interfaces

teischl.com Software Design & Services e.u. office@teischl.com

Arbeiten mit dem Outlook Add-In

Übung - Datensicherung und Wiederherstellung in Windows Vista

Installationsanweisung Aktivierung für RadarOpus für PC s ohne Internetzugang (WINDOWS)

Sophos Anti-Virus. ITSC Handbuch. Version Datum Status... ( ) In Arbeit ( ) Bereit zum Review (x) Freigegeben ( ) Abgenommen

Windows 7: Neue Funktionen im praktischen Einsatz - Die neue Taskleiste nutzen

Computeria Solothurn

KURZANLEITUNG CYBERDUCK MIT CLOUD OBJECT STORAGE

Carolo Knowledge Base

Starten der Software unter Windows XP

MailUtilities: Remote Deployment - Einführung

Leitfaden zur ersten Nutzung der R FOM Portable-Version für Windows (Version 1.0)

Arbeitsblätter auf die Schülercomputer verteilen, öffnen und wieder einsammeln

Übersichtlichkeit im Dokumentenmanagement

ANLEITUNG ONECLICK WEBMEETING BASIC MIT NUR EINEM KLICK IN DIE WEBKONFERENZ.

Einführung in die Java- Programmierung

Praktikum Software Engineering

Internet online Update (Internet Explorer)

Dateien mit Hilfe des Dateimanagers vom USB-Stick kopieren und auf der Festplatte speichern

Erstellen eines Screenshot

Übung - Datenmigration in Windows XP

LEGO-Mindstorms-Roboter im Informatikunterricht 1 - mit Java-

Medienkompass1, Lehrmittelverlag des Kantons Zürich, 1. Ausgabe 2008, Thema 13 Sicher ist sicher, S.58-61

Zum Abschluss wird gezeigt, wie aus einem C++ Quell-Programm ein ausführbares Programm erzeugt wird. 1. Installation von NetBeans...

tentoinfinity Apps 1.0 EINFÜHRUNG

Grafische Benutzeroberfläche mit Glade und Python

Objektorientierte Programmierung

eduvote Ein Umfragesystem für Lehrveranstaltungen - PowerPoint Add-In -

Prinzipien Objektorientierter Programmierung

2. ERSTELLEN VON APPS MIT DEM ADT PLUGIN VON ECLIPSE

LabView7Express Gerätesteuerung über LAN in einer Client-Serverkonfiguration. 1. Steuerung eines VI über LAN

Übung - Datenmigration in Windows 7

PDF-Erzeugung mit PDFCreator (nur für Windows, installiert universellen PDF-Druckertreiber) v11/01

Übung - Konfigurieren einer Windows-XP-Firewall

Installation censhare Client. Inhaltsverzeichnis

ATB Ausbildung technische Berufe Ausbildungszentrum Klybeck

Seriendruck mit der Codex-Software

Ihr CMS für die eigene Facebook Page - 1

Delphi eine Einführung

TempusCapio Erste Schritte

Stefan Draeger Gartenstr Schöningen. Velleman K8055 Experimentier Board C# Programmieranleitung

Microsoft Visual Studio Community 2015

IDEP / KN8 für WINDOWS. Schnellstart

Über die Internetseite Hier werden unter Download/aktuelle Versionen die verschiedenen Module als zip-dateien bereitgestellt.

Transkript:

1. Begriffe Objektorientierte Programmierung mit C++ Prozedurale Programmierung Sprachen: C, Pascal, Cobol, Basic,... Objektorientierte Programmierung Sprachen: C++, C#, Java... Methode: - Gesamtproblem in Teilprobleme zerlegen. - Teilprobleme als Funktion realisieren. - Daten werden in der jeweiligen Funktion deklariert. Vorteil: schnellere Programme Methode: - die beteiligten Objekte identifizieren - Objekte enthalten Daten und Möglichkeiten diese Daten zu verändern Vorteil: Literatur: RRZN-Skript C++ für C-Programmierer große Programme sind besser wartbar 1 / 22 Uebung_01_KN_2015

2. Vergleich von C und C++ C++ existiert seit ca. 1983 Compiler: Borland C++, IBM xlc, gcc (GNU C++) C++ wird von ANSI (American National Standardisation Institute) standardisiert C++ ist eine Erweiterung von C d.h. C-Programme können vom C++ Compiler übersetzt werden es gibt a) nicht objektorientierte Erweiterungen z.b.: strengere Typenkontrolle (Typ muß immer angegeben werden) Kommentarzeichen // neue Möglichkeiten für Funktionen etc... b) objektorientierte Erweiterungen z.b.: Einführung von Klassen und Vererbungsmechanismen 2 / 22 Uebung_01_KN_2015

3. Begriffe der objektorientierten Programmierung 3.1 Objekt und Klasse Objekt ist eine Struktur die Daten- und Methoden (=Funktionen) enthält. Klasse ist der Typ eines Objektes. Beispiel: class person { char name[20]; int alter; void ausgabe(void); void eingabe(void); // Daten des Objekts // Methoden des Objekts }; 3 / 22 Uebung_01_KN_2015

Abweichung gegenüber C: - Methoden (Funktionen) sind einem Objekt zugeordnet. - Methoden verändern die Daten des Objektes. bisher: Funktionen konnten von überall aufgerufen werden nun: Kapselung ( information hiding ) Daten und ihre Verarbeitung sind im Objekt konzentriert (bisher: verstreut) = Vorteil bei großen Projekten bisher: Daten waren im ganzen Programm manipulierbar nun: Interaktion über definierte Schnittstellen Daten werden durch Aufruf einer Methode verändert Implementierung ist verborgen 4 / 22 Uebung_01_KN_2015

a) Objekte erzeugen Objekte erzeugen und Daten verändern oder person maier; Deklaration wie in C Objekt erzeugen person *mueller; Zeiger deklarieren mueller = new person; dynamisch (wie malloc in C) Zeiger auf dynamisch erzeugtes Objekt b) Methoden ausführen oder d.h.: wie in C: maier.ausgabe(); mueller->ausgabe(); - Zugriff auf eine Komponente einer Datenstruktur - entweder mit Punkt-Operator oder Pfeil-Operator 5 / 22 Uebung_01_KN_2015

Übung: Windows-Anwendung in C++ erstellen Windows ist eine graphische Benutzeroberfläche = GUI = Graphical User Interface Es gibt diverse Entwicklungsumgebungen für GUI-Programmierung in C++ hier: wxwidgets (= C++ Klassen) in Verbindung mit wxdevcpp (= Compiler) Vorteil: Cross-Plattform-Development (= für mehrere Betriebssysteme) Web-Links: wxwidgets http://de.wikipedia.org/wiki/wxwidgets Erläuterung (deutsch) http://www.wxwidgets.org/ Homepage (englisch) wxdevcpp http://de.wikipedia.org/wiki/orwell_dev-c%2b%2b (deutsch) http://wxdsgn.sourceforge.net/ Homepage (englisch) Buch: Julian Smart: Cross-Platform GUI Programming with wxwidgets 6 / 22 Uebung_01_KN_2015

1. Schritt: Anwendungsgerüst erstellen - Als Nutzer knxx (d.h. kn + PC-Nummer, z.b. kn13 ) anmelden - Ordner Programmieren anklicken - wxdevcppp7-64 (Symbol) anklicken - Datei Neu Projekt anklicken, dann wxwidgetsframe wählen - dann einen Namen ausdenken (z.b. TasteUndText = Name der Anwendung) - o.k. klicken - dann neues Verzeichnis erstellen (auf USB-Stick oder Desktop Benutzerbereich) - dort die *.dev Datei abspeichern - dann erscheint das Fenster Neuer wxframe - dort alle Einstellungen übernehmen und auf create klicken - es erscheint die Darstellung eines Fensters Test: - das neu erstellte Projekt übersetzen und starten (F9 oder compile and run ) es sollte ein Anwendungsfenster erscheinen, das man mit der Maus schließen kann 7 / 22 Uebung_01_KN_2015

Analyse des Quellcodes: Die Anwendung besteht aus zwei Objekten: App = Application Es gibt: ein Anwendungsobjekt TasteUndTextApp (Klasse: wxapp).cpp Datei Frm = Frame ein Fensterobjekt TasteUndTextFrm (Klasse: wxframe).cpp Datei dazu: zwei Header-Dateien: TasteUndTextApp.h TasteUndTextFrm.h und: graphische Darstellung des Anwendungsfensters: TasteUndTextApp.wxform (= ein Tool zum Entwurf der Nutzeroberfläche mit der Maus) und Resource Definitions : TasteUndText.rc = Grafikelemente, Cursor, Icons etc. 8 / 22 Uebung_01_KN_2015

Schritt 2: Taste (Schaltfläche) und Textfenster der Anwendung hinzufügen Taste: im Components Fenster (auf dem Bildschirm rechts) - Common Controls (allgemeine Kontrollobjekte) mit Doppelklick öffnen - wxbutton anklicken und dann im Formularfenster mit der Maus platzieren (mit gedrückter linker Maustaste einen Positionsrahmen erzeugen) Textfenster: im Components Fenster (auf dem Bildschirm rechts) - Common Controls (allgemeine Kontrollobjekte) mit Doppelklick öffnen - wxedit (oder: wxtextctrl) anklicken und dann mit der Maus platzieren (mit gedrückter linker Maustaste einen Positionsrahmen erzeugen) Test: Anwendung übersetzen und starten (F9) Taste kann angeklickt werden, Texteingabe und Editieren ist möglich 9 / 22 Uebung_01_KN_2015

Schritt 3: Taste und Textfenster anpassen Ziel: Beschriftung und Initialisierung der Grafikelemente anpassen Taste: - mit der Maus die Taste im Formularfenster (wxform) anklicken - im Property Inspector (Bildschirm links unten) Properties auswählen - Name ändern in Taste - Label ändern in bitte anklicken Textfenster: - mit der Maus das Textfenster im Formularfenster (wxform) anklicken - im Property Inspector (Bildschirm links unten) Properties auswählen - Name ändern in Taste - Strings anklicken: edit strings Text löschen Test: Compile and Run... 10 / 22 Uebung_01_KN_2015

Schritt 4: Tastenfunktion einbauen Bei Tastatureingabe soll im Textfenster angezeigt werden, wie oft die Taste angeklickt worden ist. Hinweis: Maus, Tastatur u.a. erzeugen events = Ereignisse Diese werden in event-tables (Ereignistabellen) mit Funktionen verknüpft Taste: - mit der Maus die Taste im Formularfenster (wxform) anklicken - im Property Inspector (Bildschirm links unten) Events auswählen - OnClick auswählen anklicken - im Fenster daneben (pull down Menü) <Add New Function> anklicken - es öffnet sich der Quellcode TasteUndTextFrm.cpp, dort gibt es nun eine Funktion TasteUndTextFrm::TasteKlick() im Bereich: insert your code here kann nun programmiert werden... 11 / 22 Uebung_01_KN_2015

Vorschlag: - eine statische Variable deklarieren ( zaehler ) - diese zu Beginn auf 1 setzen - den Zähler und den Text. Tastenklick ausgeben + Zeilenumbruch - Zähler inkrementieren Hinweise: statische Ganzzahlvariable static int Inkrementieren mit ++ Text im Textfenster ausgeben mit << Operator (Ausgabeoperator) static int zaehler = 1; *text << zaehler <<. Tastenklick\n ; zaehler++; 12 / 22 Uebung_01_KN_2015

mögliches Ergebnis... 13 / 22 Uebung_01_KN_2015

3.2. Vererbung Klassen können aus bereits definierten Klassen abgeleitet werden = Ableitung, Vererbung abgeleitete Klasse - hat die gleichen Daten und Methoden der Basisklasse - kann Methoden hinzufügen oder ändern - kann Daten hinzufügen Vorteil: bereits erprobte Programmteile können übernommen werden Beispiel: class arbeiter: public person { char beruf[50]; } das ist die Definition der Klasse arbeiter Ein Objekt vom Typ Arbeiter enthält die Daten name, alter (aus der Klasse person geerbt) und beruf 14 / 22 Uebung_01_KN_2015

Vererbungshierarchien: Klasse "person" name alter Fahrzeugtyp Klasse "Fahrzeug" erbt Klasse "arbeiter" Beruf erbt erbt Zulassungsdatum Klasse "Fahrzeughalter" Mehrfachvererbung: Ein Objekt vom Typ Fahrzeughalter enthält die Daten name, alter, Beruf, Fahrzeugtyp und Zulassungsdatum. 15 / 22 Uebung_01_KN_2015

3.3. Polymorphismus bedeutet: Wirkung der Methode hängt vom Objekt ab Beispiel : maier.ausgabe(); datum.ausgabe(); gibt Name und Alter aus könnte z.b. das aktuelle Datum ausgeben bei C: bei C++: eine Funktion hat einen eindeutigen Namen, Wirkung ist eindeutig Methoden in unterschiedlichen Klassen können gleichen Namen haben weitere Anwendung: Operatoren können überladen werden d.h. Wirkung eines Operators kann selbst definiert werden Beispiel: + Operator um Strings aneinanderzuhängen 16 / 22 Uebung_01_KN_2015

4. Klassen definieren und Objekte erzeugen 4.1 Daten und Methoden schützen Prinzip: Nicht alle Methoden sollen von außen aufgerufen werden können Einteilung in public (von außen zugänglich) und private. Beispiel: dann: class person { public: void ausgabe(void); private: void loeschen(void); }; person maier; maier.ausgabe(); ist erlaubt maier.loeschen(); ist nicht erlaubt! Sinn: Daten oder Methoden vor Zugriff schützen 17 / 22 Uebung_01_KN_2015

4.2 Konstruktoren = eine Methode (Funktion) zum Initialisieren des Objektes (Anfangswerte zuweisen). wird automatisch bei der Erzeugung eines Objektes aufgerufen. hat den gleichen Namen wie die Klasse selbst. Beispiel: class person { char name[20]; person("unbekannt"); } das ist der Konstruktor Definition des Konstruktors (Operator :: bewirkt die Zuordnung zur Klasse) person::person(char *text) { strcpy(name,text); } d.h. bei der Erzeugung eines Objektes der Klasse person wird der name initialisiert 18 / 22 Uebung_01_KN_2015

4.3 Destruktoren = Methode die ausgeführt wird, wenn ein Objekt entfernt wird wird automatisch bei der Löschung eines Objektes aufgerufen. hat den Namen der Klasse mit einem ~ Zeichen davor Beispiel: class person { char name[20]; ~person(void); } Definition des Destruktors: das ist der Destruktor person::~person(void) { printf("objekt wird geloescht"); } d.h. bei der Löschung eines Objektes wird eine Meldung ausgegeben 19 / 22 Uebung_01_KN_2015

4.4 Steuerung des Vererbungsmechanismus 4.4.1 Deklaration abgeleiteter Klassen Beispiel: Ableitung der Klasse x aus zwei Klassen y und z: class x: public y, public z {... };... public y... bedeutet: Zugriffsrechte in y bleiben auch in z erhalten d.h. public bleibt public, private bleibt private Problem: Methoden aus x können nicht auf private-daten in y zugreifen deswegen: dritte Art von Zugriffsrecht: protected d.h.: Daten in der Basisklasse als protected deklarieren dann kann auch eine abgeleitete Klasse darauf zugreifen und: von außen ist kein Zugriff möglich 20 / 22 Uebung_01_KN_2015

4.4.2 Möglichkeiten der Ableitung von Klassen a) class x: public y... die in y zugeordneten Zugriffsrechte bleiben erhalten aus x kann auf public und protected Komponenten zugegriffen werden b) class x: protected y... in y als public deklarierte Komponenten sind in x nun protected aus x kann nur auf public Komponenten von y zugegriffen werden c) class x: private y... alle Komponenten von y erhalten das Zugriffsrecht private aus x kann auf keine Komponente von y zugegriffen werden meist wird mit public abgeleitet. 21 / 22 Uebung_01_KN_2015

Zusammenfassung Objektorientierte Programmierung = Daten und Methoden zusammenfassen Klasse ist der Typ eines Objektes (ähnlich einer Datenstruktur in C) Methoden = Funktionen eine Objektes Vererbung = neue Klassen können von existierenden Klassen abgeleitet werden Daten und Methoden der Basisklasse werden übernommen existierende Klassen können weiterverwendet und erweitert werden Konstruktoren und Destruktoren = Objekte initialisieren und löschen Zugriffsrechte: public, protected und private steuern den Zugriff von außen auf die Daten des Objektes steuern die Vererbung von Zugriffsrechten 22 / 22 Uebung_01_KN_2015