Logo

Objective-C, Xcode und Cocoa Tutorial


 

 

EIN TUTORIAL ZU OBJECTIVE-C, XCODE UND COCOA

 


Kapitel 2 - Fortsetzung

Es folgen die Methoden Definitionen:

-(void) setzeZaehler: (int) n
{
zaehler = n;
}

-(void) setzeNenner: (int) d
{
nenner = d;
}

Die Methode setzeZaehler: nimmt jetzt einen ganzzahligen Wert (int) n und speichert ihn in der Instanz-Variable zaehler. Das Gleiche gilt für die Methode setzeNenner:.

 

Der Programm Abschnitt:
Dieser Teil macht den größten Abschnitt eines Programms aus. Er kann auf mehrere Dateien aufgeteilt werden wenn nötig:

 

// ----Programm Abschnitt------

int main (int argc, char *argv[])
{
Bruch *meinBruch;

// Bildung einer Instanz

meinBruch = [Bruch alloc];
meinBruch = [meinBruch init];

// Setzen von Zähler und Nenner
[meinBruch setzeZaehler: 1];
[meinBruch setzeNenner: 2];

// Anzeigen des Bruchs via printf

printf ("Der Wert von meinBruch ist:");
[meinBruch ausdrucken];
printf ("\n");
[meinBruch free];

return 0;
}



Hier wird innerhalb der main Funktion zuerst eine Instanz der Klasse Bruch erzeugt. Es beginnt mit:

Bruch *meinBruch;

Der Stern (*) ist ein pointer, ein Zeiger, das heißt die Klasse Bruch zeigt auf die Instanz meinBruch. Das wird später noch besprochen. In diesem Objekt können Sie Ihren Bruch speichern. Nun „zeigt“ quasi die Klasse Bruch auf die Instanz meinBruch. Jetzt wird der neuen Instanz ein Speicherplatz zugewiesen. Dies geschieht mit:

meinBruch = [Bruch alloc];

alloc ist die Kurzform für allocate, und bedeutet soviel wie „einen Platz zuweisen“. Das beschreibt ganz gut, was in diesem Schritt geschieht. Wenn Sie sich erinnern haben Sie mit der Anweisung:

[Bruch alloc];

etwas ganz spezielles gemacht. Sie haben nämlich eine Nachricht geschickt. Hier kurz zur Erinnerung die Syntax einer Nachricht:

[Klasse Methode]

Zweifellos schicken Sie einer Klasse eine Nachricht, das erkennen Sie daran, dass Bruch mit einem Grußbuchstaben beginnt. Sie sehen, eine angenehme Sache, diese Übereinkunft zur Namensgebung. In diesem Fall schicken Sie also die Nachricht an die Klasse er soll der Instanz meinBruch einen Platz zuweisen (allocate). Das witzige daran ist, dass Sie in diesem Fall aber nicht schreiben können:

[Bruch weisePlatzZu]

Das heisst aber auch, dass Sie eine Nachricht senden - eine Methode verwenden -  die Ihr Compiler anscheinend versteht, ohne ihm vorher mitzuteilen, was alloc bedeutet. In den @interface und @implementation Abschnitten haben Sie ja mühsam jede Methode einzeln zuweisen müssen, bei alloc müssen Sie das anscheinend nicht. Das ist richtig. Aber woher kommt nun diese Methode? Nun die Klasse Bruch hat es von der Eltern-Klasse Object geerbt. Diese Vererbung von Methoden ist ein wesentliches Merkmal objektorientierter Programmierung und wird später noch separat besprochen. Als Antwort auf Ihre Nachricht haben Sie quasi eine nagelneue Instanz samt Speicherplatz zurückbekommen. Gleichsam garantiert die alloc Methode auch, dass alle Instanz Variablen erst mal auf Null gestellt werden.


weiter ---- Objective-C Index ---- Startseite----zurück


Das Inhaltsverzeichnis

EINSTIEG
KAPITEL 1: SCHRITT FÜR SCHRITT ZUM ERSTEN PROGRAMM
KAPITEL 2: OBJEKTE, KLASSEN, INSTANZEN UND METHODEN
KAPITEL 3: DIE VERSCHIEDENEN DATENTYPEN
KAPITEL 4: DIE PROGRAMMSCHLEIFEN
KAPITEL 5: ENTSCHEIDE DICH, ENTWEDER ODER....
KAPITEL 6: UND NOCHMALS KLASSEN
KAPITEL 7: VERERBUNG
KAPITEL 8: POLYMORPHISMUS, DYNASCHISCHE TYPISIERUNG UND DYNAMISCHES BINDEN
KAPITEL 9: NOCH MEHR DATENTYPEN UND VARIABLEN
KAPITEL 10: CATEGORIES, POSING AND PROTOCOL
KAPITEL 11: DER PRÄPROZESSOR

 

 

 

Links