Objective-C (ofte forkortet Obj-C) er et objektorientert programmeringsspråk som er realisert som en utvidelse av ANSI C.
Det anvendes fremfor alt i programmeringsmiljøene Cocoa (Mac OS X) og GNUstep, som begge to er realiseringer av OpenStep-standarden.
Objective-C | |||
---|---|---|---|
Tilblivelse | 1984 | ||
Paradigme | Multi-paradigme: Objektorientert programmering, klassebasert programmering, selvmodifiserende programmering | ||
Designet av | Brad Cox | ||
Siste versjon(er) | 2.0 | ||
Typetildeling | statisk, dynamisk, svak | ||
Filendelse(r) | .h, .m, .mm, .C | ||
Påvirket av | |||
C, Smalltalk |
Objective C er en svært liten utvidelse av C. Det finnes bare et tillegg av syntaks og omtrent ti nye kodeord. Sånn sett er det veldig enkelt å lære om man kjenner til C.
Objektorienterte programmer er bygd opp av objekter som sender hverandre meldinger (anvisninger) og utfører metoder. Meldinger i Objective-C baserer seg på Smalltalk og ser ut på følgende måte:
[objekt metode]
for eksempel:
textLengde = [@"Hello World!" length]; // tekstobjektet "Hello World!" skal kjøre metoden "length"
meldinger kan pakkes i hverandre og gis argumenter etter kolon:
[resultat setFloatValue: [beløp floatValue]*[antall floatValue]];
For å skape objekter av sin egen type bør man beskrive den i en såkalt klasse. Det består av en interface-del som inneholder statusen og evnene objektene av klassens type har, dvs. interfacen deklarerer variablene og metodene sine:
#import@interface Lampe : Object { BOOL lyser; // statusen } – (BOOL)lyser; // evnen: svar om lyser – (void)settLyser:(BOOL)nyeStatus; – (id)init; // sett startstatus @end
og en implementation som beskriver hvordan evnene skal utføres:
@implementation Lampe – (BOOL) lyser { return lyser; // returner variablen (som lever i en annen navnrom enn metodene) } – (void)settLyser: (BOOL) nyeStatus { lyser = nyeStatus; } – (id)init { if (self = [super init]) { [self settLyser:NO]: } return self; } @end
Nye objekter kan nå bygges idet man sender meldingen om å utføre metoden «alloc» til klassen. Klasser er også spesielle objekter med metoder. Klassen over kan for eksempel brukes slik:
#include// bruk normale C-inn-/utgave i eksemplet main () { id objektet; // id mener "et eller annet objekt" objektet = [[[Lampe alloc] init] settLyser: YES]; // kompleks pakking av meldinene printf ("Lampen i variablen \"objektet\" %s.", [objektet lyser]?"lyser":"lyser ikke"); }
This article uses material from the Wikipedia Norsk (Bokmål) article Objective-C, which is released under the Creative Commons Attribution-ShareAlike 3.0 license ("CC BY-SA 3.0"); additional terms may apply (view authors). Innholdet er tilgjengelig under CC BY-SA 4.0 hvis ikke annet er angitt. Images, videos and audio are available under their respective licenses.
®Wikipedia is a registered trademark of the Wiki Foundation, Inc. Wiki Norsk (Bokmål) (DUHOCTRUNGQUOC.VN) is an independent company and has no affiliation with Wiki Foundation.