Programmieren 1 - Strukturen - Klassen - Objekte

Programmieren 1 - Strukturen - Klassen - Objekte Programmieren 1 - Strukturen - Klassen - Objekte

01.03.2014 Aufrufe

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

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

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!