Introduction à la programmation objet

publicité
Introduction à la programmation
objet
Langage Java
SI3
Débutant programmation
Déry Anne Marie : pinna@[email protected]
http://courswiki.essi.fr/SI1/Prog101/Planning
A quoi sert la programmation ?
• Passer d’un problème réel à une
résolution informatique
calculs mathématiques
gestion de commandes
jeux
Analyser le problème, concevoir une
solution, l’écrire dans un langage
informatique, l’exécuter sur une machine
Types de programmation
/ langages de programmation
• Programmation Procédurale : Pascal, C,
Fortran
• Programmation Fonctionnelle : Lisp,
Scheme…
• Logique : Prolog
• Objet : C++, Java …
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
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
Contenu du cours
•
•
•
•
•
•
Introduction aux objets
Algorithmes de base
Structure de données : tableau
Listes
Tris de données
Qualité et tests de code
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
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.
–
–
–
•
•
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…)
–
–
–
•
accélérer (vitesse) maFerrari.accelerer(30);
déplacer(distance)
placer(unPion,uneCase)
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é….
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
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 ?
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() Nom de la méthode
public void showCoord()
Liste de paramètres
Type de retour
visibilité
• Le corps contient les lignes de code
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 : {}
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, 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
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;
5 instructions d’affectations
yPosition = y;
diameter=5;
color="blue"
isVisible=true;
}
public Circle(int x,int y,String c,int diameter)
{
this(x,y);
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
Création via BlueJ
Nom attribué par BlueJ
Instruction de 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");
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
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 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;
Affichage
public void showCoord()
{
System.out.println(" Les coordonnées sont :");
System.out.println(" x : " + xPosition + " y: " + yPosition );
}
Instruction d’écriture
Concaténation de chaines
Méthode prédéfinie pour
l’affichage d’une instance
public String toString()
{
return " x : " + xPosition + " y: " + yPosition + " diamètre: " + diameter
+ " couleur: " + color;
} ….
System.out.println(circle1);
System.out.println(circle1.toString());
Téléchargement