Introduction à la Programmation Orientée Objet Langage Java
description
Transcript of Introduction à la Programmation Orientée Objet Langage Java
![Page 1: Introduction à la Programmation Orientée Objet Langage Java](https://reader036.fdocument.pub/reader036/viewer/2022081506/56813ddf550346895da7ac3e/html5/thumbnails/1.jpg)
Introduction à la Programmation Orientée Objet
Langage Java
SI3 MAM3Allez voir le cours sur l’ENT http://ent.unice.fr
Catherine Faron Zucker [email protected] Litovsky [email protected]
Anne-Marie Pinna Dery [email protected]
http://courswiki.polytech.unice.fr/SI3/IPA
![Page 2: Introduction à la Programmation Orientée Objet Langage Java](https://reader036.fdocument.pub/reader036/viewer/2022081506/56813ddf550346895da7ac3e/html5/thumbnails/2.jpg)
A quoi sert la programmation ?
• Passer d’un problème réel à une résolution informatique
- calculs mathématiques- gestion de commandes- Systèmes d’exploitation –
facebook...- jeux
Analyser le problème, concevoir une solution, l’écrire dans un langage informatique, l’exécuter sur une machine
![Page 3: Introduction à la Programmation Orientée Objet Langage Java](https://reader036.fdocument.pub/reader036/viewer/2022081506/56813ddf550346895da7ac3e/html5/thumbnails/3.jpg)
Types de programmation/ langages de programmation
• Programmation Procédurale : Pascal, C, Fortran
• Programmation Fonctionnelle : Lisp, Scheme…
• Logique : Prolog
• Objet : C++, Java …
![Page 4: Introduction à la Programmation Orientée Objet Langage Java](https://reader036.fdocument.pub/reader036/viewer/2022081506/56813ddf550346895da7ac3e/html5/thumbnails/4.jpg)
Langages de programmation/ Environnements de
programmation
• Ecrire un programme, le transformer en code binaire, l’exécuter, le documenter, le tester….
• En Java– Editeur classique : emacs, kwrite et
commandes systèmes – BlueJ– Eclipse
![Page 5: Introduction à la Programmation Orientée Objet Langage Java](https://reader036.fdocument.pub/reader036/viewer/2022081506/56813ddf550346895da7ac3e/html5/thumbnails/5.jpg)
Objectifs du cours
• Apprendre les principes de base de la programmation objet et de l’algorithmique
• Etre capable de comprendre un code
• Etre capable d’écrire un code « propre » : lisible, maintenable
• Savoir écrire un petit logiciel en Java
![Page 6: Introduction à la Programmation Orientée Objet Langage Java](https://reader036.fdocument.pub/reader036/viewer/2022081506/56813ddf550346895da7ac3e/html5/thumbnails/6.jpg)
Contenu du cours
• Introduction aux objets
• Algorithmes de base
• Structures de données
• Listes
• Tris de données
• Qualité du code
![Page 7: Introduction à la Programmation Orientée Objet Langage Java](https://reader036.fdocument.pub/reader036/viewer/2022081506/56813ddf550346895da7ac3e/html5/thumbnails/7.jpg)
Objets/instances et classes
• Les objets (instances) représentent des entités du monde réel relatives au problème à traiter– Une voiture rouge de marque Ferrari– un carré de taille 4cm de côté– Un échiquier de 16 cases
• Les classes représentent un ensemble d’objets similairesCe sont les modèles des instances
– Voiture– Carré– Echiquier– Case
• Plusieurs instances peuvent être créées à partir d’une classe
![Page 8: Introduction à la Programmation Orientée Objet Langage Java](https://reader036.fdocument.pub/reader036/viewer/2022081506/56813ddf550346895da7ac3e/html5/thumbnails/8.jpg)
Méthodes et attributs
• Des opérations peuvent être appliquées à des objets : ce sont les méthodes. On parle d’invocation de méthode
Les méthodes ont des paramètres afin de passer des données à appliquer.– accélérer (vitesse) maFerrari.accelerer(30);– déplacer(distance)– placer(unPion,uneCase)
• Les attributs (variables d’instances) sont les données stockées dans les instances
• La classe définit les méthodes (nom, liste de paramètres, algorithme…)– Que fait la méthode accélérer ? (changer la vitesse de la voiture)– Que fait la méthode déplacer ? (changer les coordonnées du carré)– Que fait placer(Pion,Case) ? Vérifier si un Pion peut être placé sur une case et si oui
l’affecter.
• La classe définit les attributs qui décrivent une instance; chaque instance ayant sa valeur propre. On parle de l’état d’un objet
– La couleur,la marque, la vitesse des voitures. Ma Ferrari est rouge et roule à 130– Les coordonnées et la taille d’un côté d’un carré….
![Page 9: Introduction à la Programmation Orientée Objet Langage Java](https://reader036.fdocument.pub/reader036/viewer/2022081506/56813ddf550346895da7ac3e/html5/thumbnails/9.jpg)
Etat du Cercle circle1
Quel est le nom de la classe ?Quel est le nom de l’instance ?Quelles sont les variables d’instances ?Quel est leur type ?
Attention : il y a des conventions de nommage
![Page 10: Introduction à la Programmation Orientée Objet Langage Java](https://reader036.fdocument.pub/reader036/viewer/2022081506/56813ddf550346895da7ac3e/html5/thumbnails/10.jpg)
Instances d’une classe
Comment crée-t-on une instance ?Comment modifier la valeur d’une variable d’instance de circle1 ?Comment afficher les positions du circle2 ?Donner des exemples de méthodes ?
![Page 11: Introduction à la Programmation Orientée Objet Langage Java](https://reader036.fdocument.pub/reader036/viewer/2022081506/56813ddf550346895da7ac3e/html5/thumbnails/11.jpg)
Structure d’une méthode
• Une méthode a une entête et un corps• L’entête définit la signature d’une
méthode.public int getXPosition()public void showCoord()
• Le corps contient les lignes de code
Nom de la méthode
Liste de paramètres
Type de retour
visibilité
![Page 12: Introduction à la Programmation Orientée Objet Langage Java](https://reader036.fdocument.pub/reader036/viewer/2022081506/56813ddf550346895da7ac3e/html5/thumbnails/12.jpg)
Structure d’une classe
public class Circle{// Variables d’instances : diameter, yPosition, xPosition
// Constructeurs : Circle(int x, int y)
// Méthodes : setYPosition(int y); printCoord()}
Marqueurs du bloc de début et fin de la classe : {}
Nom de la classe
![Page 13: Introduction à la Programmation Orientée Objet Langage Java](https://reader036.fdocument.pub/reader036/viewer/2022081506/56813ddf550346895da7ac3e/html5/thumbnails/13.jpg)
Variables d’instancespublic class Circle { private int xPosition; private int yPosition; private int diameter; private String color; private boolean isVisible; ……. }• Visibilité : private, public, protected
– Une variable d’instance est toujours privée a priori • Types de données : int, String, boolean, Circle
– Un type est soit un type de base soit une classe Java Standard soit une classe définie par le programmeur
• Nom de variable : Attention aux conventions de nommage– Commence par une miniscule, séparation des mots par une majuscule
![Page 14: Introduction à la Programmation Orientée Objet Langage Java](https://reader036.fdocument.pub/reader036/viewer/2022081506/56813ddf550346895da7ac3e/html5/thumbnails/14.jpg)
Ils ont le même nom que la classeIls stockent les valeurs initiales des attributs le plus souvent grâce aux valeurs des paramètres
public Circle(int x,int y){ xPosition = x; yPosition = y; diameter=5; color="blue" isVisible=true;} public Circle(int x,int y,String c,int diameter){ xPosition = x; yPosition = y; this.diameter=diameter; color=c; isVisible=true;}• Il peut y avoir plusieurs constructeurs dans une classe.• Il y a un constructeur par défaut sans paramètre
this(x,y);
Constructeurs : initialisation des instances
5 instructions d’affectations
![Page 15: Introduction à la Programmation Orientée Objet Langage Java](https://reader036.fdocument.pub/reader036/viewer/2022081506/56813ddf550346895da7ac3e/html5/thumbnails/15.jpg)
Création d’instances
ATTENTION : les instances n’ont pas de nom en Java
On les affecte à des variables : Voiture maFerrari=new Voiture("Ferrari", "rouge"); Voiture maTititne= new Voiture();
Il est important de définir un constructeur par défaut
Il peut y avoir plusieurs constructeurs ou méthodes de même nom si le nombre de paramètres diffère
![Page 16: Introduction à la Programmation Orientée Objet Langage Java](https://reader036.fdocument.pub/reader036/viewer/2022081506/56813ddf550346895da7ac3e/html5/thumbnails/16.jpg)
Méthodes accesseursUn type de méthode spécifique qui fournit les informations (valeurs des
variables d’instances) d’un objet
public int getXPosition(){ return xPosition;}public String getColor(){ return color;}
• Type de retour : int, String…– La méthode renvoie une valeur correspondant au type de retour
• Nom de méthode : getXPosition, getColor ATTENTION Convention de nommage• Liste de paramètres : vide
– l’information est dans l’instance on n’a pas besoin de données extérieures• Marqueurs du Bloc de début et fin de la méthode : {}• Visibilité : public
– Peut être utilisée à l’extérieur de la classe, dans une autre classe• Instruction : instruction return
– Il y a toujours un return quand une méthode renvoie une valeur de retour– C’est la dernière instruction exécutée
![Page 17: Introduction à la Programmation Orientée Objet Langage Java](https://reader036.fdocument.pub/reader036/viewer/2022081506/56813ddf550346895da7ac3e/html5/thumbnails/17.jpg)
Méthodes accesseurs en écriture : mutator (anglais)
Méthode spécifique pour changer l’état d’un objet...– contient une instruction d’affectation : affectation des variables d’instances.– reçoit des paramètres : valeur à affecter.public void setXPosition (int x){
xPosition = x;}public void setColor(String x){
color = x;}
Type de retour (void) : ne renvoie rienNom de méthodes : setXPosition, setColor(String x)
ATTENTION au convention de nommageParamètres : int x, String xVisibilité : publicInstruction : affectation d’une variable d’instances xPosition = x;
![Page 18: Introduction à la Programmation Orientée Objet Langage Java](https://reader036.fdocument.pub/reader036/viewer/2022081506/56813ddf550346895da7ac3e/html5/thumbnails/18.jpg)
Affichage
public void showCoord(){ System.out.println(" Les coordonnées sont :"); System.out.println(" x : " + xPosition + " y: " + yPosition );}
public String toString(){return " x : " + xPosition + " y: " + yPosition + " diamètre: " + diameter
+ " couleur: " + color;} ….System.out.println(circle1); System.out.println(circle1.toString());
Instruction d’écriture
Méthode prédéfinie pour l’affichage d’une instance
Concaténation de chaines
![Page 19: Introduction à la Programmation Orientée Objet Langage Java](https://reader036.fdocument.pub/reader036/viewer/2022081506/56813ddf550346895da7ac3e/html5/thumbnails/19.jpg)
Comment tester et exécuter ?
• Pour utiliser la classe Point
– Ecrire une méthode main dans la classe Point
ou une autre UseOfPoint
• création d'instances (constructeurs)
• affichage des instances (toString)
• appel des méthodes modifiant l'état d'une instance
et affichage des instances
• appel et affichage des méthodes renvoyant un
résultat
![Page 20: Introduction à la Programmation Orientée Objet Langage Java](https://reader036.fdocument.pub/reader036/viewer/2022081506/56813ddf550346895da7ac3e/html5/thumbnails/20.jpg)
Exemple de main pour Pointpublic static void main(String[] argsv){ Point origine = new Point(0,0); Point p=new Point(); System.out.println(origine); System.out.println("Le point origine : (" + origine.getX() + ", " +
origine.getY()); System.out.println(p); Point p2=new Point("12", "13"); System.out.println("Le point origine : (" + origine.getX(10) + ", " +
origine.getY(11)); System.out.println(System.out.println("Le point origine : (" +
origine.setX(10) + ", " + origine.setY(11));}
![Page 21: Introduction à la Programmation Orientée Objet Langage Java](https://reader036.fdocument.pub/reader036/viewer/2022081506/56813ddf550346895da7ac3e/html5/thumbnails/21.jpg)
Les commandes
public static void main(String[] args)
javac ClasseAtester.java -> erreurs ou création du fichier ClasseAtester.class
javac TestDEClasseAtester.java -> erreurs ou création du fichier TestDeClasseAtester.class
java TestDeClasseAtester -> erreurs et/ou exécution du code
ATTENTION A L’ORDRE DE COMPILATION
![Page 22: Introduction à la Programmation Orientée Objet Langage Java](https://reader036.fdocument.pub/reader036/viewer/2022081506/56813ddf550346895da7ac3e/html5/thumbnails/22.jpg)
Des références
• - api : http://www.j2ee.me/javase/6/docs/api/
Vous aurez une version locale sur votre ordinateur portable-Tutorial Java
http://java.sun.com/docs/books/tutorial/ - Pour trouver des informations
http://www.jmdoudoux.fr/java/dej/indexavecframes.htm