Logo

Objective-C, Xcode und Cocoa Tutorial


 

 

EIN TUTORIAL ZU OBJECTIVE-C, XCODE UND COCOA

 

Kapitel 6 - Fortsetzung

Blicken wir nun auf die main.m Datei. Als erstes haben wir in diesem Beispiel in der Zeile

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

eine neue Instanz zugleich gebildet, sie allokiert und und initiiert. Das ist der übliche Weg wie so etwas gemacht wird. Im Bruch.h File haben wir eine neue Methode deklariert und später im Bruch.m File implementiert.

- (void) setze: (int) z durch: (int) n;

Es ist also möglich einer Methode mehrere Parameter anzuhängen und diese durch Doppelpunkte zu trennen. 

Im nächsten Schritt werden wir beginnen, mit diesen Brüchen zu rechnen. Dazu wird das obige Beispiel nochmals erweitert. Ein neuer Bruch (und somit eine neue Instanz) wird angelegt und anschließend werden diese beiden Brüche miteinander addiert. Dazu brauchen wir eine neue Methode die wir addition: nennen wollen. Dieser Methode müssen wir die Klasse die damit operieren soll zuweisen. In unserem Fall ist es die Bruch Klasse. Die Methode lautet somit:

-(void) addition: (Bruch*) b;

Wieder finden wir einen Pointer, einen Zeiger. In diesem Fall wird implementiert, dass die addition Methode eine Methode der Bruch Klasse ist und auf den Parameter mit dem Buchstaben b zeigt.

 



 Erweiteren Sie somit das obere Programm in den jeweiligen Files

Programm 6.2: Bruch.h File
-----------------------------------------------------------------------------------------------------------------
#import <objc/Object.h>

// ------- @interface Abschnitt ----------

@interface Bruch: Object

{
      int zaehler;
      int nenner;
     
}

 

- (void) ausdrucken;
- (void) setzeZaehler: (int) z;
- (void) setzeNenner: (int) n;
- (void) setze: (int) z durch: (int) n;
- (int) zaehler;
- (int) nenner;
- (void) addition: (Bruch *) b;

 

@end

Programm 6.2: Bruch.m File
-----------------------------------------------------------------------------------------------------------------

#import "Bruch.h"
#import <stdio.h>

 

// ---------------- @implementation Abschnitt ----------------

@implementation Bruch;

-(void) ausdrucken

{
      printf (" %i/%i ", zaehler, nenner);
}

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

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

-(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];
}

@end

Programm 6.2: main.m File
-----------------------------------------------------------------------------------------------------------------

#import "Bruch.h"
#import <stdio.h>

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

int main (int argc, char *argv[])
{
      // Bildung einer Instanz, Allocieren und Initiieren zugleich
      Bruch *meinBruch1 = [[Bruch alloc]init];
      Bruch *meinBruch2 = [[Bruch alloc]init];

     
      // Setzen von Zähler und Nenner
     
      [meinBruch1 setze: 1 durch: 4];
      [meinBruch2 setze: 1 durch: 2];
     
      // Anzeigen des Bruchs via printf
     
      [meinBruch1 ausdrucken];
      printf ("+");
      [meinBruch2 ausdrucken];
      printf ("=");
      [meinBruch1 addition: meinBruch2];
      [meinBruch1 ausdrucken];
     
      printf ("\n");
     
      [meinBruch1 free];
      [meinBruch2 free];
     
      return 0;
}

Programm 6.2 output
-----------------------------------------------------------------------------------------------------------------
1/4 + 1/2 = 6/8

Programm 6_2 has exited with status 0.
-----------------------------------------------------------------------------------------------------------------


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