Nfp121 Programmation Avancée



Documents pareils
Une introduction à Java

Structure d un programme et Compilation Notions de classe et d objet Syntaxe

Programmer en JAVA. par Tama

PROGRAMMATION PAR OBJETS

Langage Java. Classe de première SI

Encapsulation. L'encapsulation consiste à rendre les membres d'un objet plus ou moins visibles pour les autres objets.

Projet de programmation (IK3) : TP n 1 Correction

Cours 1: Java et les objets

Java Licence Professionnelle CISII, Cours 2 : Classes et Objets

Auto-évaluation Programmation en Java

Exceptions. 1 Entrées/sorties. Objectif. Manipuler les exceptions ;

as Architecture des Systèmes d Information

Chapitre 10. Les interfaces Comparable et Comparator 1

Héritage presque multiple en Java (1/2)

Introduction à Java. Matthieu Herrb CNRS-LAAS. Mars

TD/TP PAC - Programmation n 3

TP1 : Initiation à Java et Eclipse

Package Java.util Classe générique

TD3: tableaux avancées, première classe et chaînes

Introduction au langage Java

LMI 2. Programmation Orientée Objet POO - Cours 9. Said Jabbour. jabbour@cril.univ-artois.fr

TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile

Chapitre VI- La validation de la composition.

Java Licence Professionnelle Cours 7 : Classes et méthodes abstraites

Pour signifier qu'une classe fille hérite d'une classe mère, on utilise le mot clé extends class fille extends mère

Apprendre Java en 154 minutes

Apprendre la Programmation Orientée Objet avec le langage Java (avec exercices pratiques et corrigés)

Programmation Par Objets

Programmation par les Objets en Java

Java c est quoi? Java pourquoi?

Java Licence Professionnelle CISII,

INITIATION AU LANGAGE JAVA

1 Définition d une classe en Java

Page 1 sur 5 TP3. Thèmes du TP : l la classe Object. l Vector<T> l tutorial Interfaces. l Stack<T>

Programmation Objet Java Correction

TD/TP PAC - Programmation n 3

Support de cours et TD Programmation Orientée Objet

Premiers Pas en Programmation Objet : les Classes et les Objets

2 e édition JAVA 5 et 6. Jérôme Bougeault. TSoft et Groupe Eyrolles, 2003, 2008, ISBN :

Programmation Réseau. Sécurité Java. UFR Informatique jeudi 4 avril 13

Tp 1 correction. Structures de données (IF2)

Généralités sur le Langage Java et éléments syntaxiques.

Threads. Threads. USTL routier 1

Classe Interne, Anonyme & Enumération

Java Licence professionnelle CISII,

Polycopié Cours Programmation Orientée Objet sous Java Programme : Filière SMI S5

ALGORITHMIQUE ET PROGRAMMATION ORIENTEE OBJET

Langage et Concepts de Programmation Objet. 1 Attributs et Méthodes d instance ou de classe. Travaux Dirigés no2

Design patterns. Design patterns - définition. Design patterns - avantages

Corrigés des premiers exercices sur les classes

Développement Logiciel

Langage et Concepts de ProgrammationOrientée-Objet 1 / 40

Environnements de développement (intégrés)

Gestion distribuée (par sockets) de banque en Java

ACTIVITÉ DE PROGRAMMATION

Présentation. Au programme. Fonctionnement. A l issue de ce module vous devriez...

Lambda! Rémi Forax Univ Paris-Est Marne-la-Vallée

Aide mémoire UML & Java 1ère partie : Introduction. marc.lemaire@u-cergy.fr

Initiation à la programmation orientée-objet avec le langage Java

Programmation en Java IUT GEII (MC-II1) 1

Cours intensif Java. 1er cours: de C à Java. Enrica DUCHI LIAFA, Paris 7. Septembre Enrica.Duchi@liafa.jussieu.fr

RN2-Programmation Orientée Objet - JAVA CH 1 Introduction à la POO et Java

Objets et Programmation. origine des langages orientés-objet

RAPPELS SUR LES METHODES HERITEES DE LA CLASSE RACINE Object ET LEUR SPECIALISATION (i.e. REDEFINITION)

Utilisation d objets : String et ArrayList

Applet pour visualiser les variables «automate» notifiées

Introduction : les processus. Introduction : les threads. Plan

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

Programmation Orientée Objet application au langage Java Version Novembre 2007

Chapitre V. Les classes : Object, Vector, etc.

JAVA TD0. Prise en main du langage Environnement de base JAVA 1

F. Barthélemy. 17 mai 2005

Java - la plateforme

Serveur d'archivage 2007 Installation et utilisation de la BD exist

Quelques patterns pour la persistance des objets avec DAO DAO. Principe de base. Utilité des DTOs. Le modèle de conception DTO (Data Transfer Object)

P r ob lé m a t iq u e d e la g é n é r icit é. Pr in cip e d e la g é n é r icit é e n Ja v a ( 1 /3 )

Langage à objets : JAVA (1)

Facultés Universitaires Notre-Dame de la Paix. Conception et Programmation Orientées- Object

Programmation Par Objets et Langage Java

OpenPaaS Le réseau social d'entreprise

La persistance des données dans les applications : DAO, JPA, Hibernate... COMPIL 2010 francois.jannin@inp-toulouse.fr 1

Java 1.5 : principales nouveautés

Pour plus de détails concernant le protocole TCP conférez vous à la présentation des protocoles Internet enseignée pendant.

Valeur C - RSM Conception d Applications Multimedia. Objectifs du cours: 1. Java en général

Flux de données Lecture/Ecriture Fichiers

4. Groupement d objets

JADE : Java Agent DEvelopment framework. Laboratoire IBISC & Départ. GEII Université & IUT d Evry nadia.abchiche@ibisc.univ-evry.

Introduction au langage de programmation Java

Dis papa, c est quoi un bus logiciel réparti?

Java Licence Professionnelle CISII,

Arbres binaires de recherche

TP, première séquence d exercices.

Programmation MacOSX / ios

Machines virtuelles fonctionnelles (suite) Compilation ML Java

Programmation Orientée Objet Java

Bases du langage. Historique Applications et applets Éléments de base du langage Classes et objets Les exceptions

Un ordonnanceur stupide

Corrigé des exercices sur les références

Synchro et Threads Java TM

Anne Tasso. Java. Le livre de. premier langage. 6 e édition. Groupe Eyrolles, 2000, 2002, 2005, 2006, 2008, 2010, ISBN :

Transcription:

Nfp121 Programmation Avancée Des Cours, des Exercices dirigés, des devoirs hebdomadaires Cours 1h30 + 0h30 Présentation devoirs Eds 1h30 centrés sur la réponse aux devoirs et compléments

L évolution de Java conséquences sur le cours Java 1.0 212 classes, 8 packages Java 1.1 504 classes, 23 packages Java 1.2 1520 classes, 59 packages Java 1.3 1842 classes, 76 packages Java 1.4 2991 classes, 135 packages Java 1.5 3562 classes, 166 packages

Java 2

Le programme du Cours 1. Structure des applications objets avec JAVA 2. Types primitifs, Aspects impératifs du langage 3. Exceptions, Interfaces, Types et Classes 4. Programmation évènementielle 5. Généricité et Collections: 6. Structures de données et Patterns de conception 7. Introspection et réflexivité en Java: 8. Programmation des Entrées/Sorties: 9. Java et XML, persistance: 10. Programmation par Contrat: 11. Validation des programmes: ESC/Java 12. UML2 et le langage OCL 13. Méthodes de développement et langage UML 14) Programmation concurrente

Programmation Orientée Objets et langage Java

L esprit de ce premier cours Introduire Java à travers la vision Objet En particulier dans son rapport à UML Lister les aspects Java correspondant aux concepts objets

Programmation procédurale Construire(Maison m){ creuser(fouilles); commander(béton) couler(fouilles); commander(parpaings); while(!fini(sous-sol)){poser(parpaings); commander(ourdis); while(. commander(béton); couler(plancher);...

Programmation non structurée Construire(Maison m){ creuser(fouilles); commander(béton) couler(fouilles); commander(parpaings); while(!fini(sous-sol)){poser(parpaings); commander(ourdis); while(. commander(béton); couler(plancher);... commander(béton b){ couler(fouilles f){ commander(parpaings p){ couler(plancher p) {

Structuration par les fonctions package commandes; public commander(béton){ commander(parpaings p){ commander(ourdis o) ){ commander(béton b) ){... package coulages; public couler(fouilles f){ couler(plancher p) ){... Visibilité Portée Protection package construction; import commandes.*; import coulages.couler; construire(maison m){ creuser(fouilles); commander(béton) couler(fouilles); commander(parpaings); while(!fini(sous-sol)){poser(parpaings);..

Prog. Structurée Descendante Construire(Maison m){ passerlescommandes(); construirelesoussol(); construireappartement(); couvrir();. creuser(); imbrication passerlescommandes(){ commander(béton b){ BEGIN END; couler(fouilles f){ commander(parpaings p){ commander(béton); commander(parpaings);...

Structuration par les objets Plan de la Maison Toiture Analyser les classes d objets du réel Cuisine Appartement Salle de bain Chambre Laverie Garage Sous-sol

Plan du Logiciel (modélisation) Maison Toiture Appartement Cuisine SalleDeBain Chambre SousSol Laverie Garage

Structurer les fonctions par les classes Toiture - commandermateriaux() + couvrir() Appartement Cuisine - commandermateriaux() - batirmurs() - realiserplafond() + amenager() + construire() SalleDeBains Chambre SousSol - commandermateriaux() - couler (Fouilles f) - batirmurs() - couler(plancher p) + amenager() + construire() Laverie Garage - commandermateriaux() - amenager() + construire()

Des Objets du réel aux classes Java public class Appartement {... private void commandermateriaux() {... private void batirmurs() {... private void realiserplafond() {... Appartement - commandermateriaux() - batirmurs() - realiserplafond() + amenager() + construire() public void amenager() {... public void construire() { commandermateriaux(); batirmurs(); realiserplafond(); Conventions sur les identificateurs de classe de variables

Attributs (propriétés des objets) Variables des instances Toiture - comm ande rmateriaux() + couvrir() A ppartem ent Cuis ine Mais on - hom e : Appartem ent - lebas : SouS ol # letoit : T oiture + cons truire() Constructeur? - co mm anderma terieu x() - ba tirm urs () - realise rplafon d() + am enager() + const ruire() SousSol - co mm anderma teriau x() - co ulerfouilles() - ba tirm urs () - co ulerpla ncher() + am enager() + const ruire() Laverie S alledeb ains Cham bre Garage - comm ande rm ateriaux() - amen ager() + cons truire()

Visibilité des attributs // Source file: Maison.java Maison - home : Appartement - lebas : SouSol # letoit : Toiture + Maison() public class Maison { private Appartement home; private SouSol lebas; protected Toiture letoit; public Maison() {... Constructeur des instances

Classe versus Objets (instances) Maison - home : Appartement - lebas : SouSol # letoit : Toiture chezmoi:maison + Maison() cheztoi:maison :Maison

Attributs de Classe Maison chezmoi:maison Variable de classe - home : Appartement - lebas : SouSol # letoit : Toiture $ nbremaisons : int + Maison() - home - lebas # letoit cheztoi:maison Variables d instances - home - lebas # letoit :Maison - home - lebas # letoit

Constructeur d objet Application - $ chezmoi : Maison + $ main(string[]args) Crée> Maison - home : Appartement - lebas : SouSol # letoit : Toiture $ nbremaisons : int + Maison() public class Application{ private static Maison chezmoi; {//variable de classe //programme principal public static void main(string[] args) {//méthode de classe chezmoi= new Maison();

Interdit! Application - chezmoi : Maison + $ main(string[]) Crée> Maison - home : Appartement - lebas : SouSol # letoit : Toiture $ nbremaisons : int + Maison() public class Application{ private Maison chezmoi; //variable d'instance public static void main(string[] args) {//méthode de classe chezmoi= new Maison(); interdit!!!!!!

Variables locales Application Crée> chezmoi Maison - home : Appartement - lebas : SouSol # letoit : Toiture $ nbremaisons : int + $ main(string[]) + Maison() public class Application{ public static void main(string[] args) { Maison chezmoi; //variable locale chezmoi= new Maison();

Méthode statique et d'instance Application - chezmoi : Maison Crée> chezmoi Maison - home : Appartement - lebas : SouSol # letoit : Toiture $ nbremaisons : int + $ main(string[]) + Maison() public class Application{ private Maison chezmoi; //variable d'instance public static void main(string[] args) {//méthode de classe new Application().ProgPrincipal(args); public void ProgPrincipal(String[] args) {//méthode d'instance chezmoi= new Maison();

Exemples de méthodes statiques Integer Long $ parseint (s : String) : int $ parselong (s : String) : long Float $ valueof (s : String) : Float floatvalue() : float String equals (anobject : Object) : boolean charat (index : int) : char length () : int indexof (ch : int) : int tochararray () : char[]

Appel des méthodes d instance // Source file: Maison.java Maison - home : Appartement - lebas : SouSol # letoit : Toiture $ nbremaisons : int = 0 + Maison() public class Maison { private Appartement home; private SouSol lebas; protected Toiture letoit; static int nbremaisons=0; public Maison() { Maison.nbreMaisons++; lebas= new SousSol(); home= new Appartement(); letoit= new Toiture(); lebas.amenager(); home.amenager(); letoit.couvrir();

Héritage A ppartem ent + amenager() Piece # dimension : Dimension + surface() Cuis ine S alledeb ains Cham bre SousSol Laverie - commandermateriaux() - coulerfouilles() - batirmurs() - coulerplancher() + amenager() Garage - commandermateriaux() + amenager()

Java et l héritage: la syntaxe public class Piece { protected Dimensions dimension = new Dimension(); public int surface(){ return dimension.larg * dimension.long ; public class Cuisine extends Piece{. public class Chambre extends Piece{

Typage et héritage public class Appartement { protected Piece[] piece; // nous reverrons les tableaux plus tard public Appartement(){ piece = {new Cuisine(), new salledebain(), new Chambre(), new Chambre() ; s=piece[1].surface(); s=piece[2].surface();

Initialisateur d attribut de classe public class Maison { private Appartement home; private SouSol lebas; protected Toiture letoit; static int nbremaisons; static { nbremaisons=0; //par défaut public Maison() { lebas= new SousSol(); home= new Appartement(); letoit= new Toiture(); lebas.amenager(); home.amenager(); letoit.couvrir();

Initialisateur d attributs public class Appartement { protected Piece[] piece; { // initialisateur d instance piece = {new Cuisine(), new salledebain(), new Chambre(), new Chambre() ; s=piece[1].surface(); s=piece[2].surface();

Constantes «blanches» public class Maison { private Appartement home; private SouSol lebas; protected Toiture letoit; static int nbremaisons; static final int maxmaisons; static { maxmaisons =100; public Maison() { lebas= new SousSol(); home= new Appartement(); letoit= new Toiture(); lebas.amenager(); home.amenager(); letoit.couvrir();

Accesseurs Piece # dimension : Dimensions + surface() : int + ge tdimens ion() : D imensions + setdimensions(dimensions) Dimensions + haut : int = 255 + larg : int + long : int Cuisin e SalleDeBains Cham bre Laverie Garage - commandermateriaux() + amenager()

«Pattern» Accesseurs public class Piece { protected Dimensions dimension = new Dimensions(); public void setdimension(dimensions dimension){this.dimension=dimension; public Dimensions getdimension(){return dimension; public int surface(){ return dimension.larg * dimension.long ; public class Cuisine extends Piece{. public class Chambre extends Piece{

Arbre d héritage Piece # dimension : Dimensions + n breprises : int + surface() : int + g etdimension() : Dimensions + setdim ensions(dim ensions) PieceEau + nbrepointeau : int Cuisine S alledeb ains Cham bre Laverie

spécialisation Piece # dimension : Dimensions + nbreprises : int + surface() : int + getdimension() : Dimensions + setdimensions(dimensions) + surfacelocative() : int PieceEau + nbrepointeau : int Cuisine SalleDeBains Chambre Laverie Méthode spécialisée + surfacelocative():int

Spécialisation java public class Piece { protected Dimensions dimension = new Dimension(); public setdimension(dimensions dimension){this.dimension=dimension; public Dimensions getdimension(){return dimension; public int surface(){ return dimension.larg * dimension.long ; public int surfacelocative(){ return surface() ;. public class PieceEau extends Piece{ public int nbrepointeau; public class Laverie extends PieceEau{ public int surfacelocative(){ return super.surfacelocative()/2 ;

Appel des méthodes spécialisées public class SousSol { protected Piece rangement; //c'est une pièce protected Garage garage = new Garage(); rangement = new Laverie(); //en fait cette pièce est une laverie int sl= lebas. rangement.surfacelocative(); int pe= lebas. rangement.nbrepointeau;

Constructeur par défaut public class PieceEau extends Piece{ public int nbrepointeau; public PieceEau(){ public class PieceEau extends Piece{ public int nbrepointeau; // le constructeur d arité nulle existe par défaut en l absence de tout autre

Constructeurs des super-classes public class PieceEau extends Piece{ public int nbrepointeau; public PieceEau(){ super(); public class PieceEau extends Piece{ public int nbrepointeau; public PieceEau(){ //appel de super() par défaut

surcharge public class PieceEau { public int nbrepointeau; public PieceEau(){ public PieceEau(int nbrepointeau){ this.nbrepointeau= nbrepointeau; public PieceEau(int nbrepointeau, Dimensions dimension){ this.dimension= dimension; this.nbrepointeau= nbrepointeau;

Appel de super() public class Piece { protected Dimensions dimension ; public Piece(Dimensions dimension ){ this.dimension = dimension;. public class PieceEau { public int nbrepointeau; public PieceEau(int nbrepointeau, Dimensions dimension){ super(dimension); //appel du constructeur de superclasse de même arité this.nbrepointeau= nbrepointeau;

Appel de this() public class PieceEau { public int nbrepointeau; public PieceEau(){ this(1); //appel du constructeur de même classe d arité 1 public PieceEau(int nbrepointeau){ this.nbrepointeau= nbrepointeau;

De l usage des packages java.applet java.util java.lang java.awt.peer java.net java.awt.image java.awt java.io

java.lang Packages et Classes Object equals (obj : Object) : boolean tostring () : String String String () : void String (value : char[]) : void charat (index : int) : char length () : int equals (anobject : Object) : boolean Integer $ MIN_VALUE : int $ MAX_VALUE : int Integer (value : int) : void Integer (s : String) : void equals (obj : Object) : boolean parseint (s : String) : int parseint (s : String, radix : int) : int System PrintStream out InputStream in PrintStream err Java.io err out PrintStream println (s : String) : void print (c : char) : void print (i : int) : void print (b : boolean) : void println () : void println (c : char) : void println (i : int) : void println (b : boolean) :