Programmieren 1 - Strukturen - Klassen - Objekte
Programmieren 1 - Strukturen - Klassen - Objekte Programmieren 1 - Strukturen - Klassen - Objekte
dasselbe Objekt (A1) anderes Objekt derselben Klasse (ObjA) Beispiele void main(void) { KlasseA a1,a2; KlasseB b1,b2; a1.publicMethode1vonA(a2, b1) } // Datei: KlasseA.cpp void KlasseA::publicMethode1vonA ( KlasseA objA, KlasseB objB ) { ... // ohne Objektname publicMethode2vonA(); privateMethode2vonA(); publicAttributVonA = ...; privatesAttributVonA= ...; // mit Objektname der gl. Klasse objA.publicMethode2vonA(); objA.privateMethode2vonA(); objA.publicMethode1vonB(); objA.publicAttributVonA = ...; objA.privatesAttributVonA= ...; // Anwendung Objekt a1 KlasseA Objekt a2 Objekt b1 KlasseB FB Informatik Prof. Dr. R.Nitsch Objekt b2 // Objekte a1 und a2 werden erzeugt // Objekte b1 und b2 werden erzeugt // publicMethode1vonA wird aufgerufen für Objekt a1 und // Parameter a2 und b1 werden übergeben. // Definition von publicMethode1vonA // verarbeitet Daten des (aufrufenden) Objekts a1 // obwohl private ok, weil gleiche Klasse // Zugriff auf public-Attrib. des (aufrufenden) Obj. a1 // obwohl private ok, weil gleiche Klasse // verarbeitet Daten des übergebenen objA derselben Klasse // auch ok, weil gleiche Klasse (kein Zugriffsschutz) // nicht ok, weil verschiedene Klassen // ok, weil public und gleiche Klasse // auch ok, weil gleiche Klasse (kein Zugriffsschutz) // Fortsetzung auf nächster Seite 22.04.2013 26
Beispiele Objekt a1 KlasseA Objekt a2 Objekt b1 KlasseB FB Informatik Prof. Dr. R.Nitsch Objekt b2 Objekt einer anderen Klasse (objB) objB.publicMethode1vonB(); objB.privateMethode1vonB(); objB.publicAttributVonB = ...; objB.privateAttributVonB= ...; } // verarbeitet Daten des objB einer anderen Klasse // private! Geht nicht (Zugriff von "außen" auf geschützte // Elemente der anderen Klasse) // ok, weil public und gleiche Klasse // private! Geht nicht (Zugriff von "außen" auf geschützte // Elemente der anderen Klasse) 22.04.2013 Statische Datenelemente 27
- Seite 1 und 2: FB Informatik Prof. Dr. R.Nitsch Pr
- Seite 3 und 4: Funktionsorientierte Programmierung
- Seite 5 und 6: Funktionsorientiert versus Objektor
- Seite 7 und 8: Funktionsorientiert versus Objektor
- Seite 9 und 10: Unified Modelling Language (UML) FB
- Seite 11 und 12: Praktikumsaufgabe 2: string toStrin
- Seite 13 und 14: Hörsaalübung "Eine Motorbootfahrt
- Seite 15 und 16: Hörsaalübung "Eine Motorbootfahrt
- Seite 17 und 18: Struktur und Syntax einfacher OO-Pr
- Seite 19 und 20: Ein einfaches Beispiel - Datentyp C
- Seite 21 und 22: Überladene Methoden/Funktionen FB
- Seite 23 und 24: Vorgegebene Parameterwerte und vari
- Seite 25: Methoden verwenden (andere) Methode
- Seite 29: Konzept der friend-Funktionen FB In
dasselbe<br />
Objekt (A1)<br />
anderes Objekt derselben<br />
Klasse (ObjA)<br />
Beispiele<br />
void main(void)<br />
{<br />
KlasseA a1,a2;<br />
KlasseB b1,b2;<br />
a1.publicMethode1vonA(a2, b1)<br />
}<br />
// Datei: KlasseA.cpp<br />
void KlasseA::publicMethode1vonA<br />
( KlasseA objA, KlasseB objB )<br />
{ ...<br />
// ohne Objektname<br />
publicMethode2vonA();<br />
privateMethode2vonA();<br />
publicAttributVonA = ...;<br />
privatesAttributVonA= ...;<br />
// mit Objektname der gl. Klasse<br />
objA.publicMethode2vonA();<br />
objA.privateMethode2vonA();<br />
objA.publicMethode1vonB();<br />
objA.publicAttributVonA = ...;<br />
objA.privatesAttributVonA= ...;<br />
// Anwendung<br />
Objekt a1<br />
KlasseA<br />
Objekt a2<br />
Objekt b1<br />
KlasseB<br />
FB Informatik<br />
Prof. Dr. R.Nitsch<br />
Objekt b2<br />
// <strong>Objekte</strong> a1 und a2 werden erzeugt<br />
// <strong>Objekte</strong> b1 und b2 werden erzeugt<br />
// publicMethode1vonA wird aufgerufen für Objekt a1 und<br />
// Parameter a2 und b1 werden übergeben.<br />
// Definition von publicMethode1vonA<br />
// verarbeitet Daten des (aufrufenden) Objekts a1<br />
// obwohl private ok, weil gleiche Klasse<br />
// Zugriff auf public-Attrib. des (aufrufenden) Obj. a1<br />
// obwohl private ok, weil gleiche Klasse<br />
// verarbeitet Daten des übergebenen objA derselben Klasse<br />
// auch ok, weil gleiche Klasse (kein Zugriffsschutz)<br />
// nicht ok, weil verschiedene <strong>Klassen</strong><br />
// ok, weil public und gleiche Klasse<br />
// auch ok, weil gleiche Klasse (kein Zugriffsschutz)<br />
// Fortsetzung auf nächster Seite<br />
22.04.2013 26