1 / 22

Introduction à la Programmation Orientée Objet Langage Java

SI3 MAM3 Hydro Nathan Cohen cohen@inria.sophia.fr Igor Litovsky lito@polyte.unice.fr Anne-Marie Pinna Dery pinna@polytech.unice.fr http://courswiki.polytech.unice.fr/SI3/IPA. Introduction à la Programmation Orientée Objet Langage Java. A quoi sert la programmation ?.

nhi
Download Presentation

Introduction à la Programmation Orientée Objet Langage Java

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. SI3 MAM3 Hydro Nathan Cohen cohen@inria.sophia.fr Igor Litovsky lito@polyte.unice.fr Anne-Marie Pinna Dery pinna@polytech.unice.fr http://courswiki.polytech.unice.fr/SI3/IPA Introduction à la Programmation Orientée ObjetLangage Java

  2. 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

  3. Types de programmation/ langages de programmation • Programmation Procédurale : Pascal, C, Fortran • Programmation Fonctionnelle : Lisp, Scheme… • Logique : Prolog • Objet : C++, Java …

  4. 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

  5. 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

  6. Contenu du cours • Introduction aux objets • Algorithmes de base • Structures de données • Listes • Tris de données • Qualité du code

  7. 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 similaires Ce sont les modèles des instances • Voiture • Carré • Echiquier • Case • Plusieurs instances peuvent être créées à partir d’une classe

  8. 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é….

  9. 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

  10. 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 ?

  11. 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é

  12. Structure d’une classe Nom de la 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 : {}

  13. Variables d’instances public 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

  14. Constructeurs : initialisation des instances • Ils ont le même nom que la classe • Ils 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; • diameter=this.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 5 instructions d’affectations this(x,y);

  15. 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

  16. Méthodes accesseurs Un 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

  17. 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 rien Nom de méthodes : setXPosition, setColor(String x)‏ ATTENTION au convention de nommage Paramètres : int x, String x Visibilité : public Instruction : affectation d’une variable d’instances xPosition = x;

  18. 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 Concaténation de chaines Méthode prédéfinie pour l’affichage d’une instance

  19. Comment tester et utiliser ? • 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 mathodes renvoyant un résultat

  20. Exemple de main pour Point public 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)); }

  21. 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

  22. 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

More Related