Objective-C

Denne artikkelen inneholder en liste over kilder, litteratur eller eksterne lenker, men enkeltopplysninger lar seg ikke verifisere fordi det mangler konkrete kildehenvisninger i form av fotnotebaserte referanser. Du kan hjelpe til med å sjekke opplysningene mot kildemateriale og legge inn referanser. Opplysninger uten kildehenvisning i form av referanser kan bli fjernet. Se Mal:Referanseløs for mer informasjon.
Objective-C
Tilblivelse1984
ParadigmeMulti-paradigme: Objektorientert programmering, klassebasert programmering, selvmodifiserende programmering
Designet avBrad Cox
Siste versjon(er)2.0
Typetildeling statisk, dynamisk, svak
Filendelse(r).h, .m, .mm, .C
Påvirket av
C, Smalltalk

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.

Beskrivelse

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.

Meldinger

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

Klasser

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 <objc/Object.h>
  @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 <stdio.h>                  // 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");
 }

Eksterne lenker

  • (en) Offisielt nettsted Rediger på Wikidata
  • (en) Objective-C – kategori av bilder, video eller lyd på Commons Rediger på Wikidata
  • The Objective-C Programming Language
  • https://web.archive.org/web/20060209162029/http://www.dekorte.com/Objective-C/
  • Objective-C kurs for nybegynnere
  • v
  • d
  • r
A# · ActionScript · Ada · Alef · ALGOL · ALGOL 58 · ALGOL 60 · ALGOL 68 · ALTRAN · APL · AppleScript · Argus · Assembler · Autokode · awk ·· BASIC · BCPL · BETA · BitC · BLISS · Bourne Shell ·· C++ · C-- · CHILL · C# · C shell · Caml · Ch · Cilk · Cilk++ · Cilk Plus · Clarion · Clipper · CLISP · Clojure · CLU · COBOL · COMAL · Common Lisp · Concurrent C · Concurrent Euclid · Concurrent Pascal · C shell ·· Delphi · Dylan · ECMAScript · Eiffel · Emacs Lisp · Erlang · Euclid · F* · F# · Forth · Fortran · GNU Common Lisp · GNU Pascal · Go · Haskell · HyperTalk · Incr Tcl · INTERCAL · Interlisp · Java · JavaScript · JRuby · LaTeX · Legoscript · LilyPond · Limbo · Lisp · LPC · Lua · Lynx · Mary · MATLAB · Mesa · ML · MML · Modula · Modula-2 · Modula-2+ · MUMPS · Objective-C · Objective-C++ · OCaml · OpenVera · O'Haskell · Pascal · Perl · PHP · Pike · PL/I · Plankalkül · PLEX · Prolog · Protel · Pure Data · Python ·· Ratfor · REXX · RTL/2 · Ruby · Rust · SAS · Scala · Scheme · Scratch · Simula · SML · Smalltalk · SNOBOL · Tcsh · Tcl · TECO · TOM · Turbo Basic · Turbo Pascal · Verilog · Visual Prolog · Turing · TypeScript · Vala · VHDL · Visual Basic
Oppslagsverk/autoritetsdata
GND · LCCN · BNF · BNF (data) · SUDOC · NKC
Denne artikkelen er en spire. Du kan hjelpe Wikipedia ved å utvide den.