Objective-C

programmeringssprog

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

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

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

Objective-C anvender beskeder mellem objekter. Beskedsyntaksen er:

 [objekt metode: 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

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

Eksterne henvisninger redigér

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