objective c

57
Développement Objective-c

Upload: slimen-belhaj-ali

Post on 27-Jun-2015

474 views

Category:

Technology


1 download

TRANSCRIPT

Page 1: objective C

Développement Objective-c

Page 2: objective C

Introduction Autres concepts d’Objective-CLes nouveautés d’Objective-C 2.0 ApplicationConclusions et perspectives Plan

2

Les bases d’objective-CEtude comparative d’Objective C

Page 3: objective C

3

Introduction

Origine du langage Domaines d’application Environnements de travail

Page 4: objective C

SmallTalk

C

C++ObjectiveC

Java

C#

IntroductionLes bases d’Objective-C Autres concepts d’Objective-CLes nouveautés d’Objective-C 2.0Conclusions et perspectives

Origine du langageEnvironnements de travail Domaines d’application

4

4

Page 5: objective C

Customer fails to pay

Objective-C est un langage de programmation orienté objet, crée par

Brad Cox et Tom Love au début des années 80

Ce langage est inspiré du SmallTalk et du C

IntroductionLes bases d’Objective-C Autres concepts d’Objective-CLes nouveautés d’Objective-C 2.0Conclusions et perspectives

Origine du langageEnvironnements de travail Domaines d’application

5

5

Page 6: objective C

Objective-c est un langage multi plateformeIl 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

IntroductionLes bases d’Objective-C Autres concepts d’Objective-CLes nouveautés d’Objective-C 2.0Conclusions et perspectives

Origine du langageEnvironnements de travail Domaines d’application

6

6

Page 7: objective C

IntroductionLes bases d’Objective-C Autres concepts d’Objective-CLes nouveautés d’Objective-C 2.0Conclusions et perspectives

Origine du langageEnvironnements de travail Domaines d’application

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

Page 8: objective C

IntroductionLes bases d’Objective-C Autres concepts d’Objective-CLes nouveautés d’Objective-C 2.0Conclusions et perspectives

Origine du langageEnvironnements de travail Domaines d’application

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

Page 9: objective C

Customer fails to pay

IntroductionLes bases d’Objective-C Autres concepts d’Objective-CLes nouveautés d’Objective-C 2.0Conclusions et perspectives

Origine du langageEnvironnement de travail Domaine d’application

9

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.

Elle est destiné uniquement aux appareils de la marque Apple :

Page 10: objective C

10

Les bases d’Objective C

ID Objet Types de base Class

Page 11: objective C

Customer fails to pay

IntroductionLes bases d’Objective-C Autres concepts d’Objective-CLes nouveautés d’Objective-C 2.0Conclusions et perspectives

IDObjetTypes de baseClass

11

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 que ce type est respecté tout au long du code.

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

Page 12: objective C

Customer fails to pay

IntroductionLes bases d’Objective-C Autres concepts d’Objective-CLes nouveautés d’Objective-C 2.0Conclusions et perspectives

IDObjetTypes de baseClass

12

12

ID:

En Objective-C, les objets sont identifiés par un type de données distinctes: id . 

Ce type est défini comme un pointeur vers un pointeur vers 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.

Page 13: objective C

IntroductionLes bases d’Objective-C Autres concepts d’Objective-CLes nouveautés d’Objective-C 2.0Conclusions et perspectives

IDObjetTypes de baseClass

13

13

Le préfixe NS vient de NextStep 

• Object

Java

• NSObject

Objective C

Racine de l’arbre des classes

Page 14: objective C

IntroductionLes bases d’Objective-C Autres concepts d’Objective-CLes nouveautés d’Objective-C 2.0Conclusions et perspectives

IDObjetTypes de baseClass

14

14

NSMutable

NSObject

NSArray NSString

Page 15: objective C

Customer fails to pay

IntroductionLes bases d’Objective-C Autres concepts d’Objective-CLes nouveautés d’Objective-C 2.0Conclusions et perspectives

IDObjetTypes de baseClass

15

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 : la présence des valeurs nil et Nil:

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

Page 16: objective C

IntroductionLes bases d’Objective-C Autres concepts d’Objective-CLes nouveautés d’Objective-C 2.0Conclusions et perspectives

IDObjetTypes de baseClass

16

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.

Page 17: objective C

Customer fails to pay

IntroductionLes bases d’Objective-C Autres concepts d’Objective-CLes nouveautés d’Objective-C 2.0Conclusions et perspectives

IDObjetTypes de baseClass

17

17

Class

Page 18: objective C

Customer fails to pay

IntroductionLes bases d’Objective-C Autres concepts d’Objective-CLes nouveautés d’Objective-C 2.0Conclusions et perspectives

IDObjetTypes de baseClass

18

18

Fichier herder .h@interface MaClasse : NSObject {// vous placez ici toutes vos propriétés}// et vos méthodes en dehors des accoladesend

Fichier d’implémantation main.m

// Vous devez absolument importer votre fichier .h#import «MaClasse.h »;@implentation MaClasse// vous placez ici votre codeend

Page 19: objective C

Customer fails to pay

IntroductionLes bases d’Objective-C Autres concepts d’Objective-CLes nouveautés d’Objective-C 2.0Conclusions et perspectives

IDObjetTypes de baseClass

19

19

Message:

Les objets Objective-C communiquent entre eux grâce à des envois de messages qui sont gérés par le runtime

Les envois de message se font en utilisant la syntaxe suivante :

[ recepteur message];

L’envoi de message correspond à un appel de fonctions.

Page 20: objective C

Customer fails to pay

IntroductionLes bases d’Objective-C Autres concepts d’Objective-CLes nouveautés d’Objective-C 2.0Conclusions et perspectives

IDObjetTypes de baseClass

20

20

Méthode:

Dans une classe , on peux définir des méthodes

  de classe : préfixée par + ( correspondent aux méthodes statiques de java)

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

Page 21: objective C

Customer fails to pay

IntroductionLes bases d’Objective-C Autres concepts d’Objective-CLes nouveautés d’Objective-C 2.0Conclusions et perspectives

IDObjetTypes de baseClass

21

21

Syntaxe:

- ( void) myMethod : (int) : arg

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).

Type de retour

Page 22: objective C

Customer fails to pay

IntroductionLes bases d’Objective-C Autres concepts d’Objective-CLes nouveautés d’Objective-C 2.0Conclusions et perspectives

IDObjetTypes de baseClass

22

22

Syntaxe:

- ( void) myMethod (int) : arg

Peut prendre: +: pour les méthodes de classe - : pour les méthodes d’instance

Type de méthode

Page 23: objective C

Customer fails to pay

IntroductionLes bases d’Objective-C Autres concepts d’Objective-CLes nouveautés d’Objective-C 2.0Conclusions et perspectives

IDObjetTypes de baseClass

23

23

Syntaxe:

- ( void) myMethod : (int) : arg

Nom de la méthode

Page 24: objective C

IntroductionLes bases d’Objective-C Autres concepts d’Objective-CLes nouveautés d’Objective-C 2.0Conclusions et perspectives

IDObjetTypes de baseClass

24

24

Syntaxe:

- ( void) mymethod : (int) : arg

Déclaration de multiple argument : - (void) mymethodAndAlso : (int) arg1 : (int) arg2 ou aussi - (void) mymethod: (int) arg1 andAlso: (int) arg2

Type d’argument

Nom de l’argument

Méthode prend 2 argument et elle est appelée « mymethod:andAlso: »

Page 25: objective C

IntroductionLes bases d’Objective-C Autres concepts d’Objective-CLes nouveautés d’Objective-C 2.0Conclusions et perspectives

IDObjetTypes de baseClass

25

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

Page 26: objective C

Customer fails to pay

IntroductionLes bases d’Objective-C Autres concepts d’Objective-CLes nouveautés d’Objective-C 2.0Conclusions et perspectives

IDObjetTypes de baseClass

26

26

visibilité pour les variables d'instance

@ Private: la variable d'instance n'est accessible que dans la classe qui la déclare.

@ 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.

Page 27: objective C

27

Cycle de vie d’un objet

Création d’objet Gestion de mémoire Destruction d’objet

Page 28: objective C

Customer fails to pay

IntroductionLes bases d’Objective-C Autres concepts d’Objective-CLes nouveautés d’Objective-C 2.0Conclusions et perspectives

Création d’objetGestion de mémoireDestruction d’objet

28

28

Création d’objet:

• 2 étapes: allocation de mémoire pour stocker l’objet

+ alloc Méthode de classe qui alloue l’espace mémoire  nécessaire

initialisation d’objet

- init Méthode d’instance pour initialiser l’objet

Création= allocation+ initialisation

Person *person = nil;person = [[Person alloc] init];

Page 29: objective C

Customer fails to pay

IntroductionLes bases d’Objective-C Autres concepts d’Objective-CLes nouveautés d’Objective-C 2.0Conclusions et perspectives

Création d’objetGestion de mémoireDestruction d’objet

29

29

Gestion de mémoire://Pdf 406;;;PAG28 30Mode managed(géré) via le mécanisme de comptage de référence( reference counting) :

• l’environnement d’exécution associe à chaque objet un compteur.

• Ce compteur représente le nombre de références pointant vers cet objet.

• 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.

Page 30: objective C

Customer fails to pay

IntroductionLes bases d’Objective-C Autres concepts d’Objective-CLes nouveautés d’Objective-C 2.0Conclusions et perspectives

Création d’objetGestion de mémoireDestruction d’objet

30

30

Le compteur de référence en action

Person *person = [[Person alloc] init];

[person retain];

[person release];

[person release];

Le compteur est initialisé à 1 avec + alloc

Le compteur est incrémenté à 2 avec - retain

Le compteur est décrémenté à 1 avec - release

Le compteur est décrémenté à 0 avec – release donc – dealloc est appelée automatiquement

Page 31: objective C

Customer fails to pay

IntroductionLes bases d’Objective-C Autres concepts d’Objective-CLes nouveautés d’Objective-C 2.0Conclusions et perspectives

Création d’objetGestion de mémoireDestruction d’objet

31

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

• Un autorelease pool est une instance de NSAutoreleasePool qui définit un champ d'objets temporaires • 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.

Page 32: objective C

Customer fails to pay

IntroductionLes bases d’Objective-C Autres concepts d’Objective-CLes nouveautés d’Objective-C 2.0Conclusions et perspectives

Création d’objetGestion de mémoireDestruction d’objet

32

32

Page 33: objective C

Customer fails to pay

IntroductionLes bases d’Objective-C Autres concepts d’Objective-CLes nouveautés d’Objective-C 2.0Conclusions et perspectives

Création d’objetGestion de mémoireDestruction d’objet

33

33

L’objet est créé

Page 34: objective C

Customer fails to pay

IntroductionLes bases d’Objective-C Autres concepts d’Objective-CLes nouveautés d’Objective-C 2.0Conclusions et perspectives

Création d’objetGestion de mémoireDestruction d’objet

34

34

L’objet est ajouté à la pool  suite à -autorealease

Page 35: objective C

Customer fails to pay

IntroductionLes bases d’Objective-C Autres concepts d’Objective-CLes nouveautés d’Objective-C 2.0Conclusions et perspectives

Création d’objetGestion de mémoireDestruction d’objet

35

35

Lorsque la pool est libérée elle-même , elle envoie -realease à tous ses objets

Page 36: objective C

Customer fails to pay

IntroductionLes bases d’Objective-C Autres concepts d’Objective-CLes nouveautés d’Objective-C 2.0Conclusions et perspectives

Création d’objetGestion de mémoireDestruction d’objet

36

36

Lorsque la pool est libérée elle-même , elle envoie -realease à tous ses objets

Page 37: objective C

Customer fails to pay

IntroductionLes bases d’Objective-C Autres concepts d’Objective-CLes nouveautés d’Objective-C 2.0Conclusions et perspectives

Création d’objetGestion de mémoireDestruction d’objet

37

37

Lorsque la pool est libérée elle-même , elle envoie -realease à tous ses objets

Page 38: objective C

Customer fails to pay

IntroductionLes bases d’Objective-C Autres concepts d’Objective-CLes nouveautés d’Objective-C 2.0Conclusions et perspectives

Création d’objetGestion de mémoireDestruction d’objet

38

38

Lorsque la pool est libérée elle-même , elle envoie -realease à tous ses objets

Page 39: objective C

39

Autres concepts d’Objective C

L’héritage Le polymorphisme et La surcharge Protocole Catégories Run-time

Page 40: objective C

Customer fails to pay

IntroductionLes bases d’Objective-C Autres concepts d’Objective-CLes nouveautés d’Objective-C 2.0Conclusions et perspectives

HéritagePolymorphisme et surchargeProtocoleCatégoriesRun-Time

40

40

Héritage:

La réutilisation du code d'une classe mère dans une classe fille.

Comme Java, Objective C est un langage orienté objet à héritage simple.

Objective-C n’implémente pas l’héritage multiple, et le compense par d’autres concepts: les protocoles et les catégories .

Héritage @interface NomClassFille: NomClassMere

déclaration des méthodes @end

Page 41: objective C

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 .

IntroductionLes bases d’Objective-C Autres concepts d’Objective-C Les nouveautés d’Objective-C 2.0Conclusions et perspectives

HéritagePolymorphisme et surchargeProtocoleCatégoriesRun-Time

41

41

Polymorphisme:

Surcharge:

Contrairement à  C + +, Java et C #, l’Objective C ne supporte pas la surcharge des méthodes et des opérateurs.

Page 42: objective C

Customer fails to pay

IntroductionLes bases d’Objective-C Autres concepts d’Objective-C Les nouveautés d’Objective-C 2.0Conclusions et perspectives

HéritagePolymorphisme et surchargeProtocoleCatégoriesRun-Time

42

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 juste la définition des méthodes.

Cette notion est reconnue en langage java par interface ( ne faut donc pas confondre avec la notion d'interface de objective C).

les protocoles sont déclarés dans un fichier d’en-tête ( .h)

Declaration de protocole @protocole Nom-protocole déclaration des méthodes@end

Page 43: objective C

IntroductionLes bases d’Objective-C Autres concepts d’Objective-C Les nouveautés d’Objective-C 2.0Conclusions et perspectives

HéritagePolymorphisme et surchargeProtocoleCatégoriesRun-Time

43

43

Une classe peut implémenter un nombre quelconque de protocoles

Son implémentation doit alors contenir une définition pour toutes les méthodes de tous les protocoles de la liste

implémentation de protocole par une classe @interface NomClass :Nom_super_Class <proto1,proto2….>//implémentation@end

Page 44: objective C

Customer fails to pay

IntroductionLes bases d’Objective-C Autres concepts d’Objective-C Les nouveautés d’Objective-C 2.0Conclusions et perspectives

HéritagePolymorphisme et surchargeProtocoleCatégoriesRun-Time

44

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. La déclaration et l’implémentation d’une catégorie sont similaires à celles d’une classe

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@ end

Page 45: objective C

Customer fails to pay

IntroductionLes bases d’Objective-C Autres concepts d’Objective-C Les nouveautés d’Objective-C 2.0Conclusions et perspectives

HéritagePolymorphisme et surchargeProtocoleCatégoriesRun-Time

45

45

Run-Time:

Le système d'exécution en Objective C est un élément essentiel de la langue.

Le run-time fournit le comportement de la liaison dynamique, ainsi que quelques autres fonctionnalités 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.

Page 46: objective C

46

Les nouveautés d’Objective-C 2.0

Garbage Collector @Properties,@ synthesize @optional,@required Dot Syntax

Page 47: objective C

Customer fails to pay

IntroductionLes bases d’Objective-C Autres concepts d’Objective-CLes nouveautés d’Objective-C 2.0Conclusions et perspectives

Garbage Collector @Properties,@ synthesize @optional,@required Dot Syntax

47

47

2007 : Sortie de Mac OS X v10.5 Leopard Mise à jours des standards de l’objective-C

Nouveautés: 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)

Page 48: objective C

Customer fails to pay

IntroductionLes bases d’Objective-C Autres concepts d’Objective-CLes nouveautés d’Objective-C 2.0Conclusions et perspectives

Garbage Collector@Properties,@ synthesize@optional,@requiredDot Syntax

48

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, et c’est donc une option à passer au compilateur

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é

Page 49: objective C

Customer fails to pay

IntroductionLes bases d’Objective-C Autres concepts d’Objective-CLes nouveautés d’Objective-C 2.0Conclusions et perspectives

Garbage Collector@Properties,@ synthesize@optional,@required Dot Syntax

49

49

@Properties,@ synthesize

La synthèse automatique des accesseurs et modificateurs se fera avec :

@ 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)

Page 50: objective C

Customer fails to pay

IntroductionLes bases d’Objective-C Autres concepts d’Objective-CLes nouveautés d’Objective-C 2.0Conclusions et perspectives

Garbage Collector@Properties,@ synthesize@optional,@required Dot Syntax

50

50

@Properties:

Par défaut, les propriétés crées: porteront respectivement le nom de nom/setNom

pour le getter et le setter

sont en lecture et écriture (readwrite)On peut modifier ces valeurs par défauts en ajoutant

des attributs aux propriétés

- (void) setMaChaine: (NSString *)chaine;- (NSString *) maChaine;

@property NSString * maChaine;

Page 51: objective C

Customer fails to pay

IntroductionLes bases d’Objective-C Autres concepts d’Objective-CLes nouveautés d’Objective-C 2.0Conclusions et perspectives

Garbage Collector@Properties,@ synthesize@optional,@required Dot Syntax

51

51

@Properties:

Declaration: @propery (writability, setter, atomicity) type name;

Writability :readonly, readwrite Setter semantic :assign, copy, retain Atomicity :atomic, nonatomic

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; @property (readonly) NSString * maChaine;

Page 52: objective C

Customer fails to pay

IntroductionLes bases d’Objective-C Autres concepts d’Objective-CLes nouveautés d’Objective-C 2.0Conclusions et perspectives

Garbage Collector@Properties,@ synthesize@optional,@required Dot Syntax

52

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 et @required permettent de distinguer des méthodes optionnelles des méthodes obligatoires.

Declaration de protocole @protocole Nom-protocole @optional - (void) methodeoptionnelle ; @required - (void) methodheObligatoire ;@end

Page 53: objective C

Customer fails to pay

IntroductionLes bases d’Objective-C Autres concepts d’Objective-CLes nouveautés d’Objective-C 2.0Conclusions et perspectives

Garbage Collector@Properties,@ synthesize@optional,@required Dot Syntax

53

53

Dot Syntax :

C’est une nouvelle syntaxe introduite avec Objective C 2.0 utilisant un point (.) au lieu des crochets habituels ([ ])

Une meilleur lisibilité du code lorsque plusieurs messages doivent être imbriqués

int age= [person age] ; int age=peron.age ;

[person setAge:newAge] ; peron.age = newAge;

[[person child] setAge:newAge] ; peron.child.age = newAge;

Page 54: objective C

54

Etude comparative d’Objective C

Objective C VS Java Autres Comparaisons

Page 55: objective C

IntroductionLes bases d’Objective-C Les concepts d’orienté objet dans Objective-CLes nouveautés d’Objective-C 2.0Conclusions et perspectives

Objective C VS Java Autres Comparaisons

55

55

Java Objective C

Langage Orienté Objet à la fois compilé et interprété (en langage intermédiaire)

Langage Orienté Objet compilé directement en langage machine

La syntaxe de Java est basé sur le langage C + +

est basé sur C, et les extensions OO sont comparables à ceux de Smalltalk

est typé statiquement, mais fournit les mécanismes de type-casting pour contourner certaines limitations du typage statique

est typé dynamiquement, mais fournit également le typage statique

Java Objective C

les API sont définies et mises en œuvre par les distributions Sun Java Development Kit

les API cohérentes sont définies par la spécification OpenStep.Ceci est mis en œuvre par GNUstep et Mac OS X Cocoa.

 utilise garbage collection pour la gestion de la mémoire

 utilise la gestion de la mémoire manuelle, le comptage de référence, et garbage collection comme des options

fournit des interfaces fournit des protocoles

Tas fixes Tas sont géré par l'OS et le système d'exécution

Page 56: objective C

IntroductionLes bases d’Objective-C Les concepts d’orienté objet dans Objective-CLes nouveautés d’Objective-C 2.0Conclusions et perspectives

Objective C VS Java Autres Comparaisons

56

56

Page 57: objective C

Merci pour votre Attention

57