Qu’est-ce que Objective C ?
Introduction et définition
L’environnement de développement
PROGRAMMATION ORIENTEE OBJET (POO)
Interface et implémenter : le modèle objet
L’envoi de message
Les Classes
Modularité
Dispositifs d’abstraction
Encapsulation, polymorphisme, héritage
Hiérarchiser les classes, définir des sous-classes
Usages
Notion de dynamisme :
– Typage dynamique
– Résolution de lien dynamique
– Chargement dynamique
Structurer les programmes
La connexion :
– Les points
– Intrinsèque
– Extrinsèque
Activer un réseau d’objets
Agrégation et décomposition
Modèles et Frameworks
La tâche de programmation et sa structuration
Collaborer
Les projets orientés objet
Conception à grande échelle
Interface et implémentation
Modularisation du travail
La conservation de l’interface simple
Le code validé
LE LANGAGE
Objets Objective C
Type générique id
Typage dynamique
Classes
Héritage des variables d’instance et des méthodes
Surcharge d’une méthode
Types de classe (abstraites)
Déterminer le type et l’exécution
Objets de type classe
Instanciation
Variables et objets de type classe (variables de classe)
Initialisation d’un objet de type classe
Méthodes de la classe racine
Code source : nom des classes
Déterminer une classe
L’interface, son importation et son rôle
Mention d’autres classes
Implémenter
Références et portée des variables d’instance
Le fonctionnement des messages
Méthodes et sélecteurs
Méthode : arguments et valeur de retour
Évolution du message durant l’exécution
Paradigme Cible-Action (Target-Action)
Éviter les erreurs durant l’envoi de messages
Arguments cachés : messages destinés à self et super
Définition de super et self
Extension de classes
Catégories
Ajout :
– De méthodes à une classe existante
– D’une classe
Emploi des catégories
La classe racine
Protocoles (quand les utiliser ?)
Déclaration d’interfaces
Validation des comportements statiques
Déterminer le type
Obtenir :
– L’adresse d’une méthode
– L’adresse de la structure de données d’un objet
L’ENVIRONNEMENT D’EXECUTION (RUNTIME)
Gérer la mémoire
Allocation des objets
Initialiser les objets
Objet retourné
Arguments
Coordonner les classes
Rétention d’objets
Gestion des références cycliques
Libération :
– D’objets partagés
– De variables d’instance
Marquage des objets pour une libération retardée
Propriétaire d’objet
Suivre le message (forwarding)
Suivi et héritage multiple
Objet substitut
Chargement dynamique : envoi de message distant (remote messaging)
Distribution des objets
Messages synchrones et asynchrones
Arguments de types pointeurs
Mandataires (proxies) et copies
Codage des types
Fonctions et structures de données de l’environnement d’exécution (Runtime)
Types prédéfinis
Directives :
– Du préprocesseur
– De compilation
Protocoles formels
Conventions lexicales
Le Foundation Framework sous MacOSX (Environnement Cocoa)
Présenter le SDK et l’environnement Cocoa Apple
Utiliser XCode pour la programmation sous MacOSX
Nombres, chaînes et énumérations
Travailler avec les fichiers
Gérer la mémoire
Copier les objets
Archivage