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

Introduction à la programmation objet Langage Java SI3 Débutant programmation Déry Anne Marie : pinna@[email protected]@[email protected]

Embed Size (px)

Citation preview

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

Introduction à la programmation objet

Langage Java

SI3Débutant programmation

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

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

Page 2: Introduction à la programmation objet Langage Java SI3 Débutant 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 Débutant 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 Débutant 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 Débutant 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 Débutant 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 Débutant 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 Débutant 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 Débutant 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 Débutant 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 Débutant 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 Débutant 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 Débutant 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, isVisible, 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 Débutant 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 Débutant 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 Débutant 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 Débutant 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 Débutant 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