Programmation MacOSX / ios
|
|
- Edith Rochon
- il y a 8 ans
- Total affichages :
Transcription
1 Programmation MacOSX / ios Master Ingénierie Informatique Jean-Baptiste.Yunès@liafa.jussieu.fr
2 deux extensions objets de C : C++ (Stroustrup) Objective-C (Cox & Love) ajout de constructions à la Smalltalk au-dessus du C (C ObjC) dynamisme (dispatch, typage, chargement) langage de base pour NeXTstep, GNUstep, OpenStep, MacOSX/iOS 2
3 décrit dans : The Objective-C 2.0 Programming Language téléchargeable/consultable sur le site des développeurs Apple intégré à la documentation de xcode Pas de bibliothèque standard Objective-C utiliser celle du C de Foundation ou Cocoa
4 la version 2.0 du langage ne peut être employée sous une version inférieure à Mac OS X 10.5 (leopard) sinon se reporter à la version 1.0 consulter aussi : Object-Oriented Programming with Objective-C Objective-C 2.0 Runtime Reference Objective-C Release Notes Garbage Collection Programming Guide 4
5 gcc supporte Objective-C (en plus de C et C++) l extension.m pour les codes sources Objective-C est reconnue la bibliothèque objc est à employer pour l édition de liens ou objc_gc utiliser -Wno-import -fobjc-gc pour réaliser l édition de lien avec un framework : -framework Foundation ou alors (plus simple) employer xcode 5
6 Les mots-clés d @try (+@defs désormais sans usage) Objective-C @required 6
7 Il existe 5 types définis dans le runtime objective-c : SEL : le type des sélecteurs BOOL : YES et NO IMP : pointeurs vers fonctions C Class : pointeurs vers objets-classe, Nil id : pointeurs vers objets, permet de déclarer un type classe 7
8 id le type des identificateurs d objet on rappelle que dans le paradigme objet les objets sont caractérisés par......leur identificateur! 8
9 Les références d objets ont pour type soit un pointeur vers un des types de l objet (syntaxe C/C++) soit un type référence générique id Exemple : id unobjet; La constante prédéfinie nil (ou 0) représente une référence vers l objet vide/nul Il s agit essentiellement d un pointeur vers les données de l objet (void *) 9
10 Attention: le type id est un type générique (il ne nécessite pas de transtypage) Pour connaître le type d un objet on peut utiliser sa variable d instance isa qui désigne sa classe ce champ est présent dans tous les objets normalement constitués d Objective-C Objective-C est un langage typé dynamiquement (pour les objets) 10
11 Les messages objective-c la métaphore du paradigme objet est pertinente pour le langage on n appelle pas une méthode on envoie un message à un objet afin qu il réagisse en exécutant une méthode adéquate (i.e. un algorithme dynamique est utilisé pour déterminer la méthode correspondant au message) 11
12 syntaxe pour l envoi des messages : [receveur selecteur]; par exemple [dessin afficher]; l emploi du sélecteur afficher provoquera (probablement) l appel à la méthode afficher de l objet dessin 12
13 Il est très important de distinguer ici envoi de message appel de méthode L envoi d un message à un objet déclenche un mécanisme de recherche dans l objet receveur d une méthode correspondant au sélecteur afin de répondre au message 13
14 c est un mécanisme dynamique sur lequel le programmeur peut intervenir... le receveur et le sélecteur peuvent être tous deux des variables à la compilation ces choses peuvent être indéterminées 14
15 les méthodes peuvent recevoir un(des) argument(s), les messages permettant de spécifier des valeurs pour ces arguments, la forme syntaxique est : [pile empile:unevaleur]; ou encore : [grille getcase:12 :4]; les arguments peuvent être nommés comme dans : [grille getvaleurcolonne:12 ligne:4]; 15
16 les méthodes peuvent aussi renvoyer des valeurs, on peut donc récupérer la valeur renvoyée par la méthode : int v; v = [unepile depile]; il n est pas interdit d envoyer un message à l objet vide/nul l effet produit est de renvoyer 0 (ou une structure remplie de 0 dans certains cas) 16
17 objet-classe : la définition d une classe créé un objet (unique) la représentant un objet-classe est parfois appelé objet usine (factory object), c est un pattern (se reporter au «Design Patterns» de Gamma et al. 17
18 Conventions d écriture: UneClasse uneméthode unevariabledinstance _unevariableprivée _UneClassePrivée 18
19 Les classes données champs opérations méthodes 19
20 la déclaration d une classe Objective-C consiste à déclarer les données d instances et certaines des méthodes qui pourront être appelées (pas nécessaire de déclarer toutes les méthodes) : c est une interface attention interface objc = classe Java la définition consiste en l implémentation des méthodes 20
21 l interface d une classe de nom MaClasse est (habituellement) déclarée dans : MaClasse.h et son implémentation définie dans : MaClasse.m 21
22 la déclaration (de l interface) a la forme générale suivante MaClasse { // déclarations de données d instance } // déclarations de méthodes d instance ou de la déclaration d une méthode d instance doit être précédée du caractère - la déclaration d une méthode de classe doit être précédée du caractère + 22
23 @interface MaClasse { int unedonnée; // par } - (void)amethod; - (int)anothermethod:(int)x; - (int)setwitdh:(int)w type de l argument type de la valeur de retour nom de l argument sélecteur 23
24 une méthode comme : - (void)setwidth:(int)w andheight:(int)h; pourra être atteinte par envoi d un message comme : [o setwidth:13 andheight:89]; attention, si pas de type de retour déclaré le type par défaut est id déclaration anticipée (forward Voiture, Habitation; 24
25 attention, ne pas confondre les + et - avec ceux d UML... attention, il n y a pas de données de classe (pas de variables statiques de classe) il faut donc employer des variables globales ordinaires 25
26 l implémentation de la classe MaClasse a pour forme générale : #import MaClasse // définitions des 26
27 #import MaClasse - (void)amethod { // do something } - (int)anothermethod:(int)x { // think different } - (int)setwitdh:(int)w andheight:(int)h { // be inventive 27
28 attention la définition d une méthode doit suivre exactement le modèle de sa déclaration l objet courant s appelle self [self doit]; l objet courant vu comme objet typé par sa super-classe s appelle super [super init]; 28
29 l opérateur d accès aux variables d instance -> peut être utilisé, à condition que l objet en question soit du même type que celui du contexte de la méthode attention son usage est déconseillé autant que possible (voir plus loin), car il courtcircuite les accesseurs on peut utiliser des adjectifs qualifiant (64 bits seulement) 29
30 initialisation des variables globales par utilisation de la méthode de classe +(void)initialize; qui est appelée automatiquement : avant toute autre méthode à l endroit (au moment) de la première utilisation de la classe 30
31 attention, il est de la responsabilité du programmeur d assurer que la logique ne s exécute qu une seule fois + (void)initialize { } static BOOL initialized = NO; if (!initialized) { // perform initialization here... initialized = YES; attention, il ne faut pas appeler initialize pour la super classe 31
32 L héritage l héritage n est pas la technique objet la plus employée les classes des diverses API utilisent l héritage mais sont conçues de sorte qu il ne soit généralement pas nécessaire d utiliser l héritage c est la délégation qui est encouragée 32
33 si l on ne déclare pas de super classe, la classe est une classe racine (très fortement déconseillé) il est conseillé d utiliser systématiquement NSObject comme super classe. L import s effectue par : #import <Foundation/NSObject.h> ou mieux #import <Foundation/Foundation.h> ou #import <Foundation/Cocoa.h> 33
34 NS??? C est un préfixe hérité de NextStep, on en rencontrera un autre pour l iphone : UI l héritage depuis la classe NSObject permet de bénéficier de nombreux services... La variable d instance isa (protegée) est héritée par tous les objets le pattern KVC... 34
35 l héritage (toujours simple) s exprime sous la forme UneClasse : SaSuperClasse // attention, les données membres doivent utiliser des identificateurs distincts de ceux de la super-classe... 35
36 la liaison des méthodes est dynamique (aka méthodes virtuelles) comme en Java on appelle la méthode la plus spécifique (la plus basse dans la hiérarchie des types de l objet) qui correspond au sélecteur attention car c est bien le sélecteur qui compte pour sélectionner une méthode (donc pas les types des arguments...) 36
37 Les catégories elles constituent une alternative pratique à l héritage dont l emploi n est pas particulièrement recommandé 37
38 les catégories permettent d étendre les classes existantes c est un mécanisme d extension de classe (spécialisation conceptuelle) on rajoute des méthodes supplémentaires à une classe donnée ce mécanisme est souvent utilisé comme une alternative aux sous-classes 38
39 // MaClasse+Catégorie.h #import MaClasse (Catégorie) // déclaration de // MaClasse+Catégorie.m #import MaClasse (Catégorie) // définition de 39
40 il est important de noter que ce mécanisme étend bien la classe sans que l utilisateur de la classe en ait conscience l utilisateur de la classe originelle continue de la manipuler comme avant quand bien même elle a été modifiée noter aussi que ce mécanisme ne permet que d ajouter des méthodes, pas de données 40
41 Les protocoles ce terme provient du paradigme objet et désigne le protocole employé par les objets pour communiquer entre eux il s agit donc de décrire quels services les objets rendent-ils à leur environnement cela correspond au concept d interface Java les classes peuvent se déclarer conforme à un protocole objet donné 41
42 les protocoles formels // déclarations de méthodes il est possible de définir des obligations à remplir vis-à-vis de la les protocoles informels sont constitués des catégories 42
43 objet-protocole Protocol *prot adoption d un protocole par une Classe : SuperClasse < Protocole[,...] Classe ( Catégorie ) < Protocole[,...] > la méthode d instance ou de classe conformstoprotocol permet de déterminer si une classe ou une instace est conforme à un protocole donné 43
44 types conformes à un protocole : id <Imprimable> unimprimable; Image <Imprimable> *monimageimprimable; type <protocole> variable; hiérarchie de protocoles Protocole < Prot1, Prot2, > 44
45 L instanciation contrairement aux ambigüités des langages objets «mainstream», le processus d instanciation d objets nécessite d expliciter les deux étapes : l allocation (pattern factory) l initialisation (méthode d initialisation) l héritage depuis la classe NSObject permet de faciliter l instanciation 45
46 quelques méthodes à connaître... +alloc (tout à zéro sauf isa) : méthode de classe permettant d obtenir une instance +alloc est recherchée dans la hiérarchie et en remontant... Les classes sont des objets il existe différentes formes de méthodes d allocation, mais pour la stratégie standard d allocation la règle est que leur nom commence par alloc 46
47 quelques méthodes à connaître... -init (méthode d initialisation) la règle d écriture indique que si plusieurs méthodes d initialisation existent leur nom doit commencer par init -initwithstring -initwithcolor 47
48 l idiome d instanciation est donc d obtenir un objet par la factory puis de l initialiser, soit : id o = [[Classe alloc] init]; 48
49 l écriture d une méthode d initialisation nécessite quelques précautions l idiome standard est : - (id)initwithbidule:(bidule)b { self = [super init]; // le cas tordu des singletons... if (!self) return nil; // do the job return self; } 49
50 la notion de constructeur en objective-c est différente de celle des autres langages un constructeur est une méthode de classe renvoyant une instance initialisée et dont le nom, par convention, est préfixé par celui de la CompteEnBanque attention, une telle construction fournit normalement en objet en autorelease (voir plus loin) 50
51 La gestion mémoire la gestion mémoire en objective-c se décline de deux façon différentes : gestion explicite basée sur un comptage de référence Memory Management Programming Guide for Cocoa gestion implicité reposant sur un ramassemiettes (garbage collector) Garbage Collection Programming Guide 51
52 le compteur de référence peut être manipulé à travers les sélecteurs suivants : retain : qui incrémente le compteur d une unité dans le but de retenir l objet afin de l utiliser en toute tranquillité release : qui décrémente le compteur d une unité afin d exprimer le fait qu on souhaite ne plus utiliser l objet et le rendre; la méthode dealloc de l objet est automatiquement appelée si le compteur devient nul autorelease 52
53 pour utiliser correctement le compteur de référence la règle suivante doit être appliquée : tout responsable de l incrémentation du compteur doit en principe s occuper luimême de la décrémentation correspondante des incrémentations du compteur sont (normalement) automatiquement opérées par toute méthode ayant pour rôle d allouer un objet : alloc, copy, mutablecopy 53
54 autorelease? kesako? lorsque la règle précédente ne peut être appliquée, il faut utiliser autorelease par exemple dans une factory ou une variante autorelease est un release retardé : autorelease inscrit l objet dans la collection courante d objets à relâcher (autorelease pool), un objet de l autorelease pool recevra un message release lorsque le pool sera vidé (donc bien plus tard)... 54
55 L introspection disponible avec NSObject +(BOOL)instanceRespondToSelector:(SEL) -(BOOL)respondsToSelector:(SEL) -class -superclass -(BOOL)isKindOfClass:(Class) -(BOOL)isMemberOfClass:(Class) -(BOOL)conformsToProtocol:(Protocol) 55
56 l affichage à des fins de débogage s effectue habituellement à travers le mécanisme de traçage. La fonction à utiliser est : NSLog(NSString *format, ); dont le fonctionnement est identique à printf attention une constante littérale de NSString est Bonjour est une NSString, Bonjour est un char * %@ est à utiliser dans NSLog pour «imprimer» un objet via les services : +(NSString *)description; -(NSString *)description; 56
57 Les propriétés les propriétés objective-c permettent de spécifier le comportement de certains attributs de la classe en particulier le comportement des accesseurs vis-à-vis de la valeur on doit : déclarer les propriétés implémenter les propriétés 57
58 la déclaration a la forme suivante type name; où les attributs peuvent être : readonly/readwrite pour définir les opérations valides sur la donnée (défaut readwrite) getter=gettername pour attribuer un nom au getter (par défaut celui de la propriété) setter=settername pour attribuer un nom au setter (par défaut celui de la propriété préfixé par set) assign/retain/copy/strong/weak afin de définir la sémantique vis-à-vis de la gestion mémoire (défaut assign) nonatomic pour indiquer qu il n est pas nécessaire d obtenir l atomicité des opérations 58
59 la définition ou l implémentation s effectue dans l implémentation de la classe : peut être réalisée «à la main» synthétisé avec [syntheticname=]name; si l implémentation sera fournie dynamiquement à l exécution il faut utiliser name; 59
60 @interface MaClasse { int valeur; (readwrite) MaClasse *unobjet = [[MaClasse alloc] init]; [unobjet setvaleur:20]; int v = [unobjet valeur]; 60
61 lorsque les getters/setters existent il est possible d utiliser la syntaxe pointée pour accéder à la donnée à travers les getters/ setters objet.valeur = unevaleur; fait appel au setter! unevaleur = objet.valeur; fait appel au getter! la notation -> ne fait pas appel aux getters/ setters (elle est donc à déconseiller) 61
62 KVC (Key-Value Coding) une implémentation du pattern Associative Storage / Associative Array les objets peuvent être vus comme un container associatif dans lequel les données d instances peuvent y être acceédées par leur nom (comme chaîne de caractères) [objet valueforkey:@ champ ]; [objet setvalue:valeur forkey:@ champ ]; KVC (Key-Value Coding) fonctionne sans effort si : les objets descendent de NSObject les getters et setters de l attribut existent 62
63 Quelques compléments 63
64 comparaison d objets : -(BOOL)isEqual:(id)objet; -(unsigned)hash; chargement : +(void)load; +(void)initialize; 64
65 énumerations rapides (fast enumeration) for (type var in expression) {...} type var; for (var in expression) {...} expression conforme au protocole NSFastEnumeration énumérations plus efficaces qu avec NSEnumerator syntaxe allégée énumération protégée contre les exceptions 65
66 sélection de message générique : -(id)performselector:(sel); «capture» de méthodes non existantes : -(void)forwardinvocation:(nsinvocation *) -(NSMethodSignature*)methodSignatureForSelector: (SEL)selector -(void)doesnotrecognizedselector:(sel) SEL unselecteur [unobjet performselector:unselecteur]; 66
67 performselector ne peut êter utilisé que pour des méthodes à zéro, un ou deux arguments si l on désire générer un appel à une méthode quelconque il faut utiliser NSInvocation on dispose des fonctions utilitaires suivantes : const char* sel_getname(sel aselector); SEL sel_getuid(const char *str); 67
Programmer en JAVA. par Tama (tama@via.ecp.fr( tama@via.ecp.fr)
Programmer en JAVA par Tama (tama@via.ecp.fr( tama@via.ecp.fr) Plan 1. Présentation de Java 2. Les bases du langage 3. Concepts avancés 4. Documentation 5. Index des mots-clés 6. Les erreurs fréquentes
Plus en détailCours 1: Java et les objets
Ressources Les interface homme-machine et le langage Java DUT première année Henri Garreta, Faculté des Sciences (Luminy) Cyril Pain-Barre & Sébastien Nedjar, IUT d Aix-Marseille (Aix) Cours 1: infodoc.iut.univ-aix.fr/~ihm/
Plus en détailServeur d Applications Web : WebObjects
Serveur d Applications Web : WebObjects Nicolas Roard 29 avril 2004 Table des matières 1 Introduction 1 2 Historique 1 2.1 Implémentation WebObjects....... 2 2.2 Différences et manques?......... 3 3 Principes
Plus en détailManipulation 4 : Application de «Change».
Manipulation 4 : Application de «Change». Première partie : Cette manipulation a pour but d utiliser un service Web afin d obtenir les taux de change appliqués entre les différentes monnaies référencées
Plus en détailIntroduction à Java. Matthieu Herrb CNRS-LAAS. Mars 2014. http://homepages.laas.fr/matthieu/cours/java/java.pdf
Introduction à Java Matthieu Herrb CNRS-LAAS http://homepages.laas.fr/matthieu/cours/java/java.pdf Mars 2014 Plan 1 Concepts 2 Éléments du langage 3 Classes et objets 4 Packages 2/28 Histoire et motivations
Plus en détailas Architecture des Systèmes d Information
Plan Plan Programmation - Introduction - Nicolas Malandain March 14, 2005 Introduction à Java 1 Introduction Présentation Caractéristiques Le langage Java 2 Types et Variables Types simples Types complexes
Plus en détailLangage et Concepts de Programmation Objet. 1 Attributs et Méthodes d instance ou de classe. Travaux Dirigés no2
Langage et Concepts de Programmation Objet Travaux Dirigés no2 Pôle Informatique École Nationale Supérieure des Mines de St-Etienne Vous trouverez plus de détails sur les concepts abordés lors de ce TD
Plus en détailUne introduction à Java
Une introduction à Java IFT 287 (Semaine 1) UNIVERSITÉ DE SHERBROOKE 1 Java - Historique Développé par Sun Microsystems en 1994 Inventeur James Gosling (canadien!) Objectif langage sûr (fortement typé)
Plus en détailPour signifier qu'une classe fille hérite d'une classe mère, on utilise le mot clé extends class fille extends mère
L'héritage et le polymorphisme en Java Pour signifier qu'une classe fille hérite d'une classe mère, on utilise le mot clé extends class fille extends mère En java, toutes les classes sont dérivée de la
Plus en détailChapitre VI- La validation de la composition.
Chapitre VI- La validation de la composition. Objectifs du chapitre : Expliquer les conséquences de l utilisation de règles de typage souples dans SEP. Présenter le mécanisme de validation des connexions
Plus en détailJava Licence Professionnelle CISII, 2009-2010. Cours 2 : Classes et Objets
Licence Professionnelle CISII, 2009-2010 Cours 2 : Classes et Objets 1 Classes et Objets Objectifs des LOO : - Manipuler des objets - Découper les programmes suivant les types des objets manipulés - Regrouper
Plus en détailCréation d objet imbriqué sous PowerShell.
Création d objet imbriqué sous PowerShell. Par Laurent Dardenne, le 13/01/2014. Niveau Ce tutoriel aborde la création d objet composé, c est-à-dire que certains de ses membres seront eux-mêmes des PSObjects.
Plus en détailLangage et Concepts de ProgrammationOrientée-Objet 1 / 40
Déroulement du cours Introduction Concepts Java Remarques Langage et Concepts de Programmation Orientée-Objet Gauthier Picard École Nationale Supérieure des Mines de Saint-Étienne gauthier.picard@emse.fr
Plus en détailTP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile
TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile Dans ce TP, vous apprendrez à définir le type abstrait Pile, à le programmer en Java à l aide d une interface
Plus en détailCours intensif Java. 1er cours: de C à Java. Enrica DUCHI LIAFA, Paris 7. Septembre 2009. Enrica.Duchi@liafa.jussieu.fr
. Cours intensif Java 1er cours: de C à Java Septembre 2009 Enrica DUCHI LIAFA, Paris 7 Enrica.Duchi@liafa.jussieu.fr LANGAGES DE PROGRAMMATION Pour exécuter un algorithme sur un ordinateur il faut le
Plus en détailInitiation à JAVA et à la programmation objet. raphael.bolze@ens-lyon.fr
Initiation à JAVA et à la programmation objet raphael.bolze@ens-lyon.fr O b j e c t i f s Découvrir un langage de programmation objet. Découvrir l'environnement java Découvrir les concepts de la programmation
Plus en détailINITIATION AU LANGAGE C SUR PIC DE MICROSHIP
COURS PROGRAMMATION INITIATION AU LANGAGE C SUR MICROCONTROLEUR PIC page 1 / 7 INITIATION AU LANGAGE C SUR PIC DE MICROSHIP I. Historique du langage C 1972 : naissance du C dans les laboratoires BELL par
Plus en détailGénie Logiciel avec Ada. 4 février 2013
Génie Logiciel 4 février 2013 Plan I. Généralités II. Structures linéaires III. Exceptions IV. Structures arborescentes V. Dictionnaires I. Principes II. Notions propres à la POO I. Principes Chapitre
Plus en détailStructure d un programme et Compilation Notions de classe et d objet Syntaxe
Cours1 Structure d un programme et Compilation Notions de classe et d objet Syntaxe POO 1 Programmation Orientée Objet Un ensemble d objet qui communiquent Pourquoi POO Conception abstraction sur les types
Plus en détailProgrammation en Java IUT GEII (MC-II1) 1
Programmation en Java IUT GEII (MC-II1) 1 Christophe BLANC - Paul CHECCHIN IUT Montluçon Université Blaise Pascal Novembre 2009 Christophe BLANC - Paul CHECCHIN Programmation en Java IUT GEII (MC-II1)
Plus en détailTP1 : Initiation à Java et Eclipse
TP1 : Initiation à Java et Eclipse 1 TP1 : Initiation à Java et Eclipse Systèmes d Exploitation Avancés I. Objectifs du TP Ce TP est une introduction au langage Java. Il vous permettra de comprendre les
Plus en détailTraduction des Langages : Le Compilateur Micro Java
BARABZAN Jean-René OUAHAB Karim TUCITO David 2A IMA Traduction des Langages : Le Compilateur Micro Java µ Page 1 Introduction Le but de ce projet est d écrire en JAVA un compilateur Micro-Java générant
Plus en détailINITIATION AU LANGAGE JAVA
INITIATION AU LANGAGE JAVA I. Présentation 1.1 Historique : Au début des années 90, Sun travaillait sur un projet visant à concevoir des logiciels simples et performants exécutés dans des PDA (Personnal
Plus en détailFacultés Universitaires Notre-Dame de la Paix. Conception et Programmation Orientées- Object
Facultés Universitaires Notre-Dame de la Paix Conception et Programmation Orientées- Object 2008-2009 RÉSUMÉ PRATIQUE... 4 CLASSE OBJET... 4 NOTION D HÉRITAGE... 4 LE POLYMORPHISME... 5 LES CLASSES ABSTRAITES...
Plus en détailC++ COURS N 2 : CLASSES, DONNÉES ET FONCTIONS MEMBRES Classes et objets en C++ Membres d'une classe Spécification d'une classe Codage du comportement
C++ COURS N 2 : CLASSES, DONNÉES ET FONCTIONS MEMBRES Classes et objets en C++ Membres d'une classe Spécification d'une classe Codage du comportement des objets d'une classe Utilisation d'une classe Droit
Plus en détailGénéralités sur le Langage Java et éléments syntaxiques.
Généralités sur le Langage Java et éléments syntaxiques. Généralités sur le Langage Java et éléments syntaxiques....1 Introduction...1 Genéralité sur le langage Java....1 Syntaxe de base du Langage...
Plus en détailC++ Programmer. en langage. 8 e édition. Avec une intro aux design patterns et une annexe sur la norme C++11. Claude Delannoy
Claude Delannoy Programmer en langage C++ 8 e édition Avec une intro aux design patterns et une annexe sur la norme C++11 Groupe Eyrolles, 1993-2011. Groupe Eyrolles, 2014, pour la nouvelle présentation,
Plus en détailEncapsulation. L'encapsulation consiste à rendre les membres d'un objet plus ou moins visibles pour les autres objets.
Encapsulation L'encapsulation consiste à rendre les membres d'un objet plus ou moins visibles pour les autres objets. La visibilité dépend des membres : certains membres peuvent être visibles et d'autres
Plus en détail1. Structure d un programme C. 2. Commentaire: /*..texte */ On utilise aussi le commentaire du C++ qui est valable pour C: 3.
1. Structure d un programme C Un programme est un ensemble de fonctions. La fonction "main" constitue le point d entrée pour l exécution. Un exemple simple : #include int main() { printf ( this
Plus en détailLMI 2. Programmation Orientée Objet POO - Cours 9. Said Jabbour. jabbour@cril.univ-artois.fr www.cril.univ-artois.fr/~jabbour
LMI 2 Programmation Orientée Objet POO - Cours 9 Said Jabbour jabbour@cril.univ-artois.fr www.cril.univ-artois.fr/~jabbour CRIL UMR CNRS 8188 Faculté des Sciences - Univ. Artois Février 2011 Les collections
Plus en détailProgrammation Objet Java Correction
INSA - 4 AE 2007 2008 Durée : 1H00 Contrôle Programmation Objet Java Correction Consignes Tous les documents sont autorisés, mais ils seront peu utiles. Indiquez vos nom et prénom sur chaque feuille. Le
Plus en détailPremiers Pas en Programmation Objet : les Classes et les Objets
Chapitre 2 Premiers Pas en Programmation Objet : les Classes et les Objets Dans la première partie de ce cours, nous avons appris à manipuler des objets de type simple : entiers, doubles, caractères, booléens.
Plus en détailBases de programmation. Cours 5. Structurer les données
Bases de programmation. Cours 5. Structurer les données Pierre Boudes 1 er décembre 2014 This work is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike 3.0 License. Types char et
Plus en détailIntroduction à la programmation orientée objet, illustrée par le langage C++ Patrick Cégielski cegielski@u-pec.fr
Introduction à la programmation orientée objet, illustrée par le langage C++ Patrick Cégielski cegielski@u-pec.fr Mars 2002 Pour Irène et Marie Legal Notice Copyright c 2002 Patrick Cégielski Université
Plus en détailLa plate-forme DIMA. Master 1 IMA COLI23 - Université de La Rochelle
La plate-forme DIMA Master 1 IMA COLI23 - Université de La Rochelle DIMA Bref aperçu Qu'est-ce? Acronyme de «Développement et Implémentation de Systèmes Multi-Agents» Initié par Zahia Guessoum et Jean-Pierre
Plus en détailOCL - Object Constraint Language
OCL - Object Constraint Language Laëtitia Matignon laetitia.matignon@univ-lyon1.fr Département Informatique - Polytech Lyon Université Claude Bernard Lyon 1 2012-2013 Laëtitia Matignon SIMA - OCL - Object
Plus en détailTable des matières PRESENTATION DU LANGAGE DS2 ET DE SES APPLICATIONS. Introduction
PRESENTATION DU LANGAGE DS2 ET DE SES APPLICATIONS Depuis SAS 9.2 TS2M3, SAS propose un nouveau langage de programmation permettant de créer et gérer des tables SAS : le DS2 («Data Step 2»). Ces nouveautés
Plus en détail1 Définition d une classe en Java
Université Montpellier-II UFR des Sciences - Département Informatique Licence Informatique - Ingénierie Logicielle - Concepts et Outils de la modélisation et du développement de logiciel par et pour la
Plus en détailPatrons de Conception (Design Patterns)
Patrons de Conception (Design Patterns) Introduction 1 Motivation Il est difficile de développer des logiciels efficaces, robustes, extensibles et réutilisables Il est essentiel de comprendre les techniques
Plus en détailCours de Java. Sciences-U Lyon. Java - Introduction Java - Fondamentaux Java Avancé. http://www.rzo.free.fr
Cours de Java Sciences-U Lyon Java - Introduction Java - Fondamentaux Java Avancé http://www.rzo.free.fr Pierre PARREND 1 Octobre 2004 Sommaire Java Introduction Java Fondamentaux Histoire de Java Machine
Plus en détailAuto-évaluation Programmation en Java
Auto-évaluation Programmation en Java Document: f0883test.fm 22/01/2013 ABIS Training & Consulting P.O. Box 220 B-3000 Leuven Belgium TRAINING & CONSULTING INTRODUCTION AUTO-ÉVALUATION PROGRAMMATION EN
Plus en détail4. Groupement d objets
Conception objet en Java avec BlueJ une approche interactive 4. Groupement d objets Collections et itérateurs David J. Barnes, Michael Kölling version française: Patrice Moreaux Rédigé avec 1.0 Principaux
Plus en détailSolution A La Gestion Des Objets Java Pour Des Systèmes Embarqués
International Journal of Engineering Research and Development e-issn: 2278-067X, p-issn: 2278-800X, www.ijerd.com Volume 7, Issue 5 (June 2013), PP.99-103 Solution A La Gestion Des Objets Java Pour Des
Plus en détailModule.NET 3 Les Assemblys.NET
Module.NET Chapitre 3 Les Assemblys.NET 2011/2012 Page 1 sur 13 Contenu Cours... 3 3.1 - Définition d un assembly.net... 3 3.2 - Private assembly ou assembly privé.... 3 3.3 - Shared assembly ou assembly
Plus en détailChapitre 2. Classes et objets
Chapitre 2: Classes et Objets 1/10 Chapitre 2 Classes et objets Chapitre 2: Classes et Objets 2/10 Approche Orientée Objet Idée de base de A.O.O. repose sur l'observation de la façon dont nous procédons
Plus en détailUE Programmation Impérative Licence 2ème Année 2014 2015
UE Programmation Impérative Licence 2 ème Année 2014 2015 Informations pratiques Équipe Pédagogique Florence Cloppet Neilze Dorta Nicolas Loménie prenom.nom@mi.parisdescartes.fr 2 Programmation Impérative
Plus en détailUML (Diagramme de classes) Unified Modeling Language
UML (Diagramme de classes) Unified Modeling Language Sommaire Introduction Objectifs Diagramme de classes Classe (Nom, attribut, opération) Visibilité et portée des constituants d une classe Association
Plus en détailAide mémoire UML & Java 1ère partie : Introduction. marc.lemaire@u-cergy.fr
Aide mémoire UML & Java 1ère partie : Introduction marc.lemaire@u-cergy.fr 9 septembre 2014 1 2014 v1.11 Table des matières 1 Généralités 6 1.1 Notations utilisées.....................................
Plus en détailChapitre VIII. Les bases de données. Orientées Objet. Motivation
Chapitre VIII Motivation Le modèle relationnel connaît un très grand succès et s avère très adéquat pour les applications traditionnelles des bases de données (gestion) Les bases de données Orientées Objet
Plus en détailAlgorithmique et Programmation, IMA
Algorithmique et Programmation, IMA Cours 2 : C Premier Niveau / Algorithmique Université Lille 1 - Polytech Lille Notations, identificateurs Variables et Types de base Expressions Constantes Instructions
Plus en détailClasses et Objets en Ocaml.
Classes et Objets en Ocaml. Didier Rémy 2001-2002 http://cristal.inria.fr/ remy/mot/2/ http://www.enseignement.polytechnique.fr/profs/informatique/didier.remy/mot/2/ Cours Exercices Slide 1 1. Objets 2.
Plus en détailProgrammation Orientée Objet
Université de Pau et des Pays de l Adour Institut Universitaire de Technologie des Pays de l Adour Département Réseaux et Télécommunications 371, rue du Ruisseau BP 201 40004 Mont-de-Marsan Cedex tél :
Plus en détailTypes d applications pour la persistance. Outils de développement. Base de données préexistante? 3 modèles. Variantes avec passerelles
Types d applications pour la persistance Université de Nice Sophia-Antipolis Version 0.9 28/8/07 Richard Grin Toutes les applications n ont pas une complexité qui nécessite une architecture n- tiers Ce
Plus en détailJava Licence Professionnelle CISII, 2009-10
Java Licence Professionnelle CISII, 2009-10 Cours 4 : Programmation structurée (c) http://www.loria.fr/~tabbone/cours.html 1 Principe - Les méthodes sont structurées en blocs par les structures de la programmation
Plus en détailPrénom : Matricule : Sigle et titre du cours Groupe Trimestre INF1101 Algorithmes et structures de données Tous H2004. Loc Jeudi 29/4/2004
Questionnaire d'examen final INF1101 Sigle du cours Nom : Signature : Prénom : Matricule : Sigle et titre du cours Groupe Trimestre INF1101 Algorithmes et structures de données Tous H2004 Professeur(s)
Plus en détailQuelques patterns pour la persistance des objets avec DAO DAO. Principe de base. Utilité des DTOs. Le modèle de conception DTO (Data Transfer Object)
Quelques patterns pour la persistance des objets avec DAO Ce cours présente des modèles de conception utilisés pour effectuer la persistance des objets Université de Nice Sophia-Antipolis Version 1.4 30/8/07
Plus en détailConventions d écriture et outils de mise au point
Logiciel de base Première année par alternance Responsable : Christophe Rippert Christophe.Rippert@Grenoble-INP.fr Introduction Conventions d écriture et outils de mise au point On va utiliser dans cette
Plus en détailINTRODUCTION A JAVA. Fichier en langage machine Exécutable
INTRODUCTION A JAVA JAVA est un langage orienté-objet pur. Il ressemble beaucoup à C++ au niveau de la syntaxe. En revanche, ces deux langages sont très différents dans leur structure (organisation du
Plus en détailTp 1 correction. Structures de données (IF2)
Tp 1 correction Structures de données (IF2) Remarque générale : compilez et exécutez le code au-fur-et-à mesure de son écriture. Il est plus facile de corriger une petite portion de code délimitée que
Plus en détailCOMPARAISONDESLANGAGESC, C++, JAVA ET
REPUBLIQUE DU BENIN *******@******* MINISTERE DE L ENSEIGNEMENT SUPERIEUR ET DE LA RECHERCHE SCIENTIFIQUE(MESRS) *******@******* UNIVERSITE D ABOMEY CALAVI(UAC) *******@******* ECOLE POLYTECHNIQUE D ABPOMEY
Plus en détailTD3: tableaux avancées, première classe et chaînes
TD3: tableaux avancées, première classe et chaînes de caractères 1 Lestableaux 1.1 Élémentsthéoriques Déclaration des tableaux Pour la déclaration des tableaux, deux notations sont possibles. La première
Plus en détailRappel. Analyse de Données Structurées - Cours 12. Un langage avec des déclaration locales. Exemple d'un programme
Rappel Ralf Treinen Université Paris Diderot UFR Informatique Laboratoire Preuves, Programmes et Systèmes treinen@pps.univ-paris-diderot.fr 6 mai 2015 Jusqu'à maintenant : un petit langage de programmation
Plus en détailCours d initiation à la programmation en C++ Johann Cuenin
Cours d initiation à la programmation en C++ Johann Cuenin 11 octobre 2014 2 Table des matières 1 Introduction 5 2 Bases de la programmation en C++ 7 3 Les types composés 9 3.1 Les tableaux.............................
Plus en détailCours 1 : Introduction. Langages objets. but du module. contrôle des connaissances. Pourquoi Java? présentation du module. Présentation de Java
Langages objets Introduction M2 Pro CCI, Informatique Emmanuel Waller, LRI, Orsay présentation du module logistique 12 blocs de 4h + 1 bloc 2h = 50h 1h15 cours, 45mn exercices table, 2h TD machine page
Plus en détailApprendre la Programmation Orientée Objet avec le langage Java (avec exercices pratiques et corrigés)
Introduction à la POO 1. Histoire de la POO 9 2. Historique du 12 La conception orientée objet 1. Approche procédurale et décomposition fonctionnelle 13 2. La transition vers l'approche objet 14 3. Les
Plus en détailLicence Bio Informatique Année 2004-2005. Premiers pas. Exercice 1 Hello World parce qu il faut bien commencer par quelque chose...
Université Paris 7 Programmation Objet Licence Bio Informatique Année 2004-2005 TD n 1 - Correction Premiers pas Exercice 1 Hello World parce qu il faut bien commencer par quelque chose... 1. Enregistrez
Plus en détailLe langage C. Séance n 4
Université Paris-Sud 11 Institut de Formation des Ingénieurs Remise à niveau INFORMATIQUE Année 2007-2008 Travaux pratiques d informatique Le langage C Séance n 4 But : Vous devez maîtriser à la fin de
Plus en détail1/24. I passer d un problème exprimé en français à la réalisation d un. I expressions arithmétiques. I structures de contrôle (tests, boucles)
1/4 Objectif de ce cours /4 Objectifs de ce cours Introduction au langage C - Cours Girardot/Roelens Septembre 013 Du problème au programme I passer d un problème exprimé en français à la réalisation d
Plus en détailExceptions. 1 Entrées/sorties. Objectif. Manipuler les exceptions ;
CNAM NFP121 TP 10 19/11/2013 (Séance 5) Objectif Manipuler les exceptions ; 1 Entrées/sorties Exercice 1 : Lire un entier à partir du clavier Ajouter une méthode readint(string message) dans la classe
Plus en détailIN 102 - Cours 1. 1 Informatique, calculateurs. 2 Un premier programme en C
IN 102 - Cours 1 Qu on le veuille ou non, les systèmes informatisés sont désormais omniprésents. Même si ne vous destinez pas à l informatique, vous avez de très grandes chances d y être confrontés en
Plus en détailProgramme «Analyste Programmeur» Diplôme d état : «Développeur Informatique» Homologué au niveau III (Bac+2) (JO N 176 du 1 août 2003) (34 semaines)
Programme «Analyste Programmeur» Diplôme d état : «Développeur Informatique» Homologué au niveau III (Bac+2) (JO N 176 du 1 août 2003) (34 semaines) Module 1 : Programmer une application informatique Durée
Plus en détailDE L ALGORITHME AU PROGRAMME INTRO AU LANGAGE C 51
DE L ALGORITHME AU PROGRAMME INTRO AU LANGAGE C 51 PLAN DU COURS Introduction au langage C Notions de compilation Variables, types, constantes, tableaux, opérateurs Entrées sorties de base Structures de
Plus en détailRAPPELS SUR LES METHODES HERITEES DE LA CLASSE RACINE Object ET LEUR SPECIALISATION (i.e. REDEFINITION)
CLASSE RACINE Object ancêtre de toutes les classes RAPPELS SUR LES METHODES HERITEES DE LA CLASSE RACINE Object ET LEUR SPECIALISATION (i.e. REDEFINITION) définit donc des méthodes héritées par toutes
Plus en détailIntroduction au langage C
Introduction au langage C Cours 1: Opérations de base et premier programme Alexis Lechervy Alexis Lechervy (UNICAEN) Introduction au langage C 1 / 23 Les premiers pas Sommaire 1 Les premiers pas 2 Les
Plus en détailCours de Programmation Impérative: Zones de mémoires et pointeurs
Cours de Programmation Impérative: Zones de mémoires et pointeurs Julien David A101 - david@lipn.univ-paris13.fr Julien David (A101 - david@lipn.univ-paris13.fr) 1 / 1 Z`o n`e s `d`e m`é m`o i r`e Julien
Plus en détailAnne Tasso. Java. Le livre de. premier langage. 10 e édition. Avec 109 exercices corrigés. Groupe Eyrolles, 2000-2015, ISBN : 978-2-212-14154-2
Anne Tasso Java Le livre de premier langage 10 e édition Avec 109 exercices corrigés Groupe Eyrolles, 2000-2015, ISBN : 978-2-212-14154-2 Table des matières Avant-propos Organisation de l ouvrage..............................
Plus en détailUn ordonnanceur stupide
Un ordonnanceur simple Université Paris Sud L objet des exercices qui suivent est de créer un ordonanceur implantant l algorithme du tourniquet ( round-robin scheduler ). La technique utilisée pour élire
Plus en détailPlan du cours. Historique du langage http://www.oracle.com/technetwork/java/index.html. Nouveautés de Java 7
Université Lumière Lyon 2 Faculté de Sciences Economiques et Gestion KHARKIV National University of Economic Introduction au Langage Java Master Informatique 1 ère année Julien Velcin http://mediamining.univ-lyon2.fr/velcin
Plus en détailLa JVM. La machine virtuelle Java. La JVM. La JVM
La machine virtuelle Java Historique et rappels Organisation mémoire de la JVM Le garbage collector Le bytecode, la machine à pile. Les threads Suivi, tracé, optimisation d un programme Java JVM embarquées
Plus en détailCours 1 : La compilation
/38 Interprétation des programmes Cours 1 : La compilation Yann Régis-Gianas yrg@pps.univ-paris-diderot.fr PPS - Université Denis Diderot Paris 7 2/38 Qu est-ce que la compilation? Vous avez tous déjà
Plus en détailInfo0101 Intro. à l'algorithmique et à la programmation. Cours 3. Le langage Java
Info0101 Intro. à l'algorithmique et à la programmation Cours 3 Le langage Java Pierre Delisle, Cyril Rabat et Christophe Jaillet Université de Reims Champagne-Ardenne Département de Mathématiques et Informatique
Plus en détailGOL502 Industries de services
GOL502 Industries de services Conception d un service Partie IIb Version 2013 Introduction Conception d un service partie IIb Nous verrons dans ce chapitre Modélisation d un service; Langage de modélisation
Plus en détailClaude Delannoy. 3 e édition C++
Claude Delannoy 3 e édition Exercices Exercices C++ en en langage langage delc++ titre 4/07/07 15:19 Page 2 Exercices en langage C++ AUX EDITIONS EYROLLES Du même auteur C. Delannoy. Apprendre le C++.
Plus en détail4D v11 SQL Release 5 (11.5) ADDENDUM
ADDENDUM Bienvenue dans la release 5 de 4D v11 SQL. Ce document présente les nouveautés et modifications apportées à cette nouvelle version du programme. Prise en charge de nouvelles plates-formes La release
Plus en détailIRL : Simulation distribuée pour les systèmes embarqués
IRL : Simulation distribuée pour les systèmes embarqués Yassine El Khadiri, 2 ème année Ensimag, Grenoble INP Matthieu Moy, Verimag Denis Becker, Verimag 19 mai 2015 1 Table des matières 1 MPI et la sérialisation
Plus en détailGénéralités. javadoc. Format des commentaires. Format des commentaires. Caractères spéciaux. Insérer du code
Généralités javadoc Université de Nice - Sophia Antipolis Richard Grin Version 1.4.1 8/2/11 javadoc produit de la documentation en partant de commentaires particuliers insérés dans le code source des classes
Plus en détailProjet gestion d'objets dupliqués
Projet gestion d'objets dupliqués Daniel Hagimont Daniel.Hagimont@enseeiht.fr 1 Projet Service de gestion d'objets dupliqués Mise en cohérence lors de la prise d'un verrou sur un objet Pas de verrous imbriqués
Plus en détailNotions fondamentales du langage C# Version 1.0
Notions fondamentales du langage C# Version 1.0 Z 2 [Notions fondamentales du langage Csharp] [Date : 25/03/09] Sommaire 1 Tout ce qu il faut savoir pour bien commencer... 3 1.1 Qu est ce qu un langage
Plus en détailIntroduction à la programmation concurrente
Introduction à la programmation concurrente Moniteurs Yann Thoma Reconfigurable and Embedded Digital Systems Institute Haute Ecole d Ingénierie et de Gestion du Canton de Vaud This work is licensed under
Plus en détailCentre CPGE TSI - Safi 2010/2011. Algorithmique et programmation :
Algorithmique et programmation : STRUCTURES DE DONNÉES A. Structure et enregistrement 1) Définition et rôle des structures de données en programmation 1.1) Définition : En informatique, une structure de
Plus en détailLOG4430 : Architecture logicielle et conception avancée
LOG4430 : Architecture logicielle et conception avancée Yann-Gaël Guéhéneuc Cours 3 Bibliothèques et chargement Dynamique de composants Département de génie informatique et de génie logiciel École Polytechnique
Plus en détailPage 1 sur 5 TP3. Thèmes du TP : l la classe Object. l Vector<T> l tutorial Interfaces. l Stack<T>
Page 1 sur 5 TP3 Lectures préalables : l Java_II l tutorial Interfaces Thèmes du TP : l la classe Object l Vector l Stack Une pile d'objects Les éléments de la classe Pile sont maintenant des instances
Plus en détailRMI le langage Java XII-1 JMF
Remote Method Invocation (RMI) XII-1 Introduction RMI est un ensemble de classes permettant de manipuler des objets sur des machines distantes (objets distants) de manière similaire aux objets sur la machine
Plus en détailMachines virtuelles fonctionnelles (suite) Compilation ML Java
Machines virtuelles fonctionnelles (suite) Compilation ML Java Cours de Compilation Avancée (MI190) Benjamin Canou Université Pierre et Maire Curie Année 2011/2012 Semaine 3 Machines virtuelles fonctionnelles
Plus en détailPolymorphisme, la classe Object, les package et la visibilité en Java... 1
Polymorphisme, la classe Object, les package et la visibilité en Java. Polymorphisme, la classe Object, les package et la visibilité en Java.... 1 Polymorphisme.... 1 Le DownCast... 4 La Classe Object....
Plus en détailIFT2255 : Génie logiciel
IFT2255 : Génie logiciel Chapitre 6 - Analyse orientée objets Section 1. Introduction à UML Julie Vachon et Houari Sahraoui 6.1. Introduction à UML 1. Vers une approche orientée objet 2. Introduction ti
Plus en détailCours d Algorithmique-Programmation 2 e partie (IAP2): programmation 24 octobre 2007impérative 1 / 44 et. structures de données simples
Cours d Algorithmique-Programmation 2 e partie (IAP2): programmation impérative et structures de données simples Introduction au langage C Sandrine Blazy - 1ère année 24 octobre 2007 Cours d Algorithmique-Programmation
Plus en détailProgrammation Orientée Objet application au langage Java Version Novembre 2007
Programmation Orientée Objet application au langage Java Version Novembre 2007 Mickaël BARON - 2007 mailto:baron.mickael@gmail.com ou mailto:mickael.baron@serli.com SERLI informatique SERLI : www.serli.com
Plus en détailJADE : Java Agent DEvelopment framework. Laboratoire IBISC & Départ. GEII Université & IUT d Evry nadia.abchiche@ibisc.univ-evry.
: Java Agent DEvelopment framework Laboratoire IBISC & Départ. GEII Université & IUT d Evry nadia.abchiche@ibisc.univ-evry.fr Introduction à la plateforme JADE 1) Modèle d agent 2) Services 3) Norme FIPA
Plus en détailJava Licence Professionnelle 2009-2010. Cours 7 : Classes et méthodes abstraites
Java Licence Professionnelle 2009-2010 Cours 7 : Classes et méthodes abstraites 1 Java Classes et méthodes abstraites - Le mécanisme des classes abstraites permet de définir des comportements (méthodes)
Plus en détail