Logo

Objective-C, Xcode und Cocoa Tutorial


 

 

EIN TUTORIAL ZU OBJECTIVE-C, XCODE UND COCOA

 

Kapitel 6 - Fortsetzung

Was ist nun alles geschehen in diesem Beispiel?
Zuerst wurde im Interface Abschnitt die addition: Methode deklariert. Mit (Bruch*) b wurde festgelegt, dass die addition: Methode zur Bruch Klasse gehört. Ebenso wurde mit (int) zaehler;(int) nenner;  eine Methode deklariert, die es ermöglicht Werte auszulesen, in den Klammern steht deshalb nicht mehr (void) sondern eine Rückgabewert in Form von (int). Im @Implementation Abschnitt wurden diese Methoden dann definiert.

-(int) nenner
{
      return nenner;
}

-(int) zaehler
{
      return zaehler;
}

- (void) setze: (int) z durch: (int) n;
{
      zaehler = z;
      nenner = n;
}

- (void) addition: (Bruch *) b
{
      zaehler = (zaehler * [b nenner])+(nenner * [b zaehler]);
      nenner = nenner * [b nenner];
}

Die Methode zaehler und nenner erhalten die Funktion der Rückgabe eines Wertes.  Bei der addition: Methode sieht das Ganze schon etwas komplizierter aus. Zuerst einmal handelt es sich im Grunde um den Algorhytmus zur Berechnung von Additionen bei Brüchen mit unterschiedlichem Nenner.


Dieser folgt nach der Formel:

a          c        ad + bc
-     +   -    =    ---------
b          d            bd

In der Umwandlung im Programm wurden dann c + d (der zu addierende Zähler (c) und Nenner (d)) jeweils der Argument-Name b zugewiesen. An diesem Punkt vielleicht eine kleine Zwischenbemerkung: es geht in diesem Kapitel nicht um die Umsetzung und Anwendung von mathematischen Formeln, sondern um die Anwendung von Methoden, Klassen und Instanzen und in der Folge um das Arbeiten mit lokalen Variablen. Schenken Sie also der mathematischen Umwandlung keine zu große Beachtung. Denn neben der mathematischen Berechnung zur Addition von Brüchen geschieht in obigem Beispiel etwas viel bemerkenswerteres: nämlich um den Aufruf einer Methode innerhalb einer Methode - achten Sie auf die eckigen Klammern innerhalb der Berechung. 

- (void) addition: (Bruch*) b
{
zaehler = (zaehler * [b nenner]) + (nenner * [b zaehler]);
nenner = nenner * [b nenner];
}

Mit [b nenner] z.B. senden Sie einen Aufruf an die Methode nenner. Sie rufen somit innerhalb der Methode adition: eine neue Methode auf; so etwas ist möglich und wird später in Cocoa Applikationen häufig angewendet. Der Empfänger der Nachricht ist die Bruch Klasse, die aber nicht speziell angeben werden muss, da sich die Befehlszeilen bereits innerhalb der Bruch Klasse befinden (zur Erinnerung: die oberen Befehlszeilen befinden sich im @Implementation Abschnitt der Bruch Klasse).  Die Instanz Variablen des Arguments b können Sie im Gegensatz dazu nicht direkt aufrufen (z.B. durch [b]), sondern müssen unter Verwendung der Methoden zaehler und nenner aufgerufen werden, da b keine Methode darstellt.


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