Philippe GENOUD UJF Janvier

Save this PDF as:
 WORD  PNG  TXT  JPG

Dimension: px
Commencer à balayer dès la page:

Download "Philippe GENOUD UJF Janvier 2015 1"

Transcription

1 TP n 8 : Formes Animées Philippe GENOUD UJF Janvier

2 Le problème Etendre l'application d'animation des chenilles pour afficher de nouveaux type de formes : chenilles, visages ronds, étoiles, polygone réguliers. Philippe GENOUD UJF Janvier

3 Généralisation adaptation de Dessin il faut que la zone de dessin puisse afficher des objets de type autre que Chenille. import javax.swing.jpanel; Il faut remplacer le type Chenillepar un type le plus général possible. Pour assurer le plus de généralité l'idéal est de définir une interface: IDessinable Quelles sont les opérations que doit définir cette interface (quels sont les échanges entre le dessin et un objet IDessinalbe?) public class Dessin extends JPanel{ /** * stocke la liste des Chenilles dans cette zone de dessin. */ private final List<Chenille> leschenilles = new ArrayList<>();... public void ajouterobjet(chenille ch) { if (!leschenilles.contains(ch)) { // la chenille n'est pas déjà dans la liste // on la rajoute a la liste des objets du dessin leschenilles.add(ch); ch.setdessin(this);... public void paintcomponent(graphics g) { super.paintcomponent(g); // dessiner les Objets que contient le dessin for (Chenille ch : leschenilles) { ch.dessiner(g); Philippe GENOUD UJF Janvier

4 Généralisation adaptation de Dessin il faut que la zone de dessin puisse afficher des objets de type autre que Chenille. import javax.swing.jpanel;. Idessinable dessiner(graphics g) setdessin(dessin d) Dessin getdessin() IDessinable.java import java.awt.graphics; public interface IDessinable { void dessiner(graphics g); void setdessin(dessin d); Dessin getdessin(); public class Dessin extends JPanel{ /** * stocke la liste des objets Chenilles à dessiner. dans cette zone de dessin. */ private final List<IDessinable> List<Chenille> leschenilles lesobjets = new ArrayList<>();... public void ajouterobjet(idessinable ajouterobjet(chenille ch) obj) { { if (!lesobjets.contains(obj)) (!leschenilles.contains(chenille { ch)) { // l'objet la chenille n'est n'est pas déjà pas déjà dans dans la liste la liste // on le la rajoute a la liste des objets du dessin lesobjets.add(obj); leschenilles.add(ch); obj.setdessin(this); ch.setdessin(this);... public void paintcomponent(graphics g) { super.paintcomponent(g); // dessiner les Objets que contient le dessin for (IDessinable (Chenille ch obj: : leschenilles) lesobjets) { obj.dessiner(g); ch.dessiner(g); Philippe GENOUD UJF Janvier

5 Généralisation adaptation de Chenille Refactoringde Chenillepour que l'application d'animation des chenilles puisse continuer à fonctionner.. Chenille ChenilleCouleur. IDessinable dessiner(graphics g) setdessin(dessin d) Dessin getdessin() import java.awt.graphics; public class Chenille { implements IDessinable { La classe Chenilleréalise (implémente) l'interface IDessinable... import java.awt.graphics; public class ChenilleCouleur extends Chenille {... Philippe GENOUD UJF Janvier

6 Formes étoiles à 5 branches insertion de nouveaux types d'objets int nbsommets = 5; // calcul des sommets du polygone régulier float deltaangle = 360f / nbsommets; float angle = -90; Point2D.Float[] sommets = new Point2D.Float[nbSommets]; for (int i = 0; i < nbsommets; i++) { sommets[i] = new Point2D.Float( (float) Math.cos(Math.toRadians(angle)) * r, (float) Math.sin(Math.toRadians(angle)) * r ); angle += deltaangle; 1) calcul des sommets du 2) construction du chemin polygone régulier reliant les points // construction du chemin reliant les points Path2D star = new Path2D.Float(); star.moveto(sommets[0].getx(), sommets[0].gety()); star.lineto(sommets[2].getx(), sommets[2].gety()); star.lineto(sommets[4].getx(), sommets[4].gety()); star.lineto(sommets[1].getx(), sommets[1].gety()); star.lineto(sommets[3].getx(), sommets[3].gety()); star.closepath(); // dessin à l'aide de l'objet Graphics Graphics2D g2 = (Graphics2D) g.create(); //dessin du contour g2.setcolor(couleurtrait); g2.setstroke(new BasicStroke(2.0f)); g2.translate(x, y); g2.draw(star); 3) Dessin du contour 4) Remplissage de la forme // remplissage g2.setpaint(couleurremplissage); g2.fill(star); Philippe GENOUD UJF Janvier

7 Formes insertion de nouveaux types d'objets polygones régulier (ex. pentagone) 1) calcul des sommets du 2) construction du chemin polygone régulier reliant les points int nbsommets = 5; // calcul des sommets du polygone régulier float deltaangle = 360f / nbsommets; float angle = -90; Point2D.Float[] sommets = new Point2D.Float[nbSommets]; for (int i = 0; i < nbsommets; i++) { sommets[i] = new Point2D.Float( (float) Math.cos(Math.toRadians(angle)) * r, (float) Math.sin(Math.toRadians(angle)) * r ); angle += deltaangle; // construction du chemin reliant les points Path2D path = new Path2D.Float(); path.moveto(sommets[0].getx(), sommets[0].gety()); for (int i = 1; i < nbsommets; i++) { path.lineto(sommets[i].getx(), sommets[i].gety()); path.closepath(); // dessin à l'aide de l'objet Graphics Graphics2D g2 = (Graphics2D) g.create(); //dessin du contour g2.setcolor(couleurtrait); g2.setstroke(new BasicStroke(2.0f)); g2.translate(x, y); g2.draw(star); 3) Dessin du contour 4) Remplissage de la forme // remplissage g2.setpaint(couleurremplissage); g2.fill(star); Philippe GENOUD UJF Janvier

8 Formes insertion de nouveaux types d'objets polygones réguliers et étoiles à 5 branches partagent de nombreuses caractéristiques : ces sont des formes inscrites dans un cercle, dont le contour a les sommets répartis régulièrement sur le cercle circonscrit. Comment partager ces caractéristiques au niveau du code? - En généralisant les concepts Etoile et Polygone Régulier classe Abstraite FormeCirculaireReguliere. IDessinable. Etoile. PolygoneRegulier Philippe GENOUD UJF Janvier

9 Formes insertion de nouveaux types d'objets La généralisation des concepts Etoileet PolygoneRegulieren FormeCirculairepeut être poussée plus loin pour offrir plus de généralité et faciliter des évolutions futures du logiciel classe Abstraite AbstractForme IDessinable classe Abstraite FormeCirculaire IForme classe Abstraite FormeCirculaireReguliere. Cercle cette classe sera utile pour le refactoring de Chenille. Etoile. PolygoneRegulier Philippe GENOUD UJF Janvier

10 Formes le type IForme C'est quoi une forme? Une forme est un objet dessinabledéfini par : un point de référence (qui permet de positionner la forme dans le plan) une boite englobante(rectangle englobant défini par son coin supérieur gauche, sa largeur et sa hauteur). IForme.java import java.awt.rectangle; public interface IForme extends IDessinable { public int getx(); public int gety(); public void placera(int x, int y); public Rectangle getbounds();. Idessinable dessiner(graphics g) setdessin(dessin d) Dessin getdessin() IForme getx() : int gety() : int placera(x : int, y : int) getbounds() : Rectangle Philippe GENOUD UJF Janvier

11 Formes la classe AbstractForme Visibilité des membres +public #protected -private (rien) : package AbstractForme. #x : int #y : int #dessin: Dessin #coultrait: Color #epaisseurtrait: float; #coulremplissage: Color #bounds:rectangle La classe est abstraite elle n'implémente pas la méthode dessiner(graphics g) #AbstractForme(x:int, y:int, float: ep, Color ctrait, Color cremp) #AbstractForme(x:int, y:int) +setdessin(dessin d) +Dessin getdessin() +getx() : int +gety() : int +placera(x : int, y : int) +getbounds() : Rectangle. IDessinable +dessiner(graphics g) +setdessin(dessin d) +Dessin getdessin() IForme +getx() : int +gety() : int +placera(x : int, y : int) +getbounds() : Rectangle Philippe GENOUD UJF Janvier

12 Formes la classe AbstractForme AbstractForme.java import java.awt.color; import java.awt.rectangle La classe est abstraite elle n'implémente pas la méthode dessiner(graphics g) public abstract AbstractForme implements IForme{ protected int x; protected int y; protected Dessin dessin; protected float epaisseur = 1.0f; protected Color coultrait = null; protected Color coulremp = null; protected Rectangle bounds; protected AbstractForme(int x, int y, float ep, Color ctrait, Color cremp) { this.x = x; this.y = y; this.epaisseur = ep; this.coultrait = ctrait; this.coulremp = cremp; protected AbstractForme(int x, int y) { this(x,y,1.0f,null,null); public Dessin getdessin() { return dessin; public void placera(int px, int py) { x = px; y = py; public int getx() { return x; public int gety() { return y; public Rectangle getbounds() { return bounds; // AbstractForme Philippe GENOUD UJF Janvier

13 Formes la classe FormeCirculaire FormeCirculaire.java import java.awt.color; import java.awt.rectangle; La classe est abstraite car toujours pas d'implémentation de la méthode dessiner(graphics g) AbstractForme public abstract class FormeCirculaire extends AbstractForme { /**le rayon du cercle dans lequel la forme est inscrite */ protected int r; public FormeCirculaire(int x, int y, int r, float ep, Color ctrait, Color cremp) super(x, y, ep, ctrait, cremp); this.r = r; bounds = new Rectangle(x - r, y - r, 2 * r + 1, 2 * r + 1); FormeCirculaire FormeCirculaireReguliere appelle constructeur de la super classe public FormeCirculaire(int x, int y, int r) { this(x, y, r, 1.f, null, null); public int getr() { return r; exécute le code de la méthode placera héritée public void placera(int px, int py) { super.placera(px, py); bounds.setlocation(px - r, py - r); Philippe GENOUD UJF Janvier

14 Formes FormeCirculaireReguliere.java import java.awt.basicstroke; import java.awt.color; import java.awt.graphics; import java.awt.graphics2d; import java.awt.geom.path2d; import java.awt.geom.point2d; la classe FormeCirculaireReguliere AbstractForme FormeCirculaire public abstract class FormeCirculaireReguliere extends FormeCirculaire { FormeCirculaireReguliere protected Path2D path; public FormeCirculaireReguliere(int x, int y, int r, int nbsommets, float epaisseurtrait, Color ctrait, Color cremp) { super(x, y, r, epaisseurtrait, ctrait, cremp); path = creerpath(nbsommets); //code permettant de créer le chemin délimitant // le contour de la forme private Path2D creerpath(int n) { // calculer les n sommets, le calcul est toujours le même // relier les sommets, cela dépendra de la forme... Philippe GENOUD UJF Janvier

15 ... Formes FormeCirculaireReguliere.java (suite) la classe FormeCirculaireReguliere AbstractForme private Path2D creerpath(int n) { // calculer les n sommets, le calcul est toujours le même // relier les sommets, cela dépendra de la forme return reliersommets(calculersommets(n)); private Point2D.Float[] calculersommets(int nbsommets) { float deltaangle = 360f / nbsommets; float angle = -90; Point2D.Float[] sommets = new Point2D.Float[nbSommets]; for (int i = 0; i < nbsommets; i++) { sommets[i] = new Point2D.Float((float) Math.cos(Math.toRadians(angle)) * r, (float) Math.sin(Math.toRadians(angle)) * r); angle += deltaangle; return sommets; FormeCirculaire FormeCirculaireReguliere protected abstract Path2D reliersommets(point2d.float[] sommets);... Méthode abstraite à redéfinir dans les sous-classes Philippe GENOUD UJF Janvier

16 Formes FormeCirculaireReguliere.java (fin)... la classe FormeCirculaireReguliere AbstractForme public final void dessiner(graphics g) { // on fait une copie du contexte graphique Graphics2D g2 = (Graphics2D) g.create(); // on applique la transformation de coordonnées por placer // le centre du cercle en (x, y) g2.translate(x, y); // on dessine le contour de la forme // avec la couleur de trait spécifiée ou la couleur courante // du contexte graphique sinon if (coultrait!= null) { g2.setcolor(coultrait); g2.setstroke(new BasicStroke(epaisseurTrait)); g2.draw(path); // on dessine l'intérieur de la forme if (coulremplissage!= null) { g2.setcolor(coulremplissage); g2.fill(path); FormeCirculaire FormeCirculaireReguliere Philippe GENOUD UJF Janvier

17 Formes les classes PolygoneRegulier et Etoile FormeCirculaire FormeCirculaireReguliere Etoile.java import java.awt.color; import java.awt.geom.path2d; import java.awt.geom.point2d; public class Etoile extends FormeCirculaireReguliere { public Etoile(int x, int y, int r, float epaisseurtrait, Color couleur, Color couleurtrait) { super(x, y, r, 5, epaisseurtrait, couleur, couleurtrait); public Etoile(int x, int y, int r) { this(x, y, r, 5, null, null); protected Path2D reliersommets(point2d.float[] sommets) { Path2D star = new Path2D.Float(); star.moveto(sommets[0].getx(), sommets[0].gety()); star.lineto(sommets[2].getx(), sommets[2].gety()); star.lineto(sommets[4].getx(), sommets[4].gety()); star.lineto(sommets[1].getx(), sommets[1].gety()); star.lineto(sommets[3].getx(), sommets[3].gety()); star.closepath(); return star; PolygoneRegulier.java import java.awt.color; import java.awt.geom.path2d; import java.awt.geom.point2d; Etoile PolygoneRegulier public class PolygoneRegulier extends FormeCirculaireReguliere { public PolygoneRegulier(int x, int y, int r, int nbsommets, float epaisseurtrait, Color couleur, Color couleurtrait) { super(x, y, r, nbsommets, epaisseurtrait, couleur, couleurtrait); public PolygoneRegulier(int x, int y, int r, int nbsommets) { this(x, y, r, nbsommets, 1.0f, null, null); protected Path2D reliersommets(point2d.float[] sommets) { Path2D p = new Path2D.Float(); p.moveto(sommets[0].getx(), sommets[0].gety()); for (int i = 1; i < sommets.length; i++) { p.lineto(sommets[i].getx(), sommets[i].gety()); p.closepath(); return p; Philippe GENOUD UJF Janvier

18 Formes Le programme principal public class AnimationFormes { public static void main(string[] args) { // création de la fenêtre de l'application JFrame lafenetre = new JFrame("Chenilles, etc."); lafenetre.setdefaultcloseoperation(windowconstants.exit_on_close); lafenetre.setsize(512, 512); // création de la zône de dessin dans la fenêtre Dessin d = new Dessin(); lafenetre.getcontentpane().add(d); // affiche la fenêtre lafenetre.setvisible(true); // les objets fixes de la zone de dessin d.ajouterobjet(new Etoile(350, 100, 50, 8.f, Color.RED, Color.YELLOW)); d.ajouterobjet(new PolygoneRegulier(130, 240, 40, 5, 4.0f, Color.DARK_GRAY, null)); d.ajouterobjet(new Cercle(400, 430, 30, 3.0f, Color.BLUE, Color.GRAY)); // la chenille animée Chenille c1 = new Chenille(d,10,10); d.ajouterobjet(c1); while (true) { // la zone de dessin se réaffiche d.repaint(); // un temps de pause pour avoir le temps de voir le nouveau dessin d.pause(50); // fait réaliser à la chenille un déplacement élémentaire c1.deplacer(); // AnimationFormes Philippe GENOUD UJF Janvier

19 Animation animer certaines formes Etoile animée d'un mouvement circulaire Hexagone fixe Etoile animée d'un mouvement avec rebonds Octogone animé d'un mouvement circulaire Hexagone fixe Etoile fixe Philippe GENOUD UJF Janvier

20 Animation animer certaines formes En étendant les classes de formes? AbstractForme Idessinable FormeCirculaire IForme FormeCirculaireReguliere. Cercle CercleMvtCirc CercleMvtRebond EtoileMvtCirc Etoile EtoileMvtRebond. PolygoneRegulier Duplication de code Comportement d'animation non extensible et non modifiable PolyRegMvtCirc PolyRegMvtRebond Philippe GENOUD UJF Janvier

21 Animation animer certaines formes Mais d'abord, de manière plus générale quelles doivent être les caractéristiques d'un objet que l'on pourra animer? on peut le dessiner on peut lui faire faire un déplacement élémentaire Chenille. IDessinable dessiner(graphics g) setdessin(dessin d) Dessin getdessin() IAnimable deplacer() IForme getx() : int gety() : int placera(x : int, y : int) Rectangle getbounds() Philippe GENOUD UJF Janvier

22 Animation animer certaines formes idée : confier l'animation à un objet tiers : un animateur une forme animée c'est : un objet "animable" une forme la géométrie de la forme animée est déléguée à un objet Iforme l'animation est déléguée à un objet IAnimator FormeAnimee IDessinable -animateur 1 IAnimable IForme 1 -forme IAnimator deplacer(iforme f) CircularAnimator ReboundAnimator Philippe GENOUD UJF Janvier

23 Animation la classe FormeAnimee FormeAnimee.java la classe implémente les deux interfaces public class FormeAnimee implements IForme, IAnimable { protected IForme forme; protected IFormeAnimator animator; public FormeAnimee(IForme forme, IFormeAnimator animator) { this.forme = forme; this.animator = animator; public void deplacer() { animator.deplacer(forme); délégation de l'animation à l'animateur public void dessiner(graphics g) { forme.dessiner(g); public int getx() { return forme.getx(); public int gety() { return forme.gety(); public void placera(int x, int y) { forme.placera(x, y); public Rectangle getbounds() { return forme.getbounds(); public void setdessin(dessin d) { this.forme.setdessin(d); public Dessin getdessin() { return this.forme.getdessin(); Philippe GENOUD UJF Janvier

24 Animation CircularAnimator.java La classe CircularAnimator IAnimator deplacer(iforme f) public class CircularAnimator implements IFormeAnimator { private int rayon; private int xc; private int yc; private double angle; private double deltaangle; public CircularAnimator(int xc, int yc, int r, double angle,double deltaangle ) { this.deltaangle = deltaangle; this.angle = angle; this.rayon = r; this.xc = xc; this.yc = yc; public void deplacer(iforme f) { angle += deltaangle; double angleradians = Math.toRadians(angle); f.placera((int) (xc + rayon * Math.cos(angleRadians)), (int) (xc + rayon * Math.sin(angleRadians))); CircularAnimator ReboundAnimator (xc,yc) rayon deltaangle angle Philippe GENOUD UJF Janvier

25 Animation La classe ReboundAnimator CircularAnimator.java IAnimator deplacer(iforme f) public class ReboundAnimator implements IFormeAnimator { private int dx; private int dy; CircularAnimator ReboundAnimator public ReboundAnimator(int dx, int dy) { this.dx = dx; this.dy = dy; boite englobante de la forme dx dy public void deplacer(iforme f) { Dessin d = f.getdessin(); if (f.getbounds().getx() < 0 f.getbounds().getx() + f.getbounds().getwidth() > d.getlargeur()) { // le bord gauche ou le bord droit est atteint dx = -dx; if (f.getbounds().gety() < 0 f.getbounds().gety() + f.getbounds().getheight() > d.gethauteur()) { // le bord haut ou le bord bas est atteint dy = -dy f.placera(f.getx() + dx, f.gety() + dy); rebond lorsque la boite englobante sort de la zone de dessin Philippe GENOUD UJF Janvier

26 Animation public class AnimationFormes1 { Le programme principal public static void main(string[] args) { // création de la fenêtre de l'application JFrame lafenetre = new JFrame("Chenilles, etc."); lafenetre.setdefaultcloseoperation(windowconstants.exit_on_close); lafenetre.setsize(512, 512); // création de la zône de dessin dans la fenêtre Dessin d = new Dessin(); lafenetre.getcontentpane().add(d); // affiche la fenêtre lafenetre.setvisible(true); // les objets fixes de la zone de dessin d.ajouterobjet(new Cercle(400, 430, 30, 3.0f, Color.BLUE, Color.GRAY)); d.ajouterobjet(new Etoile(350, 100, 50, 8.f, Color.RED, Color.YELLOW)); d.ajouterobjet(new PolygoneRegulier(130, 240, 40, 5, 4.0f, Color.DARK_GRAY, null)); // la chenille animée Chenille c1 = new Chenille(d,10,10); d.ajouterobjet(c1); while (true) { // la zone de dessin se réaffiche d.repaint(); ); // un temps de pause pour avoir le temps de voir le nouveau dessin d.pause(50); // fait réaliser à la chenille un déplacement élémentaire new ReboundAnimator(5, 5) c1.deplacer(); // AnimationFormes // les formes animées FormeAnimee etoile = new FormeAnimee( new Etoile(350, 100, 50, 8.f, Color.RED, Color.YELLOW), new CircularAnimator(250, 250, 180, 0, 5) FormeAnimee pentagone = new FormeAnimee( new PolygoneRegulier(130, 240, 40, 5, 4.0f, Color.DARK_GRAY, null), ); d.ajouterobjet(etoile); d.ajouterobjet(pentagone); etoile.deplacer(); pentagone.deplacer(); Philippe GENOUD UJF Janvier

27 Animation faire faire l'animation à Dessin De la même manière que le dessin se charge de redessiner tous les objets dessinablesqu'ils contient, ne pourrait-il pas s'occuper également de déplacer tous les objets animables? import javax.swing.jpanel; import java.util.list; public class Dessin extends JPanel{ private final List<IDessinable> lesobjets = new ArrayList<>();... public void paintcomponent(graphics g) { super.paintcomponent(g); // dessiner les Objets que contient le dessin for (IDessinable obj: lesobjets) { obj.dessiner(g); public void deplaceanimables() { // depalcer les Objets Animables que contient le dessin for (IDessinable objdessinable : lesobjets) { if (objdessinable instanceof IAnimable) { ((IAnimable) objdessinable).deplacer(); Philippe GENOUD UJF Janvier

28 Animation public class AnimationFormes3 { Le programme principal public static void main(string[] args) { // création de la fenêtre de l'application... // les formes animées FormeAnimee etoile = new FormeAnimee( new Etoile(350, 100, 50, 8.f, Color.RED, Color.YELLOW), new CircularAnimator(250, 250, 180, 0, 5) ); FormeAnimee pentagone = new FormeAnimee( new PolygoneRegulier(130, 240, 40, 5, 4.0f, Color.DARK_GRAY, null), new ReboundAnimator(5, 5) ); d.ajouterobjet(etoile); d.ajouterobjet(pentagone); Chenille c1 = new Chenille(d,10,10); d.ajouterobjet(c1); while (true) { // la zone de dessin se réaffiche d.repaint(); )); // un temps de pause pour avoir le temps de voir le nouveau dessin d.pause(50); d.ajouterobjet(new FormeAnimee( // fait réaliser un deplacement élémentaires aux objets c1.deplacer(); etoile.deplacer(); pentagone.deplacer(); // AnimationFormes d.ajouterobjet(new FormeAnimee( new Etoile(350, 100, 50, 8.f, Color.RED, Color.YELLOW), new CircularAnimator(250, 250, 180, 0, 5) new PolygoneRegulier(130, 240, 40, 5, 4.0f, Color.DARK_GRAY, null), new ReboundAnimator(5, 5) )); d.ajouterobjet(new Chenille(d, 10, 10)); d.deplaceanimables(); Philippe GENOUD UJF Janvier

29 Animation Organisation du code Packages applications exécutables classes et interfaces concernant l'animation classes concernant les chenilles classes et interfaces concernant le dessin classes et interfaces concernant les formes Philippe GENOUD UJF Janvier

30 Exercices implémenter la classe Cercle Refactorer la classe Chenille de manière à utiliser des formes Cercle pour modéliser la tête et les anneaux "externaliser" l'animation dans un animateur : CapAnimator autoriser le choix de l'animateur pour une chenille Ecrire un programme qui anime deux chenilles, une avec un CapAnimator, l'autre avec un CircularAnimator une étoile avec un CapAnimator un hexagone avec un ReboundAnimator Intégrer les visages animés à l'application Philippe GENOUD UJF Janvier

TP n 9 : Formes Animées

TP n 9 : Formes Animées TP n 9 : Formes Animées Philippe Genoud dernière mise à jour : 13/01/2017 Philippe GENOUD UGA Janvier 2017 1 Le problème Etendre l'application d'animation des chenilles pour afficher de nouveaux type de

Plus en détail

TP n 5 - Correction. IUP2 Année 2004-2005

TP n 5 - Correction. IUP2 Année 2004-2005 Université Paris 7 Programmation objet IUP2 Année 2004-2005 TP n 5 - Correction Héritage Exercice 1 Le cas d école modifié 1. Ecrivez une classe Figure. Cette classe a des attributs privés abcisse et ordonnée,

Plus en détail

Licence Bio Info Année 2004-2005. Un modèle de conception pour les applications avec interfaces graphiques Le Modèle-Vue-Contrôleur

Licence Bio Info Année 2004-2005. Un modèle de conception pour les applications avec interfaces graphiques Le Modèle-Vue-Contrôleur Université Paris 7 Programmation objet Licence Bio Info Année 2004-2005 TD n 7 - Correction Un modèle de conception pour les applications avec interfaces graphiques Le Modèle-Vue-Contrôleur Le TD d aujourd

Plus en détail

E2I- 4 (option HF) CONTRÔLE JAVA 1

E2I- 4 (option HF) CONTRÔLE JAVA 1 E2I- 4 (option HF) CONTRÔLE JAVA 1 Corrigé 1. Les données de type char sont codées en java comme : un octet (code ASCII) deux octets (code ASCII) un octet (code unicode) X deux octets (code unicode) un

Plus en détail

Cours 5 : Le dessin. F. Gayral 1

Cours 5 : Le dessin. F. Gayral 1 Cours 5 : Le dessin - Comment les composants s'affichent? - La méthode paint - La méthode paintcomponent - La méthode repaint - La classe Graphics - La classe Graphics2D F. Gayral 1 Affichage déclenché

Plus en détail

Licence Informatique 2ème année

Licence Informatique 2ème année Licence Informatique 2ème année Programmation Objet 1 Examen de seconde session 23/06/2014 2h Les notes de cours, TD et TP sont autorisées. Exercice 0 (2 points) Le code suivant compile t-il? Si non, indiquez

Plus en détail

Java et Objet. Amélie Lambert 2014-2015. Amélie Lambert 2014-2015 1 / 82

Java et Objet. Amélie Lambert 2014-2015. Amélie Lambert 2014-2015 1 / 82 Java et Objet Amélie Lambert 2014-2015 Amélie Lambert 2014-2015 1 / 82 Chapitre 5 Programmation orientée objet Amélie Lambert 2014-2015 2 / 82 Plan du cours Analyse, conception et programmation Orientée

Plus en détail

La taille est dynamique: dès qu un tableau vectoriel est plein, sa taille est doublée, triplée, etc. automatiquement Les cases sont de type Object

La taille est dynamique: dès qu un tableau vectoriel est plein, sa taille est doublée, triplée, etc. automatiquement Les cases sont de type Object Cours 6 Package Java.Util Classe générique 1 Classe Vector La taille est dynamique: dès qu un tableau vectoriel est plein, sa taille est doublée, triplée, etc. automatiquement Les cases sont de type Object

Plus en détail

Java Licence professionnelle CISII, 2009-2010

Java Licence professionnelle CISII, 2009-2010 Java Licence professionnelle CISII, 2009-2010 Cours 5 : l héritage Cours inspiré des cours de Richard Grin, Antoine Tabbone et Hazel Everett Héritage Introduction - Pour raccourcir les temps d écriture

Plus en détail

Redessiner. Chapitre 9. Dessiner avec Java. Mé thodes repaint. Plan. paint vs paintcomponent. Introduction. paintcomponent. Dessiner dans un composant

Redessiner. Chapitre 9. Dessiner avec Java. Mé thodes repaint. Plan. paint vs paintcomponent. Introduction. paintcomponent. Dessiner dans un composant Redessiner Chapitre 9 Dessiner avec Java Les méthodes précédentes sont appelées : lorsque le systè me le juge nécessaire le composant est rendu visible le composant a changé de taille un autre composant

Plus en détail

11. DESSINER UN POLYGONE

11. DESSINER UN POLYGONE A. But de la séance Université de Nice - Sophia Antipolis Faculté des Sciences DEUG MIAS MP1 Programmation 2000-01 11. DESSINER UN POLYGONE Dans ce TP nous allons rassembler les résultats des deux TP précédents

Plus en détail

TP 5 & 6 : Graphique

TP 5 & 6 : Graphique L1-S1-IMP Informatique Année 2010-2011 Semestre 1 TP 5 & 6 : Graphique 1 Bases 1.1 Bibliothèque graphique Pour dessiner des figures géométriques (et autres), Caml offre une bibliothèque de fonctions graphiques.

Plus en détail

Programmation objet en Java.

Programmation objet en Java. Programmation objet en Java. Didier Rémy 2001-2002 http://cristal.inria.fr/ remy/mot/7/ http://www.enseignement.polytechnique.fr/profs/informatique/didier.remy/mot/7/ Cours Exercices Slide 1 1. Classes,

Plus en détail

TP2 J2ME MIDP IHM bas niveau

TP2 J2ME MIDP IHM bas niveau TP2 J2ME MIDP IHM bas niveau 1 ) Ecrire une MIDlet qui présente un GoBan c'est à dire un plateau de jeu pour jouer au Go. La couleur de fond du GoBan sera 0xDCB35C. On doit obtenir : Solution : Le code

Plus en détail

graphiques avancés et animations Programmation graphique animations

graphiques avancés et animations Programmation graphique animations Programmation graphique avancée et animations II-1 Les "expositions" fenêtre A fenêtre B fenêtre E fenêtre D fenêtre C Lorsque la fenêtre E passe en premier plan, elle reçoît des Expose events afin de

Plus en détail

private void remplirrectangle(graphics g, int x,int y,int l,int h)

private void remplirrectangle(graphics g, int x,int y,int l,int h) IFT1025-A2013 Examen Intra (10) 1. Écrire la méthode Java Programmation 2 Date:15 octobre 2013, 15:30-17:30 Guy Lapalme private void remplirrectangle(graphics g, int x,int y,int l,int h) qui remplit un

Plus en détail

TD/TP PO2 Licence Informatique 3 (2014 2015)

TD/TP PO2 Licence Informatique 3 (2014 2015) TD/TP PO2 Licence Informatique 3 (2014 2015) Exercice 1 Ecrire une interface graphique qui contient : 10 boutons correspondant aux chiffres : 0, 1,,9 4 boutons correspondant aux opérations : + - = clr

Plus en détail

Université Mohammed Premier Année universitaire 2012-2013

Université Mohammed Premier Année universitaire 2012-2013 Université Mohammed Premier Année universitaire 2012-2013 Faculté des Sciences Filière SMI Département de Mathématiques Module : POO Java et d Informatique Semestre : S5 Responsable du cours : El Mostafa

Plus en détail

Module Complément Java Juin 2007 Licence Informatique 3éme année

Module Complément Java Juin 2007 Licence Informatique 3éme année Module Complément Java Juin 2007 Licence Informatique 3éme année Examen 2ème session Durée : 2 heures Documents autorisés : les polycopiés du cours Probléme A Ci-dessous une classe représentant une liste

Plus en détail

Package Java.util Classe générique

Package Java.util Classe générique Package Java.util Classe générique 1 Classe Vector La taille est dynamique: dès qu un tableau vectoriel est plein, sa taille est doublée, triplée, etc. automatiquement Les cases sont de type Object add(object

Plus en détail

Notions de programmation orientée objet

Notions de programmation orientée objet 1 Génie Logiciel Notions de programmation orientée objet Renaud Marlet LaBRI / INRIA http://www.labri.fr/~marlet màj 19/04/2007 2 Les données d'abord (1) Important résultat de l'expérience : Le plus souvent,

Plus en détail

Programmation Java. Redéfinition de méthode (masquage)

Programmation Java. Redéfinition de méthode (masquage) Programmation Java Programmation objet avec Java Concepts plus avancés Christelle Urtado & Sylvain Vauttier Janvier 2013 Redéfinition de méthode (masquage) Une sous-classe peut redéfinir le code de méthodes

Plus en détail

Plan Général Cours 1

Plan Général Cours 1 Programmation Orientée Objet & le langage JAVA Sébastien IKSAL IUT de Laval Dépt. SRC 1 2 Intervenants Organisation Anne-Marie.Puizillout@univ-lemans.fr (TD & TP) Noa.Randriamalaka@univ-lemans.fr (TD &

Plus en détail

Dans ce chapitre nous présentons comment développer les classes et créer les objets.

Dans ce chapitre nous présentons comment développer les classes et créer les objets. Chapitre 2 La programmation orientée objet est une technique très puissante permettant d exploiter d énormes ressources stockées sous forme de classes et accessibles librement sur Internet. L appellation

Plus en détail

Programmation orientée objets

Programmation orientée objets POO : mais pourquoi? La Programmation Orientée Objets (POO) a pour but final de faciliter le débogage, la maintenance et la mise à jour d'applications complexes. C++, Java et Scala sont des exemples de

Plus en détail

Syntaxe du langage JAVA. Philippe Roose (IUT Bayonne) Olivier Dedieu (INRIA)

Syntaxe du langage JAVA. Philippe Roose (IUT Bayonne) Olivier Dedieu (INRIA) Syntaxe du langage JAVA Philippe Roose (IUT Bayonne) Olivier Dedieu (INRIA) Structure du langage Les types primitifs boolean(true/false), byte (1 octet), char (2 octets), short (2 octets), int (4 octets),

Plus en détail

Simulation d'algorithmes distribués Guide Utilisateur

Simulation d'algorithmes distribués Guide Utilisateur Simulation d'algorithmes distribués Guide Utilisateur Sommaire Section 1 Section 2 Section 3 Section 4 Section 5 3 Introduction 3 Configuration minimale 3 Utilisation Construction de graphes 4 La grammaire

Plus en détail

Tableaux. Tableaux en Java (introduction)

Tableaux. Tableaux en Java (introduction) en Java (introduction) Avertissement : ce cours ne présente qu une version «édulcorée» des tableaux. Ne sont abordés que les tableaux de types primitifs et tous les aspects «objets» sont masqués. Philippe

Plus en détail

Programmation orientée objet TP 1 Prise en main de l environnement Java

Programmation orientée objet TP 1 Prise en main de l environnement Java Programmation orientée objet TP 1 L2 MPCIE Prise en main de l environnement Java Exercice 1 Nous désirons développer un programme pour la gestion (très simplifiée) d'un parc de véhicules destinés à la

Plus en détail

Chapitre 5 : Relations entre classes

Chapitre 5 : Relations entre classes Chapitre 5 : Relations entre classes Relation Uses Relation d'héritage Les sous-classes Héritage simple Membres protégés Constructeurs Héritage multiple POO \ N.EL FADDOULI 65 La relation "utilise" La

Plus en détail

TP Mock. On veut modéliser un jeu de casino : le jeu de la boule.

TP Mock. On veut modéliser un jeu de casino : le jeu de la boule. TP Mock Pour faire ce TP il faut récupérer la "bibliothèque" mockito-all-x.x.x.jar. Vous pouvez la trouver à partir de https://code.google.com/p/mockito/downloads/list (pour mockito- 1.9.5.zip). Anciennement

Plus en détail

Java. Partie 1 : QCM. Consignes pour le bons déroulement du devoir

Java. Partie 1 : QCM. Consignes pour le bons déroulement du devoir Consignes pour le bons déroulement du devoir - Ce document comporte un QCM et une partie où il faut écrire du code en - Marquez vos réponses au QCM sur la feuille de réponses fournie (notez que certaines

Plus en détail

Utilisation. Agrégation

Utilisation. Agrégation Utilisation Une méthode peut utiliser les propriétés et méthodes d une autre instance : Programmation et Conception Orientées Objet Bertrand Estellon Département Informatique et Interactions Aix-Marseille

Plus en détail

POO 1/3 - Introduction à la Programmation Orientée Objet. Pierre Parrend IUT Lumière Lyon II, 2005-2006 pierre.parrend@univ-lyon2.

POO 1/3 - Introduction à la Programmation Orientée Objet. Pierre Parrend IUT Lumière Lyon II, 2005-2006 pierre.parrend@univ-lyon2. POO 1/3 - Introduction à la Programmation Orientée Objet Pierre Parrend IUT Lumière Lyon II, 2005-2006 pierre.parrend@univ-lyon2.fr Sommaire Les Langages de Programmation Premier Programme Les Objets Objets

Plus en détail

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

Objets et Programmation. origine des langages orientés-objet Objets et Programmation origine des langages orientés-objet modularité, encapsulation objets, classes, messages exemples en Java héritage, liaison dynamique G. Falquet, Th. Estier CUI Université de Genève

Plus en détail

Listes et arbres binaires

Listes et arbres binaires Des structures de données dynamiques Listes, Listes ordonnées Arbres binaires, arbre binaires de recherche Listes chaînées Utile si le nombre d éléments n est pas connu à l avance et évolue beaucoup. Permet

Plus en détail

Polymorphisme, la classe Object, les package et la visibilité en Java... 1

Polymorphisme, 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étail

Cours 1: Java et les objets

Cours 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étail

Le langage Java - Syntaxe

Le langage Java - Syntaxe Le langage Java - Syntaxe CLASSES, INSTANCE,MÉTHODES,... CLASSE EN JAVA, PAS À PAS UTILISER DES CLASSES: C O=NEW C() UTILISER LES MÉTHODES: O.M() UNE CLASSE AVEC PLUSIEURS CONSTRUCTEURS LA SURCHARGE DES

Plus en détail

B53 Android Jeux 2D (CVMAndEngine)

B53 Android Jeux 2D (CVMAndEngine) B53 Android Jeux 2D (CVMAndEngine) Jeu CVMSpace Exercice : Création d'un projet CVMAndEngine Placer cvmandengine.jar dans libs et modifier le build path Création de notre activité de base et changer le

Plus en détail

Programmation par les Objets en Java

Programmation par les Objets en Java Programmation par les Objets en Java Najib TOUNSI Les classes en Java (TD 3) I. Notion de classe I.1 Classe, champs, méthodes, instanciation, this, private vs. public. Créer une classe Point (coordonnée

Plus en détail

Cours 3 SDA et conception de logiciel. 1. Exemple d'analyse algorithmique n'utilisant que des tableaux

Cours 3 SDA et conception de logiciel. 1. Exemple d'analyse algorithmique n'utilisant que des tableaux Cours 3 SDA et conception de logiciel Les SDA servent à pouvoir construire des logiciels performants en cherchant à combiner des "briques" dont on sait qu'on pourra les implémenter en utilisant des techniques

Plus en détail

Auto-évaluation Programmation en Java

Auto-é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étail

LIAISON DYNAMIQUE (1)

LIAISON DYNAMIQUE (1) LIAISON DYNAMIQUE (1) Problème : avec un pointeur de base (Employe *), on aurait besoin que la «bonne» méthode soit exécutée, en fonction du type dynamique de l objet pointé. Comment savoir quel est le

Plus en détail

On définit une classe dérivée à partir d une classe existante comme une extension de celle-ci : super classe, classe de base, classe mère

On définit une classe dérivée à partir d une classe existante comme une extension de celle-ci : super classe, classe de base, classe mère Cours 4 Héritage Classe abstraite Interface POO 1 On définit une classe dérivée à partir d une classe existante comme une extension de celle-ci : super classe, classe de base, classe mère la classe dérivée

Plus en détail

Cours 8 : Exceptions, un peu de graphique

Cours 8 : Exceptions, un peu de graphique 1 Cours 8 : Exceptions, un peu de graphique 1. Traiter les exceptions usuelles 2. Créer ses propres exceptions 3. Exemples: les files. 4. Quelques éléments sur les graphiques 2 Exceptions Une exception

Plus en détail

Arité variable, énumérations. Arité variable. Arité des méthodes. Utilisation de la surcharge

Arité variable, énumérations. Arité variable. Arité des méthodes. Utilisation de la surcharge Arité variable, énumérations Théorie et pratique de la programmation Michel Schinz 2013-05-13 Arité variable 1 2 Arité des méthodes Utilisation de la surcharge Il est parfois utile d'offrir des méthodes

Plus en détail

Grandes lignes du cours. Cours JAVA : Le polymorphisme en Java. Outline. Outline. Rappel principes de la POO. Un nouveau principe POO : Héritage

Grandes lignes du cours. Cours JAVA : Le polymorphisme en Java. Outline. Outline. Rappel principes de la POO. Un nouveau principe POO : Héritage Grandes lignes du cours Cours JAVA : Le polymorphisme en Java. Version 4.01 Julien Sopena 1 1 julien.sopena@lip6.fr Équipe REGAL - INRIA Rocquencourt LIP6 - Université Pierre et Marie Curie Licence professionnelle

Plus en détail

Programmation en Java - TD4 M1 ISIFAR 2008 2009 Révisions et héritage

Programmation en Java - TD4 M1 ISIFAR 2008 2009 Révisions et héritage Programmation en Java - TD4 M1 ISIFAR 2008 2009 Révisions et héritage Exercice 1. Toute réponse doit être justifiée. Vous proposerez une correction lorsque le code n est pas correct. 1. Le code suivant

Plus en détail

Introduction au langage C#

Introduction au langage C# Introduction au langage C# 1 Introduction : Langage développé par Microsoft afin de concurrencer le langage Java afin d être exécuté sur un grand nombre de plates formes (même des linux). Le langage C#

Plus en détail

Héritage Concepts généraux des classes dérivées. Les concepts de base de la POO Application en C++ Héritage Concepts généraux des classes dérivées

Héritage Concepts généraux des classes dérivées. Les concepts de base de la POO Application en C++ Héritage Concepts généraux des classes dérivées Les concepts de base de la POO Application en C++ Classes abstraites Possibilité de définir de nouveaux objets à partir des objets existants Hiérarchie de généralisation/ spécialisation Une classe descendante

Plus en détail

TD2 : Diagramme de classes UML

TD2 : Diagramme de classes UML TD2 : Diagramme de classes UML Pierre Gérard pierre.gerard@univ-paris13.fr DUT Informatique S2D Université de Paris 13 1 Propriétés d'une classe Une personne est caractérisée par son nom, son prénom, son

Plus en détail

Informatique / Programmation

Informatique / Programmation Informatique / Programmation Programmation orientée objet avec Java 13 : Classes abstraites et interfaces Jacques Bapst jacques.bapst@hefr.ch Classes et méthodes abstraites Une classe abstraite est une

Plus en détail

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) 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étail

Projet. Coloration lexicale et indentation de code Java

Projet. Coloration lexicale et indentation de code Java Université Paris Diderot Programmation Orientée Objet L3 Année 2011-2012 Projet Coloration lexicale et indentation de code Java Le but de ce projet est de développer un programme qui prend en entrée un

Plus en détail

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

Pour 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étail

Page 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. 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étail

ENSTA IN204 Introduction à JAVA

ENSTA IN204 Introduction à JAVA Ecole Nationale Supérieure de Techniques Avancées (ENSTA) -http://www.ensta.fr ENSTA IN204 Introduction à JAVA Olivier Sigaud LIP6/AnimatLab olivier.sigaud@lip6.fr 01.44.27.88.53 Ce document est mis à

Plus en détail

Programmation multitâches avec les Threads

Programmation multitâches avec les Threads Programmation multitâches avec les Threads A. Introduction A.1. Programmation multitâche Tous les systèmes d'exploitation actuels ont la possibilité d'effectuer plusieurs tâches en simultané. En effet,

Plus en détail

Conception et programmation avancées TD révisions UML - JAVA

Conception et programmation avancées TD révisions UML - JAVA Conception et programmation avancées TD révisions UML - JAVA I) Partie UML 1) Les instances décrivent-elles des méthodes? Où sont décrites les méthodes? Corr : Non bien sûr. Les méthodes sont décrites

Plus en détail

Université Paris Diderot ISIFAR Année 2008-2009. Exceptions et Classes Abstraites

Université Paris Diderot ISIFAR Année 2008-2009. Exceptions et Classes Abstraites Université Paris Diderot JAVA ISIFAR Année 2008-2009 TP n 7 - Correction Exceptions et Classes Abstraites Exercice 1 [Utilisation des Exceptions] La méthode parseint est spécifiée ainsi : public static

Plus en détail

Applications Graphiques

Applications Graphiques JAVA Applications Graphiques E. ADAM UVHC - ISTV Applications graphiques en Java Java AWT & SWING Java 2D Java 3D Java Swing : un exemple simple Création d'une fenêtre contenant un texte dessiné et un

Plus en détail

LES CLASSES ABSTRAITES ET LES INTERFACES

LES CLASSES ABSTRAITES ET LES INTERFACES CHAPITRE 6 : LES CLASSES ABSTRAITES ET LES INTERFACES Objectifs spécifiques 1. Introduire la notion de classe abstraite, les règles de définition et l intérêt pratique 2. Introduire le concept d interfaces,

Plus en détail

Plan. Piqûre de rappel sur les références Evaluation d'expressions arithmétiques Variables et méthodes statiques Vocabulaire sur les arbres.

Plan. Piqûre de rappel sur les références Evaluation d'expressions arithmétiques Variables et méthodes statiques Vocabulaire sur les arbres. Plan Piqûre de rappel sur les références Evaluation d'expressions arithmétiques Variables et méthodes statiques Vocabulaire sur les arbres Amphi 4 1 Retour sur les références class Code { int numero; Code(int

Plus en détail

AP3.2 : Javascript et la balise <canvas> Informatique et internet

AP3.2 : Javascript et la balise <canvas> Informatique et internet STI2D Option SIN Terminale AP3.2 : Javascript et la balise Informatique et internet Durée prévue : 3h. Problématique : réalisation de pages web utilisant la balise Compétences visées

Plus en détail

INF 103 Langage JAVA. Contrôle du 7 janvier 2015 Durée : 1h30

INF 103 Langage JAVA. Contrôle du 7 janvier 2015 Durée : 1h30 INF 103 Langage JAVA Contrôle du 7 janvier 2015 Durée : 1h30 Nom : Prénom : Casier : Groupe :........ Écrire les réponses directement sur les feuilles du sujet dans les cases prévues à cet effet. Le barème

Plus en détail

Programmation Orientée Objet

Programmation Orientée Objet Programmation Orientée Objet Bertrand Estellon Département Informatique et Interactions Aix-Marseille Université 21 octobre 2014 Bertrand Estellon (DII AMU) Programmation Orientée Objet 21 octobre 2014

Plus en détail

Epreuve de Programmation Orientée Objet 2ème année de Licence Informatique

Epreuve de Programmation Orientée Objet 2ème année de Licence Informatique Epreuve de Programmation Orientée Objet 2ème année de Licence Informatique 1er juin 2007 Durée : 3 heures. Seule la documentation des classes java.util.list et java.util.arraylist distribuée est autorisée.

Plus en détail

Programmer avec Java. Chapitre 1. 1.1 Modularité. 1.1.1 Motivation

Programmer avec Java. Chapitre 1. 1.1 Modularité. 1.1.1 Motivation Chapitre 1 Programmer avec Java Ce chapitre ne se propose pas comme une description exhaustive de Java, mais plutôt comme un guide à l utilisation de certains traits avancés, comme l héritage et les classes

Plus en détail

Correction DS Java 2005 Classe Produit Classe CD

Correction DS Java 2005 Classe Produit Classe CD Correction DS Java 2005 Classe Produit public abstract class Produit { private static int derniernumeroproduit = 1; private int numeroproduit; // Le prix hors taxe du produit private double prix; //Le

Plus en détail

TP : Mise en oeuvre de MVC

TP : Mise en oeuvre de MVC Université de Lille 1 - Master 1 informatique 2012-2013 IHM TP : Mise en oeuvre de MVC Objectifs se familiariser avec les patrons de conception observateur et stratégie, se familiariser avec la conception

Plus en détail

Java Licence Professionnelle 2009-2010. Cours 7 : Classes et méthodes abstraites

Java 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

Mathématiques Logiciel de géométrie: GeoGebra. GeoGebra. Mode d'emploi

Mathématiques Logiciel de géométrie: GeoGebra. GeoGebra. Mode d'emploi Mathématiques Logiciel de géométrie: GeoGebra GeoGebra Avant propos: Mode d'emploi Dans les programmes officiels de Mathématiques, un élève doit savoir utiliser un logiciel de géométrie pour construire

Plus en détail

Licence Informatique 1 e année Algorithmique et Programmation

Licence Informatique 1 e année Algorithmique et Programmation Licence Informatique 1 e année Algorithmique et Programmation Projet 2013-2014 1 Organisation Le projet est à réaliser en binôme. En n de semestre, les binômes présenteront leur travail aux encadrants

Plus en détail

Université de Bourgogne - UFR Sciences et Technique - Programmation objet - LPSIL - 2013

Université de Bourgogne - UFR Sciences et Technique - Programmation objet - LPSIL - 2013 Nom : Prénom : Contrôle continu n 4 Programmation objet Vous devez répondre dans les cadres aux questions posées. Documents de cours et notes personnelles autorisés. Téléphones portables, ordinateurs et

Plus en détail

Éléments de base en Java (suite et fin)

Éléments de base en Java (suite et fin) Éléments de base en Java (suite et fin) P.O.O. LMI 2 Semestre 4 Option Info Année 2008-09 1/33 Éléments de base en Java (suite et fin) Année 2008-09 Plan du cours Les chaînes de caractères Retour vers

Plus en détail

Cours 13. Les classes abstraites Les méthodes abstraites Les interfaces. F. Gayral 1

Cours 13. Les classes abstraites Les méthodes abstraites Les interfaces. F. Gayral 1 Cours 13 Les classes abstraites Les méthodes abstraites Les interfaces F. Gayral 1 Un exemple pour mieux comprendre Pas d'instanciation d'un humain : un humain, c'est - soit un homme - soit une femme Humain

Plus en détail

Introduction au langage Java

Introduction au langage Java Introduction au langage Java 1 Introduction : Langage développé par Sun et purement orienté objet. N a pas de rapport direct avec Javascript développé par Netscape. Les applications java peuvent être des

Plus en détail

Bases Java - Eclipse / Netbeans

Bases Java - Eclipse / Netbeans Institut Galilée Master 1 T.P. 1 Bases Java - Eclipse / Netbeans PDJ Environnements Java Il existe plusieurs environnements Java. Il est ESSENTIEL d utiliser la bonne version, et un environnement d exécution

Plus en détail

Comment de marrer un projet Intellij Idea utilisant une interface graphique?

Comment de marrer un projet Intellij Idea utilisant une interface graphique? Comment de marrer un projet Intellij Idea utilisant une interface graphique? Intellij Idea est un éditeur Java qui permet de réaliser des interfaces graphiques en utilisant les librairies de swing. Voici

Plus en détail

Examen de programmation en Java

Examen de programmation en Java Examen de programmation en Java Vendredi 13 janvier 2006 Nom : Prénom : Les différentes parties sont indépendantes. Vous pouvez faire la partie consacrée aux évenements même si vous n avez pas fait la

Plus en détail

Mémento Design Patterns

Mémento Design Patterns Quelques Design Patterns Mémento Design Patterns Frédéric MOAL Université d Orléans Scope Purpose Creational Structural Behavioral Factory Method Abstract Factory Builder Prototype Singleton Adapter Proxy

Plus en détail

1.Programmation en Java : notions de base, orienté objet et héritage

1.Programmation en Java : notions de base, orienté objet et héritage Travaux pratique de Méthodologie et Langage de Programmation,, TP1 1 1.Programmation en Java : notions de base, orienté objet et héritage Cette séance de TP a pour objectif d'introduire à la programmation

Plus en détail

PARADIGME ORIENTÉ OBJET - PART 2

PARADIGME ORIENTÉ OBJET - PART 2 PARADIGME ORIENTÉ OBJET - PART 2 A programming paradigm that uses objects to design systems. Sébastien Adam Les concepts avancés de la programmation orientée-objet 2 Plan Héritage en Java Modificateur

Plus en détail

LES FICHIERS. 1-169169 JAVA Christine BONNET

LES FICHIERS. 1-169169 JAVA Christine BONNET 12 LES FICHIERS 1-169169 JAVA Christine BONNET LES FLOTS Package java.io La gestion des E/S s'effectue à l'aide des flots. Un stream (flot) représente un canal de communication ( écran, fichier, pipe,

Plus en détail

Cours de Programmation Orientée Objet

Cours de Programmation Orientée Objet Contrat et application à la librairie standard JAVA mailto:marc.champesme@lipn.univ-paris13.fr 6 février 2011 1 Qu est ce qu une classe? Un exemple en JAVA Résumé Expression du contrat Par des commentaires

Plus en détail

Licence Informatique Année Interfaces, polymorphisme

Licence Informatique Année Interfaces, polymorphisme Université Paris 7 Java Licence Informatique Année 2005-2006 TD n 3 - Correction Interfaces, polymorphisme Exercice 1 On veut construire un programme capable d afficher et de déplacer des figures géométriques

Plus en détail

Programmation non structurée

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

Plus en détail

CCI - Initiation à Java. E.Coquery emmanuel.coquery@liris.cnrs.fr

CCI - Initiation à Java. E.Coquery emmanuel.coquery@liris.cnrs.fr CCI - Initiation à Java E.Coquery emmanuel.coquery@liris.cnrs.fr Présentation du langage Outline 1 Présentation du langage 2 Types de données primitifs 3 Objets Présentation du langage Un langage orienté

Plus en détail

Programmation Orientée Objet. Exceptions et assertions

Programmation Orientée Objet. Exceptions et assertions Programmation Orientée Objet Exceptions et assertions Julien Provillard http://www.i3s.unice.fr/~provilla/poo/ julien.provillard@unice.fr Robustesse et Exceptions Error, RuntimeException Exceptions (non)

Plus en détail

III. Pendant la construction d une figure. I. Généralités. IV.Etapes de construction d une figure. II. Les différentes procédures.

III. Pendant la construction d une figure. I. Généralités. IV.Etapes de construction d une figure. II. Les différentes procédures. I. Généralités. 1. Présentation du logiciel - A quoi sert ce logiciel? - Accès au logiciel. 2. Présentation de l écran d accueil. - Le menu. - Les icônes. 3. Présentation de la barre d outils - Les icônes

Plus en détail

Encapsulation. 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. 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étail

TD/TP PAC - Programmation n 3

TD/TP PAC - Programmation n 3 Université Paris Sud Licence d informatique/iup-miage2 - Année 2004-2005 auteur : Frédéric Vernier semaine : 11-16 octobre 2004 conditions : sur machine avec les outils standards java web: http://vernier.frederic.free.fr/indexpac.html

Plus en détail

Programmation Objet. Cours 1

Programmation Objet. Cours 1 Programmation Objet. Cours 1 Marie-Pierre Béal UPEM DUT 1 Programmation objet. Classes et objets. Principaux styles de programmation Style impératif Fondé sur l exécution d instructions modifiant l état

Plus en détail

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

JAVA TD0. Prise en main du langage Environnement de base JAVA 1 JAVA TD0 Prise en main du langage Environnement de base JAVA 1 Mon premier programme public class HelloWorld { public static void main(string [] arg){ System.out.println("Hello, World!"); main(string []

Plus en détail

Introduction à la Programmation Orientée Objet

Introduction à la Programmation Orientée Objet Introduction à la Programmation Orientée Objet Bertrand Estellon Département Informatique et Interactions Aix-Marseille Université 4 avril 2013 Bertrand Estellon (DII AMU) Introduction à la Programmation

Plus en détail

3 PHP avancé Les objets : définitions

3 PHP avancé Les objets : définitions Les objets : définitions Structure de données associant des attributs et des méthodes qui décrivent le comportement de l'objet. Héritage de la conception objet (UML). Définie dans une classe. Un objet

Plus en détail

Programmation Par Objets

Programmation Par Objets Programmation Par Objets package java.util utilitaires de Arrays structures de données génériques B. Carré Polytech Lille 1 Utilitaires et collections Java Tableaux intégrés dans le langage : «Objets»

Plus en détail

this Vs. static Introduction Utilisation de this

this Vs. static Introduction Utilisation de this Introduction this Vs. static Si vous avez essayé d écrire d importants programmes Java multi-classes, vous avez certainement eu des problème de communication entre plusieurs classes. Pour appeler à partir

Plus en détail

Définitions de classes permettant de gérer Étudiant en Enseignant CORRECTION

Définitions de classes permettant de gérer Étudiant en Enseignant CORRECTION EILCO ING 1 - POO Java Contrôle 2014/2015 Définitions de classes permettant de gérer Étudiant en Enseignant CORRECTION Dans ces exercices, nous allons définir une classe Personne qui permettra de gérer

Plus en détail