Objective-C

linguaggio di programmazione
Versione del 10 ago 2005 alle 12:27 di Zwobot (discussione | contributi) (robot Aggiunta: cs, da, de, en, eo, es, fr, ja, pl, ru, sk, sv, zh)

L'Objective C è un linguaggio di programmazione orientato agli oggetti sviluppato da Brad Cox alla metà degli anni '80 presso la StepStone Corporation. Come lo stesso nome suggerisce, l'Objective C è un'estensione ad oggetti del C. Tuttavia, al contrario del C++, l'Objective C mantiene col C la compatibilità al 100%.

Le estensioni ad oggetti sono ispirate al linguaggio Smalltalk, in particolar modo alla gestione dei messaggi. Le caratteristiche del runtime collocano l'Objective C tra i linguaggi ad oggetti dinamici. Sono supportati il binding dinamico, l'accesso alle proprietà della classe quali metodi e attributi e la possibilità di personalizzare le classi attraverso il meccanismo delle categorie.

Al contrario di linguaggi come C++ e Java, come il C non è dotato di forte tipizzazione.

La sua diffusione è principalmente legata al framework OpenStep di NeXT e al suo successore Cocoa, presente nel sistema operativo Mac OS X di Apple. A NeXT si deve il supporto dell'Objective C nel compilatore gcc di GNU.

Esempi di codice

Interfaccia di una classe

 // file NomeClasse.h
  
 #import "NomeSuperclasse.h"
  
 @interface NomeClasse : NomeSuperclasse
 {
   // variabili d'istanza
   float v1;
   int v2;
   BOOL v3;
 }
  
 // dichiarazione metodi della classe
 +(id)allocInit;
  
 // dichiarazione metodi delle istanze
 -(id)init;
 -(void)logTo:(FILE*)destinazione;
 @end

Implementazione di una classe

 // file NomeClasse.m
  
 #import <stdio.h>
 #import "NomeClasse.h"
  
 @implementation NomeClasse
 +(id)allocInit
 {
   return [[NomeClasse alloc] init];
 }
 -(id)init
 {
   self=[super init];
   v1=0; v2=0; v3=YES;
   return self;
 }
 -(void)logTo:(FILE*)destinazione
 {
   sprintf(destinazione,"v1=%f  v2=%d  v3=%s\n", v1, v2, v3?"YES":"NO");
 }
 @end