introduction à la programmation objet langage java si3 et mam3 débutants programmation déry anne...

21
Introduction à la programmation objet Langage Java SI3 et MAM3 Débutants programmation Déry Anne Marie : pinna@[email protected] http://courswiki.essi.fr/SI1/Prog101/Planning

Upload: juliette-chollet

Post on 03-Apr-2015

108 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Introduction à la programmation objet Langage Java SI3 et MAM3 Débutants programmation Déry Anne Marie : pinna@polytech@unice.frpinna@polytech@unice.fr

Introduction à la programmation objet

Langage Java

SI3 et MAM3Débutants programmation

Déry Anne Marie : pinna@[email protected]

http://courswiki.essi.fr/SI1/Prog101/Planning

Page 2: Introduction à la programmation objet Langage Java SI3 et MAM3 Débutants programmation Déry Anne Marie : pinna@polytech@unice.frpinna@polytech@unice.fr

A quoi sert la programmation ?

• Passer d’un problème réel à une résolution informatique

calculs mathématiquesgestion de commandesjeux

Analyser le problème, concevoir une solution, l’écrire dans un langage informatique, l’exécuter sur une machine

Page 3: Introduction à la programmation objet Langage Java SI3 et MAM3 Débutants programmation Déry Anne Marie : pinna@polytech@unice.frpinna@polytech@unice.fr

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 objet Langage Java SI3 et MAM3 Débutants programmation Déry Anne Marie : pinna@polytech@unice.frpinna@polytech@unice.fr

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 objet Langage Java SI3 et MAM3 Débutants programmation Déry Anne Marie : pinna@polytech@unice.frpinna@polytech@unice.fr

Objectifs du cours

• Apprendre les principes de base de la programmation objet (premier niveau)

• Apprendre les principes de base de l’algorithmique

• Etre capable d’écrire un code « propre » : lisible, maintenable, deverminable

• Savoir écrire un petit logiciel en Java

Page 6: Introduction à la programmation objet Langage Java SI3 et MAM3 Débutants programmation Déry Anne Marie : pinna@polytech@unice.frpinna@polytech@unice.fr

Contenu du cours

• Introduction aux objets

• Algorithmes de base

• Structure de données : tableau

• Listes

• Tris de données

• Qualité et tests de code

Page 7: Introduction à la programmation objet Langage Java SI3 et MAM3 Débutants programmation Déry Anne Marie : pinna@polytech@unice.frpinna@polytech@unice.fr

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 tous les objets Ce 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 objet Langage Java SI3 et MAM3 Débutants programmation Déry Anne Marie : pinna@polytech@unice.frpinna@polytech@unice.fr

Méthodes et attributs (variables d’instances)

• 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 objet Langage Java SI3 et MAM3 Débutants programmation Déry Anne Marie : pinna@polytech@unice.frpinna@polytech@unice.fr

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 objet Langage Java SI3 et MAM3 Débutants programmation Déry Anne Marie : pinna@polytech@unice.frpinna@polytech@unice.fr

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 objet Langage Java SI3 et MAM3 Débutants programmation Déry Anne Marie : pinna@polytech@unice.frpinna@polytech@unice.fr

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 objet Langage Java SI3 et MAM3 Débutants programmation Déry Anne Marie : pinna@polytech@unice.frpinna@polytech@unice.fr

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 objet Langage Java SI3 et MAM3 Débutants programmation Déry Anne Marie : pinna@polytech@unice.frpinna@polytech@unice.fr

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 objet Langage Java SI3 et MAM3 Débutants programmation Déry Anne Marie : pinna@polytech@unice.frpinna@polytech@unice.fr

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; 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

this(x,y);

Constructeurs : initialisation des instances

5 instructions d’affectations

Page 15: Introduction à la programmation objet Langage Java SI3 et MAM3 Débutants programmation Déry Anne Marie : pinna@polytech@unice.frpinna@polytech@unice.fr

Création via BlueJ

Instruction de création d’instances

Nom attribué par BlueJ

ATTENTION : les instances n’ont pas de nom en JavaOn les affecte à des variables : Voiture maFerrari=new Voiture("Ferrari", "rouge");

Page 16: Introduction à la programmation objet Langage Java SI3 et MAM3 Débutants programmation Déry Anne Marie : pinna@polytech@unice.frpinna@polytech@unice.fr

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 objet Langage Java SI3 et MAM3 Débutants programmation Déry Anne Marie : pinna@polytech@unice.frpinna@polytech@unice.fr

Méthodes mutator

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 objet Langage Java SI3 et MAM3 Débutants programmation Déry Anne Marie : pinna@polytech@unice.frpinna@polytech@unice.fr

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 objet Langage Java SI3 et MAM3 Débutants programmation Déry Anne Marie : pinna@polytech@unice.frpinna@polytech@unice.fr

Hors BlueJ : les Tests

Exemple : Pour tester la classe PointEcrire une méthode main dans la classe Point ou dans une classe TestDePoint (condition réelle de l’usage) de

sorte qu’il y ait:

Création d’instances de cette classe : (Tests des constructeurs)Affichage des instances créées (Tests des constructeurs et de la méthode toString)Appels des méthodes en faisant varier la valeur des paramètres sur ces instances (Test des méthodes publiques)Affichage des retours des méthodes pour voir les tests

Page 20: Introduction à la programmation objet Langage Java SI3 et MAM3 Débutants programmation Déry Anne Marie : pinna@polytech@unice.frpinna@polytech@unice.fr

Exemple de tests 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 objet Langage Java SI3 et MAM3 Débutants programmation Déry Anne Marie : pinna@polytech@unice.frpinna@polytech@unice.fr

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