2. Les bases d’objective-C
Autres comparative d’Objective2.0
Etude concepts
Les nouveautés d’Objective-C C
Conclusions et perspectives
Application
Introduction
2
3. Introductio
n
Origine du langage
Domaines d’application
Environnements de
travail
3
4. Introduction
Les bases d’Objective-C Origine du langage
Autres concepts d’Objective-C Environnements de travail
Les nouveautés d’Objective-C 2.0 Domaines d’application
Conclusions et perspectives
4
4
5. Introduction
Les bases d’Objective-C Origine du langage
Autres concepts d’Objective-C Environnements de travail
Les nouveautés d’Objective-C 2.0 Domaines d’application
Conclusions et perspectives
5
Objective-C est un langage de programmation
orienté objet, crée par
Brad Cox et Tom Love Customer des années 80
au début
fails to
pay
Ce langage est inspiré du SmallTalk et du C
5
6. Introduction
Les bases d’Objective-C Origine du langage
Autres concepts d’Objective-C Environnements de travail
Les nouveautés d’Objective-C 2.0 Domaines d’application
Conclusions et perspectives
6
Objective-c est un langage multi plateforme
Il est utilisé :
sous Mac OS d‘Apple avec la bibliothèque de
classes Cocoa
Linux et Windows avec la bibliothèque de classes
libre GNUstep
Cocoa et GNUstep sont les successeurs de l'API OpenStep,
utilisée dans les systèmes
d'exploitation NeXTSTEP et OPENSTEP
6
7. Introduction
Les bases d’Objective-C Origine du langage
Autres concepts d’Objective-C Environnements de travail
Les nouveautés d’Objective-C 2.0 Domaines d’application
Conclusions et perspectives
7
ProjectCenter : L'IDE
GNUStep
Il nécessite l’instalation de
GCC et des bibliothéques
GNUstep
Cet IDE n est pas très
développé
Il est actuellement à sa version
0.6 qui est sortie en 12
décembre 2010
7
8. Introduction
Les bases d’Objective-C Origine du langage
Autres concepts d’Objective-C Environnements de travail
Les nouveautés d’Objective-C 2.0 Domaines d’application
Conclusions et perspectives
8
Xcode: L'IDE Apple
Un ensemble d’outils créé par
Apple pour développement de
des applications Mac .
Il est actuellement à sa
version 4.2 sortie avec MAC
OS 10.7
8
9. Introduction
Les bases d’Objective-C Origine du langage
Autres concepts d’Objective-C Environnement de travail
Les nouveautés d’Objective-C 2.0 Domaine d’application
Conclusions et perspectives
9
Objective C est une solution technique proposée par Apple
permettant de réaliser des applications vraiment bien
adaptées pour les appareils de type mobile ou tablette.
Customer
Elle est destiné uniquementfails to
aux appareils de la marque
pay
Apple :
9
11. Introduction ID
Les bases d’Objective-C
Objet
Autres concepts d’Objective-C
Les nouveautés d’Objective-C 2.0 Types de base
Conclusions et perspectives Class
11
Il existe deux sortes de typage:
Le typage statique : On précise le type de
l’objet, c’est-à-dire la classe à laquelle appartient l’objet
au moment de la déclaration. Le compilateur s’assure
Customer
que ce type est respecté tout au long du code.
fails to
pay
Le typage dynamique: On déclare l’objet sans type
grâce au pointeur id. Le compilateur ne possède alors
aucune connaissance sur le type de la référence qui
peut représenter une instance de n’importe quelle
classe
L’Objective C se caractérise par le typage dynamique
11
12. Introduction ID
Les bases d’Objective-C
Objet
Autres concepts d’Objective-C
Les nouveautés d’Objective-C 2.0 Types de base
Conclusions et perspectives Class
12
ID:
En Objective-C, les objets sont identifiés par un type de
données distinctes: id .
Customer
fails to
Ce type est défini comme un pointeur vers un pointeur vers
pay
les données de l'objet (ses variables d'instance).
id anObject;
Tous les objets, indépendamment de leurs variables
d'instance ou des méthodes, sont de type ID .
id est le type par défaut de la valeur retournée par n’importe
quelle méthode Objective-C. 12
13. Introduction ID
Les bases d’Objective-C Objet
Autres concepts d’Objective-C Types de base
Les nouveautés d’Objective-C 2.0 Class
Conclusions et perspectives
13
Racine de l’arbre
des classes
• Object • NSObject
Objective
Java C
Le préfixe NS vient de NextStep
13
14. Introduction ID
Les bases d’Objective-C
Objet
Autres concepts d’Objective-C
Les nouveautés d’Objective-C 2.0 Types de base
Conclusions et perspectives Class
14
NSObject
NSArray NSString
NSMutable
14
15. Introduction ID
Les bases d’Objective-C
Objet
Autres concepts d’Objective-C
Les nouveautés d’Objective-C 2.0 Types de base
Conclusions et perspectives Class
15
Objective-C est un sur-ensemble du langage C.
Il n’a fait que rajouter des concepts et les mots-clefs les
accompagnant, notons également :
Customer
la présence des valeurs nil et Nil:
fails to
pay
nil est l’équivalent de NULL pour un pointeur
d’objet.
nil et NULL ne sont pas interchangeables
Nil est l’équivalent de nil pour un pointeur de
classe, car en Objective-C, les classes sont aussi
des objets (instances de méta-classes)
la présence du type id, du type SEL et du type
BOOL avec ses valeurs YES et NO 15
16. Introduction ID
Les bases d’Objective-C
Objet
Autres concepts d’Objective-C
Les nouveautés d’Objective-C 2.0 Types de base
Conclusions et perspectives Class
16
la présence de deux mots-clés self et super dont
le fonctionnement est semblable aux this et
super respectivement de C# et Java:
Le mot-clé self désigne l’objet courant dans la
définition d’une méthode
Le mot-clé super désigne la classe parente
Les mots-clés self et super sont très utilisés en Objective-
C, notamment pour l’allocation et l’initialisation des instances.
16
17. Introduction ID
Les bases d’Objective-C
Objet
Autres concepts d’Objective-C
Les nouveautés d’Objective-C 2.0 Types de base
Conclusions et perspectives Class
17
Customer
fails to
pay
17
18. Introduction ID
Les bases d’Objective-C
Objet
Autres concepts d’Objective-C
Les nouveautés d’Objective-C 2.0 Types de base
Conclusions et perspectives Class
18
Fichier herder .h
@interface MaClasse : NSObject {
// vous placez ici toutes vos propriétés
}
// et vos méthodes en dehors des
accolades
Customer
end fails to
pay
Fichier d’implémantation main.m
// Vous devez absolument importer votre
fichier .h
#import «MaClasse.h »;
@implentation MaClasse
// vous placez ici votre code
end
18
19. Introduction ID
Les bases d’Objective-C
Objet
Autres concepts d’Objective-C
Les nouveautés d’Objective-C 2.0 Types de base
Conclusions et perspectives Class
19
Message:
Les objets Objective-C communiquent entre eux grâce à
des envois de messages qui sont gérés par le runtime
Customer
fails to
Les envois de message sepay en utilisant la syntaxe
font
suivante :
[ recepteur message];
L’envoi de message correspond à un appel de fonctions.
19
20. Introduction ID
Les bases d’Objective-C
Objet
Autres concepts d’Objective-C
Les nouveautés d’Objective-C 2.0 Types de base
Conclusions et perspectives Class
20
Méthode:
Dans une classe , on peux définir des méthodes
de classe : préfixée par + ( correspondent aux
Customer
fails to
méthodes statiques de java)
pay
d’instance: préfixée par -
Les symboles + et – n’ont rien à voir avec la signification
public et pravite de UML.
En Objective-C , les méthodes sont toujours publiques
20
21. Introduction ID
Les bases d’Objective-C
Objet
Autres concepts d’Objective-C
Les nouveautés d’Objective-C 2.0 Types de base
Conclusions et perspectives Class
21
Syntaxe:
- ( void) myMethod : (int) : arg
Type de Customer
retour fails to
pay
Peut prendre n’importe type de données valide:
void : pas de retour
id : pointeur vers un objet de n’importe classe
NSString* : pointeur vers une chaine de caractére (
NSString).
21
22. Introduction ID
Les bases d’Objective-C
Objet
Autres concepts d’Objective-C
Les nouveautés d’Objective-C 2.0 Types de base
Conclusions et perspectives Class
22
Syntaxe:
- ( void) myMethod (int) : arg
Type de Customer
méthode fails to
pay
Peut prendre:
+: pour les méthodes de classe
- : pour les méthodes d’instance
22
23. Introduction ID
Les bases d’Objective-C
Objet
Autres concepts d’Objective-C
Les nouveautés d’Objective-C 2.0 Types de base
Conclusions et perspectives Class
23
Syntaxe:
- ( void) myMethod : (int) : arg
Nom de la
Customer
méthode to
fails
pay
23
24. Introduction ID
Les bases d’Objective-C
Objet
Autres concepts d’Objective-C
Les nouveautés d’Objective-C 2.0 Types de base
Conclusions et perspectives Class
24
Syntaxe:
- ( void) mymethod : (int) : arg
Type Nom de
d’argument l’argument
Déclaration de multiple argument :
- (void) mymethodAndAlso : (int) arg1 : (int)
arg2
ou aussi
- (void) mymethod: (int) arg1 andAlso: (int) arg2
Méthode prend 2 argument et
elle est appelée
« mymethod:andAlso: »
24
25. Introduction ID
Les bases d’Objective-C
Objet
Autres concepts d’Objective-C
Les nouveautés d’Objective-C 2.0 Types de base
Conclusions et perspectives Class
25
Appel à la méthode:
- ( void) myMethod : (int) : arg
[myobject myMethod: 5];
- (void) myMethodAndAlso : (int) arg1 : (int) arg2
[myobject myMethodAndAlso :5:6];
- (void) myMethod: (int) arg1 andAlso: (int) arg2
[myObject myMethod:5 andAlso:6];
25
26. Introduction ID
Les bases d’Objective-C
Objet
Autres concepts d’Objective-C
Les nouveautés d’Objective-C 2.0 Types de base
Conclusions et perspectives Class
26
visibilité pour les variables d'instance
@ Private: la variable d'instance n'est accessible que
Customer
dans la classe qui la déclare.
fails to
pay
@ protected: la variable d'instance est accessible au
sein de la classe qui le déclare et avec la classe qui en
hérite.
@ Public: la variable d'instance est accessible partout.
26
27. Cycle de vie d’un objet
Création d’objet
Gestion de mémoire
Destruction d’objet
27
28. Introduction
Les bases d’Objective-C Création d’objet
Autres concepts d’Objective-C Gestion de mémoire
Les nouveautés d’Objective-C 2.0 Destruction d’objet
Conclusions et perspectives
28
Création d’objet:
• 2 étapes:
allocation de mémoire pour stocker l’objet
Customer
+ alloc Méthode de classe qui alloue l’espace
fails to
mémoire nécessaire pay
initialisation d’objet
- init Méthode d’instance pour initialiser l’objet
Création= allocation+ initialisation
Person *person = nil;
person = [[Person alloc] init]; 28
29. Introduction
Les bases d’Objective-C Création d’objet
Autres concepts d’Objective-C Gestion de mémoire
Les nouveautés d’Objective-C 2.0 Destruction d’objet
Conclusions et perspectives
29
Gestion de mémoire:
//Pdf 406;;;PAG28 30
Mode managed(géré) via le mécanisme de comptage de référence(
reference counting) :
Customer
• l’environnement d’exécution associe à chaque objet un compteur.
fails to
• Ce compteur représente le nombre de références pointant vers cet
objet. pay
• Si le compteur est> 0, l'objet est vivant et valide.
+ alloc et –copy créent l’objet avec un compteur initialisé en 1
- retain incrémente le compteur
- release décrémente le compteur
• Lorsque le compteur atteint 0 ,l’objet est détruit
- dealloc est appelée automatiquement
• -(NSUInteger)retainCount Renvoi la valeur du compteur de référence
sous forme d’entier.
29
30. Introduction
Les bases d’Objective-C Création d’objet
Autres concepts d’Objective-C Gestion de mémoire
Les nouveautés d’Objective-C 2.0 Destruction d’objet
Conclusions et perspectives
30
Le compteur de référence en action
Person *person = [[Person alloc] init];
Customer
[person retain]; fails to
pay
[person release];
[person release];
30
31. Introduction
Les bases d’Objective-C Création d’objet
Autres concepts d’Objective-C Gestion de mémoire
Les nouveautés d’Objective-C 2.0 Destruction d’objet
Conclusions et perspectives
31
Les autorelease pools
• les autorelease pools entrent en jeu dans la gestion de mémoire des objet dont
on dispose pas directement de leur création via les méthodes alloc , init et copy
• Un pool est une zone mémoire dans laquelle des objets sont alloués
Customer
fails to
• Un autorelease pool est une instance de NSAutoreleasePool qui définit un
champ d'objets temporaires pay
• Ces objet sont ajoutés au autorelease pool actuel suite à un message -
autoreleased .
• Lorsque la autorelease pool est libérée tous les objets qui y ont été ajoutés sont
automatiquement libérés.
C'est un moyen simple de gérer la libération automatique des objets qui sont
nécessaires temporairement.
31
32. Introduction
Les bases d’Objective-C Création d’objet
Autres concepts d’Objective-C Gestion de mémoire
Les nouveautés d’Objective-C 2.0 Destruction d’objet
Conclusions et perspectives
32
Customer
fails to
pay
32
33. Introduction
Les bases d’Objective-C Création d’objet
Autres concepts d’Objective-C Gestion de mémoire
Les nouveautés d’Objective-C 2.0 Destruction d’objet
Conclusions et perspectives
33
L’objet est créé
Customer
fails to
pay
33
34. Introduction
Les bases d’Objective-C Création d’objet
Autres concepts d’Objective-C Gestion de mémoire
Les nouveautés d’Objective-C 2.0 Destruction d’objet
Conclusions et perspectives
34
L’objet est ajouté à la pool suite à -autorealease
Customer
fails to
pay
34
35. Introduction
Les bases d’Objective-C Création d’objet
Autres concepts d’Objective-C Gestion de mémoire
Les nouveautés d’Objective-C 2.0 Destruction d’objet
Conclusions et perspectives
35
Lorsque la pool est libérée elle-même , elle envoie -realease à tous ses
objets
Customer
fails to
pay
35
36. Introduction
Les bases d’Objective-C Création d’objet
Autres concepts d’Objective-C Gestion de mémoire
Les nouveautés d’Objective-C 2.0 Destruction d’objet
Conclusions et perspectives
36
Lorsque la pool est libérée elle-même , elle envoie -realease à tous ses
objets
Customer
fails to
pay
36
37. Introduction
Les bases d’Objective-C Création d’objet
Autres concepts d’Objective-C Gestion de mémoire
Les nouveautés d’Objective-C 2.0 Destruction d’objet
Conclusions et perspectives
37
Lorsque la pool est libérée elle-même , elle envoie -realease à tous ses
objets
Customer
fails to
pay
37
38. Introduction
Les bases d’Objective-C Création d’objet
Autres concepts d’Objective-C Gestion de mémoire
Les nouveautés d’Objective-C 2.0 Destruction d’objet
Conclusions et perspectives
38
Lorsque la pool est libérée elle-même , elle envoie -realease à tous ses
objets
Customer
fails to
pay
38
39. Autres concepts d’Objective
C
L’héritage
Le polymorphisme et La
surcharge
Protocole
Catégories
Run-time
39
40. Introduction Héritage
Les bases d’Objective-C Polymorphisme et surcharge
Autres concepts d’Objective-C Protocole
Les nouveautés d’Objective-C 2.0 Catégories
Conclusions et perspectives Run-Time
40
Héritage:
La réutilisation du code d'une classe mère dans une
classe fille.
Customer
Comme Java, Objective C est un langage orienté objet à
fails to
héritage simple. Héritage
pay
@interface NomClassFille:
NomClassMere
déclaration des méthodes
@end
Objective-C n’implémente pas l’héritage multiple, et le
compense par d’autres concepts: les protocoles et les
catégories . 40
41. Introduction Héritage
Les bases d’Objective-C Polymorphisme et surcharge
Autres concepts d’Objective-C Protocole
Les nouveautés d’Objective-C 2.0 Catégories
Conclusions et perspectives Run-Time
41
Polymorphism
e:
Le polymorphisme est un concept extrêmement puissant en
POO, il permet de manipuler des objets sans en connaître le
type tout en se basant sur la relation d’héritage.
Un objet a comme type non seulement sa classe mais aussi
n’importe quelle classe dérivée.
L’Objective C supporte le polymorphisme simple qui est
présenté par l’intermédiaire des protocoles .
Surcharge:
Contrairement à C + +, Java et C #, l’Objective C ne
supporte pas la surcharge des méthodes et des
41
opérateurs.
42. Introduction Héritage
Les bases d’Objective-C Polymorphisme et surcharge
Autres concepts d’Objective-C Protocole
Les nouveautés d’Objective-C 2.0 Catégories
Conclusions et perspectives Run-Time
42
Protocole :
Un protocole est un ensemble de méthodes définies pour
être implémentées par des classes adhérentes.
Le protocole ne fournit donc pas d’implémentation, mais
Customer
juste la définition des méthodes.
fails to
pay
Cette notion est reconnue en langage java par interface (
ne faut donc pas confondre avec la notion d'interface
de objective C).
les protocoles Declaration de protocole un fichier d’en-tête ( .h)
sont déclarés dans
@protocole Nom-protocole
déclaration des méthodes
@end 42
43. Introduction Héritage
Les bases d’Objective-C Polymorphisme et surcharge
Autres concepts d’Objective-C Protocole
Les nouveautés d’Objective-C 2.0 Catégories
Conclusions et perspectives Run-Time
43
Une classe peut implémenter un nombre quelconque de
protocoles
implémentation de protocole par une classe
@interface NomClass :Nom_super_Class
<proto1,proto2….>
//implémentation
@end
Son implémentation doit alors contenir une définition pour
toutes les méthodes de tous les protocoles de la liste
43
44. Introduction Héritage
Les bases d’Objective-C Polymorphisme et surcharge
Autres concepts d’Objective-C Protocole
Les nouveautés d’Objective-C 2.0 Catégories
Conclusions et perspectives Run-Time
44
Les catégories :
Les catégories permettent d’étendre les fonctionnalités d’une
classe sans avoir besoin de définir une sous-classe en ajouter
des méthodes à la classe existante.
Customer
La déclaration et l’implémentation d’une catégorie sont
fails to
similaires à celles d’une classe
pay Catégorie
#import « NomClassACatégoriser.h »
@interface NomClassACatégoriser (NomCatégorie)
// declaration des attributs et des méthodes
@end
@implementation NomClassACatégoriser
(NomCatégorie)
// declaration des variables
// implémentation des méthodes 44
45. Introduction Héritage
Les bases d’Objective-C Polymorphisme et surcharge
Autres concepts d’Objective-C Protocole
Les nouveautés d’Objective-C 2.0 Catégories
Conclusions et perspectives Run-Time
45
Run-Time:
Le système d'exécution en Objective C est un élément
essentiel de la langue.
Customer
Le run-time fournit le comportement de la liaison
fails to
dynamique, ainsi que quelques autres fonctionnalités
pay
très puissantes, comme le chargement dynamique de
classes dans un programme en cours, prévoyant la
persistance des objets, et de soutenir certaines des
caractéristiques de l'héritage multiple.
Les capacités et la mise en œuvre de la composante
temps d'exécution de l'Objective C a tendance à varier
entre les compilateurs plus d'autres caractéristiques du
langage. 45
47. Introduction Garbage Collector
Les bases d’Objective-C
@Properties,@ synthesize
Autres concepts d’Objective-C
Les nouveautés d’Objective-C 2.0 @optional,@required
Conclusions et perspectives Dot Syntax
47
2007 : Sortie de Mac OS X v10.5 Leopard Mise à
jours des standards de l’objective-C
Customer
fails to
Nouveautés: pay
Outils de gestion de mémoire dynamique regroupés dans
un système nommé garbage collector.
Ajout de mots clés :@proprty,@ synthesize
Modifications de syntaxe ( Dot Syntax)
47
48. Introduction Garbage Collector
Les bases d’Objective-C
@Properties,@ synthesize
Autres concepts d’Objective-C
Les nouveautés d’Objective-C 2.0 @optional,@required
Conclusions et perspectives Dot Syntax
48
Garbage Collector:
Comme dans le monde java et .Net,La fonction principale d’un
ramasse-miettes est de trouver les objets qui ne sont plus utilisés afin
de libérer la mémoire qu’ils occupent.
L’activation du ramasse-miettes se fait au moment de la compilation,
Customer
et c’est donc une option à passer au to
fails compilateur
pay
Il existe trois modes différents pour la gestion automatique de la
mémoire :
Unsupported (non compatible ): Le code n’est pas écrit pour la gestion
automatique de mémoire et est donc incompatible avec le garbage Collector
Required (nécessaire ): Le garbage collector est requis car le code ne
gère pas la mémoire (retain/release).
Supported (compatible): Cela signifie que le code peut s’exécuter en
mode ramasse-miettes, mais également en mode géré
48
49. Introduction Garbage Collector
Les bases d’Objective-C @Properties,@ synthesize
Autres concepts d’Objective-C @optional,@required
Les nouveautés d’Objective-C 2.0 Dot Syntax
Conclusions et perspectives
49
@Properties,@ synthesize
La synthèse automatique des accesseurs et modificateurs se
fera avec : Customer
fails to
pay
@ Properties : génèration des déclarations de setter et
des getter dans l’interface (.h)
@synthesize : génèration des implémentations de setter
et des getter dans dans le fichier d’implémentation (.m)
49
50. Introduction Garbage Collector
Les bases d’Objective-C @Properties,@ synthesize
Autres concepts d’Objective-C @optional,@required
Les nouveautés d’Objective-C 2.0 Dot Syntax
Conclusions et perspectives
50
@Properties:
Par défaut, les propriétés crées:
porteront respectivement le nom de nom/setNom pour le
Customer
getter et le setter fails to
pay
- (void) setMaChaine: (NSString @property NSString *
*)chaine; maChaine;
- (NSString *) maChaine;
sont en lecture et écriture (readwrite)
On peut modifier ces valeurs par défauts en ajoutant des
attributs aux propriétés
50
51. Introduction Garbage Collector
Les bases d’Objective-C
@Properties,@ synthesize
Autres concepts d’Objective-C
Les nouveautés d’Objective-C 2.0 @optional,@required
Conclusions et perspectives Dot Syntax
51
@Properties:
Declaration: @propery (writability, setter, atomicity) type name;
Writability :readonly, readwrite
Setter semantic :assign, copy, retain
Customer
Atomicity :atomic, nonatomic
fails to
pay
On peut modifier ces valeurs par défauts en ajoutant des
attributs aux propriétes :
@property (getter=maChaine) NSString * maChaine;
@property (setter=setMaChaine) NSString * maChaine;
@property (getter=maChaine, setter=setMaChaine) NSString *
maChaine;
@property NSString * maChaine; @property (readwrite) NSString *
maChaine; 51
52. Introduction Garbage Collector
Les bases d’Objective-C
@Properties,@ synthesize
Autres concepts d’Objective-C
Les nouveautés d’Objective-C 2.0 @optional,@required
Conclusions et perspectives Dot Syntax
52
Lorsqu’une classe implémente un protocole, elle doit
implémenter toutes ses méthodes .
Avec Objective-C 2.0, les nouveaux mots-clefs @optional
Customer
et @required permettent de distinguer des méthodes
fails to
optionnelles des méthodespay
obligatoires.
Declaration de protocole
@protocole Nom-protocole
@optional
- (void) methodeoptionnelle ;
@required
- (void) methodheObligatoire ;
@end
52
53. Introduction Garbage Collector
Les bases d’Objective-C
@Properties,@ synthesize
Autres concepts d’Objective-C
Les nouveautés d’Objective-C 2.0 @optional,@required
Conclusions et perspectives Dot Syntax
53
Dot Syntax :
C’est une nouvelle syntaxe introduite avec Objective C 2.0
utilisant un point (.) au lieu des crochets habituels ([ ])
int age= [person age] Customer
; int
age=peron.age ; fails to
[person setAge:newAge] ; pay peron.age =
newAge;
Une meilleur lisibilité du code lorsque plusieurs messages
doivent être imbriqués
[[person child] setAge:newAge] ; peron.child.age =
newAge;
53
54. Etude comparative
d’Objective C
Objective C VS Java
Autres Comparaisons
54
55. Introduction
Les bases d’Objective-C
Objective C VS Java
Les concepts d’orienté objet dans Objective-C
Les nouveautés d’Objective-C 2.0 Autres Comparaisons
Conclusions et perspectives
55
Java Objective C
les API sont définies et mises en les API cohérentes sont définies par la
Langage Orienté Objet à la fois Langage Orienté Objet compilé
œuvre par les distributions Sun Java spécification OpenStep.
compilé et interprété (en langage directement en langage machine
Development Kit Ceci est mis en œuvre par GNUstep
intermédiaire)
et Mac OS X Cocoa.
La syntaxe de Java est basé sur le est basé sur C, et les extensions OO
utilise garbage collection pour la utilise la gestion de la mémoire
langage C + + sont comparables à ceux de Smalltalk
gestion de la mémoire manuelle, le comptage de référence,
est typé statiquement, mais fournit les et garbage collection comme des
est typé dynamiquement, mais fournit
mécanismes de type-casting pour options
également le typage statique
contourner interfaces limitations du
fournit des certaines fournit des protocoles
typage statique
Tas fixes Tas sont géré par l'OS et le système
d'exécution
55
56. Introduction
Les bases d’Objective-C Objective C VS Java
Les concepts d’orienté objet dans Objective-C Autres Comparaisons
Les nouveautés d’Objective-C 2.0
Conclusions et perspectives
56
56