Programmation Orientée Objets
Le cours de programmation orientée objet du semestre 7 utilise Java. Il part de l'encapsulation, des objets et des classes, passe à la substitution d'objets (polymorphisme et hiérarchies de classes), puis termine par deux mécanismes extérieurs au modèle objet, les exceptions et les types paramétrés. D'une séance à l'autre, les TD font évoluer une simulation de transports en commun (autobus et passagers). Le projet en reprend deux variantes de conception, l'une par héritage (est-un), l'autre par composition (a-un).
Notes de cours
Cours8 pages
- EncapsulationNotion d'encapsulation en programmation orientée objet : objet, classe et première description d'une encapsulation en Java.
- ObjetsObjets en Java : identité, instanciation et constructeurs, références, envoi de messages, masquage d'information et méthodes communes de la classe Object.
- ClassesClasses Java : catégories de classes, paquetages et classpath, portée des membres, variables et méthodes d'instance, surcharge, constructeurs et lien a-un.
- Variables et méthodes de classeMembres static en Java : variables et méthodes de classe, bloc statique, import static, la classe java.lang.Class et l'introspection.
- Substitution et polymorphismeSubstitution d'objets en Java : relation type / sous-type, lien est-un, construction interface, liaison statique et dynamique, polymorphisme.
- Hiérarchie de classesHéritage en Java : lien est-un, héritage de classes et d'interfaces, protected, chaînage des constructeurs, redéfinition, classes abstraites et méthodes default de Java 8.
- ExceptionsGestion d'erreurs par exceptions en Java : hiérarchie Throwable, throw, try/catch/finally, try-with-resources, clause throws et exceptions vérifiées.
- Types paramétrésGénéricité en Java : conteneurs et cohérence de type, classes et méthodes paramétrées, effacement de type, bornes, invariance, covariance et contravariance avec les jokers.
Ressources
Supports de l'enseignant2 documents
Sujets de TD8 documents
Code des TD11 documents
Rapports de TD7 documents
Projet1 document