Objective-C

Fra Wikipedia, den frie encyklopædi
Gå til: navigation, søg

Objective-C, ofte kaldet ObjC, Objective C og Obj-C, er et objektorienteret programmeringssprog implementeret som en udvidelse til C

Det er primært brugt i Mac OS X og GNUStep, to miljøer baseret på OpenStep-standarden, og er det primære sprog brugt i NeXTSTEP, OPENSTEP og Cocoa programmeringsbibliotekerne. Almindelig objektorienterede programmer, som ikke anvender disse biblioteker, kan også kompileres på ethvert system understøttet af gccgcc omfatter en Objective-C compiler.

Historie[redigér | redigér wikikode]

I 1980'erne var struktureret programmering begyndt at være for begrænset til større softwareprojekter, som krævede en stor grad af genbrug af generiske elementer. Xerox havde implementeret Smalltalk, men da det kørte i en virtuel maskine, var det alt for langsomt til praktisk anvendelse.

Det satte Brad Cox sig for at ændre, og begyndte at udvikle et objektorienteret sprog, som byggede videre på det allerede på det tidspunkt kendte sprog C. Han udgav i 1986 bogen "Object-oriented Programming – An evolutionary approach".

Sprogets grundlag[redigér | redigér wikikode]

Sproget er implementeret på et meget tyndt lag oven på C, og Objective-C bruger både C og Smalltalk's syntaks. OpenStep er implementeret i Cocoa og GNUStep.

Beskeder og eksempel[redigér | redigér wikikode]

Objective-C anvender beskeder mellem objekter. Beskedsyntaksen er:

 [objekt funktion: parametre]

Et simpelt eksempel på et basalt objekt, som anvender OpenStep-bibliotekerne ser sådan ud:

eksempel.m

 #import <Foundation/Foundation.h>
  #import <stdio.h>
  
  @interface Messenger : NSObject {
    char message[50];
  }
  
  – (void) setMessage: (char *)Message;
  – (char*) getMessage;
  @end
  
  @implementation Messenger
   – (void) setMessage: (char*)Message {
    strcpy( message, Message );
  }
  
  – (char*) getMessage {
    return message;
  }
  @end
 
 int main() {
    Messenger * message = [[Messenger alloc] init];
    [message setMessage: "Hello, World"];
    printf( "%s\n", [message getMessage] );
    [message release];
  }

I eksemplet ses, hvorledes der kommunikeres med den nye instans af Messenger objektet, der nedarver NSObjekt-klassen.

Programmet kan kompileres på Mac OS X i en terminal med syntaksen:

 gcc eksempel.m -framework Foundation -o eksempel

Se Også[redigér | redigér wikikode]

  • C++, et andet objekt-orienteret programmeringssprog baseret på C

Eksterne henvisninger[redigér | redigér wikikode]

Da sproget ikke er så vidtbredt som C og C++, er de fleste bøger og tutorials på engelsk.