La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

Introduction à la Programmation Orientée Objet Langage Java SI3 MAM3 Allez voir le cours sur Catherine Faron Zucker.

Présentations similaires


Présentation au sujet: "Introduction à la Programmation Orientée Objet Langage Java SI3 MAM3 Allez voir le cours sur Catherine Faron Zucker."— Transcription de la présentation:

1 Introduction à la Programmation Orientée Objet Langage Java SI3 MAM3 Allez voir le cours sur Catherine Faron Zucker Claudia C. Gutierrez Igor Litovsky Anne-Marie Pinna Dery

2 A quoi sert la programmation ? Passer dun problème réel à une résolution informatique - calculs mathématiques - gestion de commandes - Systèmes dexploitation – facebook... - jeux Analyser le problème, concevoir une solution, lécrire dans un langage informatique, lexé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, lexécuter, le documenter, le tester…. En Java –Editeurs classiques : emacs, kwrite... et + commandes systèmes –Environnements de programmationn : BlueJ, Eclipse...

5 Objectifs du cours Apprendre les principes de base de la programmation objet et de lalgorithmique 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 Les objets (instances) représentent des entités du monde réel relatives au problème à traiter –Une voiture rouge de marque Ferrari (course) –un carré de taille 4cm de côté (dessin) –Un échiquier de 16 cases (jeu) Les classes représentent un ensemble dobjets similaires Ce sont les modèles des instances –Voiture –Carré –Echiquier –Case Plusieurs instances peuvent être créées à partir dune classe Comment définiriez-vous un étudiant ? Un cours ? Quelle est la différence entre le cours dIPA et de Système ? Avez vous dautres exemples de classes et dinstances ? Objets/instances et classes

8 Méthodes et attributs Des opérations peuvent être appliquées à des objets : ce sont les méthodes. On parle dinvocation de méthode Les méthodes ont des paramètres afin de passer des données à appliquer. –accélérer (int vitesse) maFerrari.accelerer(30); –déplacer(int distance) leCarre.déplacer(10); –placer(Pion unPion,Case uneCase) 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 laffecter. Les attributs (variables dinstances) sont les données stockées dans les instances La classe définit les attributs qui décrivent une instance; chaque instance ayant sa valeur propre. On parle de létat dun objet –La couleur,la marque, la vitesse des voitures. Ma Ferrari est rouge et roule à 130 –Les coordonnées et la taille dun côté dun carré….

9 Etat du Cercle circle1 Quel est le nom de la classe ? Quel est le nom de linstance ? Quelles sont les variables dinstances ? Quel est leur type ? Attention : il y a des conventions de nommage à respecter

10 Instances dune classe Comment crée-t-on une instance ? Comment modifier la valeur dune variable dinstance de circle1 ? Comment afficher les positions du circle2 ? Donner des exemples de méthodes ?

11 Structure dune méthode Une méthode a une entête et un corps Lentête définit la signature (visibilité, type de retour, nom, paramètres) dune méthode Le corps contient les lignes de code, lalgorithme qui effectue laction – code exécuté par la machine public int getXPosition() public void déplacer(int x) Nom Liste de paramètres Type de retour Visibilité Signature

12 Structure dune classe public class Circle { // Variables dinstances : 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 : {} // commentaires – non exécuté par la machine Nom de la classe

13 Variables dinstances public class Circle { private int xPosition=0; private int yPosition; private int diameter; private String color; private boolean isVisible; ……. } Visibilité : private, public, protected –Une variable dinstance est toujours privée a priori Type de données : un type de base, une classe Java Standard ou une classe définie par le programmeur int, boolean..., String,..., Circle Nom de variable Attention aux conventions de nommage Commence par une miniscule, séparation des mots par une majuscule Les valeurs par défaut sont données dans les constructeurs Ne pas utiliser a priori laffectation à la définition Une variable dinstances est définie par sa visibilité, son type, son nom et une éventuelle valeur par défaut;

14 Les constructeurs permettent de construire les instances dune classe, dinitialiser les variables dinstances le nom du constructeur est le même nom que la classe les valeurs des paramètres sont utilisées pour linitialisation 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; } this () permet dappeler des constructeurs en cascade this. -> permet designer la variable dinstances this(x,y); Constructeurs : initialisation des instances 5 instructions daffectations

15 Création dinstances ATTENTION : les instances nont pas de nom en Java On les affecte à des variables : Voiture maFerrari=new Voiture("Ferrari", "rouge"); Voiture maTititne= new Voiture(); Il faut toujours définir un constructeur par défaut Il peut y avoir plusieurs constructeurs ou méthodes de même nom si la liste des paramètres (nombre, type) diffère

16 Méthodes accesseurs Les accesseurs sont un type de méthode spécifique qui fournit les informations (valeurs des variables dinstances) dun 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 – linformation est dans linstance on na 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 à lexté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 –Cest la dernière instruction exécutée

17 Méthodes accesseurs en écriture : mutator (anglais) Un mutator est une méthode spécifique pour changer létat dun objet... – contient une instruction daffectation : affectation des variables dinstances. – 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 xPosition = x;

18 Deux types de méthode Il y a deux sortes de méthodes : les méthodes procédures (type de retour égale void) qui ne renvoyent pas de valeur et les méthodes fonctions (type de retour différent de void) qui renvoient un résultat Ex : Les accesseurs sont des fonctions, Les mutators sont des procédures

19 Invocation de méthode Invoquer une méthode sur une instance : exécuter les instructions écrites dans le corps dune méthode avec les paramètres effectifs Lopérateur est le. Ex: circle1.setXPosition(10); 10 est un paramêtre effectif de type entier (int) 1. Comme circle1 est une instance de Circle, linvocation nest possible que si une procédure publique de nom setXPosition avec un paramètre formel de type compatible int est déclarée dans Circle 2. Lexécution du code est faite en remplaçant le nom du parametre par sa valeur effective

20 Affichage Il existe une méthode prédéfinie que lon doit redéfinir dans les classes que lon écrit pour pouvoir afficher les instances dune classe Il sagit de la méthode de nom toString public String toString() { return " x : " + xPosition + " y: " + yPosition + " diamètre: " + diameter + " couleur: " + color; } …. System.out.println(circle1); System.out.println(circle1.toString()); Linstruction correspondant à la méthode prédéfinie System.out.println, permet décrire une chaîne de caractères dans la console Linstruction + entre deux chaines permet la concaténation des chaînes, entre deux entiers laddition de ces entiers

21 Comment tester une classe? On peut tester une ou plusieurs classes en écrivant le corps dune méthode prédéfinie de nom main Pour utiliser la classe Circle: –Ecrire une méthode main dans la classe Point ou dans une autre classe UseOfPoint qui crée des instances (appel aux constructeurs) affiche des instances (appel au toString) Exécute les méthodes procédurales (appel des méthodes modifiant l'état d'une instance et affichage des instances) Exécute les méthodes fonction (appel et affichage des méthodes renvoyant un résultat)

22 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)); }

23 Les commandes Compilation : javac La compilation génère à partir du code java un binaire que la machine saura exécuter La compilation vérifie les erreurs de syntaxe java Exécution : java Lexécution exécute un binaire Les erreurs de programmation peuvent entrainer des erreurs dexécution 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

24 Des références - api : Vous aurez une version locale sur votre ordinateur portable -Tutorial Java - Pour trouver des informations htm


Télécharger ppt "Introduction à la Programmation Orientée Objet Langage Java SI3 MAM3 Allez voir le cours sur Catherine Faron Zucker."

Présentations similaires


Annonces Google