Post on 11-Jun-2018
Programmation Orientée
Objets - JAVA
Erick STATTNER
Maître de Conférences en Informatique
Université des Antilles
erick.stattner@univ-ag.fr
www.erickstattner.com
1
Description de l’enseignement
Objectifs pédagogiques:
Se familiariser à la Programmation Orientée Objets à travers le langage JAVA
Maitriser les concepts d’encapsulation, d’héritage et de polymorphisme
Concevoir des applications graphiques complètes
Organisation:
45h incluant CM, TD et TP
1 note de CC (CC + Projet)
1 note de CT
2
Sommaire
1. Introduction au concept de POO
2. Classes et Objets
3. Héritage et Polymorphisme
4. Collections
5. Gestion des Exceptions
6. Interfaces Graphiques
3
Chapitre I.
Introduction au concept de POO1. Historique
2. Définition
3. Principe de la POO
4. Langage JAVA
4
I. Introduction au concept de POO
Années 60
Constat que la programmation structurée pas adaptée à de nombreux
problèmes
Naissance de la POO: Programmation orientée objets
Notion développée au début des années 1960 par A. Kay
Logiciels vus comme un ensemble de briques appelés « Objets »
Années 70
Apparition de SmallTalk, un des premiers langage de prog. orientée objets
SmallTalk conçu par A. Kay
Dans SmallTalk, « Tout est objet »: Les chaînes de caractères,
les entiers, les booléens, les définitions de classes, les blocs de code, …
A inspiré de nombreux autres langages
5
Historique
I. Introduction au concept de POO
Années 80
Apparition de nouveaux langages
C++, 1983, par Bjarne Stroustrup, pas totalement OO
Eiffel, 1986, par Bertrand Meyer, entièrement OO
Depuis 90
Démocratisation des concepts liés à la programmation orientée objet
Standardisation du C++
Apparitions de langages performants
Ex. JAVA, Python, .NET, etc.
6
Historique
I. Introduction au concept de POO
Définition
La programmation orientée objet (POO), ou programmation par objet, est un paradigme de programmation informatique.
Il consiste en la définition et l'interaction de briques logicielles appelées objets ;
un objet représente un concept, une idée ou toute entité du monde physique, comme une voiture, une personne ou encore une page d'un livre (Wikipedia).
Plus généralement, approche qui voit un logiciel comme une ensemble d’objets interdépendants qui collaborent pour réaliser des tâches ou opérations
Objectifs de la POO
Facilité la réutilisation du code
Améliorer la conception avec des concepts forts: encapsulation, abstraction, héritage, polymorphisme
Facilité l’évolution du code
Programmes segmentés en différentes briques
7
Définition
I. Introduction au concept de POO
Programmation Objets
1. Unité logique: l’objet
2. Chaque fichier définit un
composant élémentaire
3. Chaque composant manipule ses
propres variables et possède ses
fonctions
4. Chaque modélise une partie du
système
5. Simplifie la maintenance, favorise
la réutilisation
Programmation Structurée
1. Unité logique: le module
2. Un fichier pour
les variables
les fonctions
3. Chaque fonction résout une
partie du problème
4. Découpage de taches
complexes en plusieurs fonctions
5. Maintenance complexe
8
Définition
I. Introduction au concept de POO
« La conception par objets est la méthode qui conduit à des architectures
logicielles fondées sur les objets que tout système ou sous-système manipule
(plutôt que sur la fonction qu'il est censé réaliser)...
Pour beaucoup de programmeurs, ce changement de point de vue est un
choc comparable à l'idée de la terre tournant autour du soleil il y a 400 ans. »
B. Meyer
9
Définition
I. Introduction au concept de POO
Notion de classe
Une classe permet de définir les propriétés partagées par un ensemble d’objets
Elles servent de « moules » pour la création d’objets
ATTENTION: Objet ≠ Classe
Un objet est une instance d’une classe
Possibilité de définir des types complexes grâce à la notion d’héritage
10
Principe de la POO
Voiture
Couleur: chaine
Vitesse: Entier
Angle: Entier
avancer()
reculer()
tourner()
Ici classe Voiture,
qui défini comment
seront toutes les
voitures qui seront
créées et
manipulées dans le
programme
I. Introduction au concept de POO
Notion d’objet
Repose sur la notion centrale d’objets
Un objet est une entité élémentaire du système modélisé
Occurrence/instance d’une classe
Défini par
Un état: ensemble d’attributs (variables) qui stockent des valeurs
Un comportement: ensemble de méthodes (fonctions et procédures) qui modifient son état
Exemple:
11
Principe de la POO
Ma voiture
couleur = rouge
vitesse = 80 km/h
angle = 20°
avancer()
reculer()
tourner()
I. Introduction au concept de POO
Notion d’objet
Les objets communiquent entre eux à l’aide d’appels de méthodes
La méthode modifie l’état de l’objet courant
La méthode peut également modifier l’état d’un autre objet
12
Principe de la POO
Ma voiture
couleur = rouge
vitesse = 80 km/h
angle = 20°
avancer()
reculer()
tourner()
Le moteur
régime = 0 tr/min
démarre
I. Introduction au concept de POO
Langage JAVA
Langage de programmation orienté Objet sorti en 1990
1ere version sortie en 1996
Par 2 ingénieurs de Sun Microsystems: J. Gosling et P. Naughton
Objectifs:
A l’origine JAVA destiné aux systèmes embarqués (véhicules, électroménager, etc)
Volonté d’un langage simple et portable
Logiciels écrits en JAVA portables sur Windows, MAC OS, Linux, UNIX, périphérique mobiles, etc.
13
Langage JAVA
I. Introduction au concept de POO
Dates importantes
1996: Sortie de JAVA 1.0
2002: Sortie de JAVA 1.2 et apparition de la bibliothèque SWING
2004: Sortie de JAVA 1.5
2006: Sortie JAVA EE 5
2009 Rachat de Sun par Oracle
2014: Sortie JAVA SE 8
14
Langage JAVA
I. Introduction au concept de POO15
Langage JAVA
JAVA VS .Net
Java Forever
https://goo.gl/pt3OsB
I. Introduction au concept de POO
Outils pour programmer en JAVA
JAVA
Pour exécuter des programmes JAVA:
Machine virtuelle JRE (Java Runtime Environment)
Pour développer des programmes JAVA: JDK (JAVA Development Kit), inclut un compilateur et la machine virtuelle JRE
IDE
Eclipse
Netbeans
Jbuilder
…
Documentation JAVA
JAVADOC: http://docs.oracle.com/javase/7/docs/api/
17
Langage JAVA
I. Introduction au concept de POO
Public static void main(String args[])
Point d’entrée du programme
Equivalent à la fonction main du C
Paramètre String[] args permet de récupérer les arguments transmis au programme
System.out.println Permet d’afficher un message sur la sortie standard (console)
Obligatoirement placé dans une classe, ici nommée Test
18
public class Test{
public static void main (String[] args){
System.out.println("Hello World !");
}
}
Langage JAVA
Mon premier programme en JAVA
I. Introduction au concept de POO19
Langage JAVA
Concepts de base en programmation
VariablesEx. int a; double note; String t;
Affectationex. a = 12; note = 18,5; t = « toto»
Opérations ArithmétiquesAddition, soustraction, multiplication, division
note = (note + 16 ) / 2; a = a ++;
ConcaténationOperateur +Ex. String ch = "nom:" + t;
Lecture/EcritureEcriture: System.out.println(« ma variable est égale a » + note);
Lecture: int b = new Scanner(System.in).nextInt();
Condition/boucleif, switch, for, while, etc.
Commentaires//je commente mon code/* ici aussi */
I. Introduction au concept de POO
Exécuter un programme JAVA
1. Compiler un programme JAVA
> javac <fichier.java>
> javac Test.java
On peut compiler plusieurs fichiers> javac *.java
Génère les fichiers bytecodes nécessaires à la JVM
2. Exécuter un fichier
> java <application>> java Test
20
Langage JAVA
Ces deux étapes sont automatiquement réalisées par des IDE tels
que Eclipse ou Netbeans
I. Introduction au concept de POO
JAVA sans objets
21
Langage JAVA
public class Test{
public static int carre(int nb){
return nb*nb;
}
public static void main (String[] args){
System.out.println("Saisir un nombre :");
int val = new Scanner(System.in).nextInt();
int rslt = carre(val);
System.out.println("Resultat: "+rslt);
}
}
I. Introduction au concept de POO
Références:
Bibliographie
Claude Delannoy, Programmer en Java
Cyrille Herby, Apprenez à programmer en JAVA
Barry Burd, JAVA pour les nuls
Anne Tasso, Le livre de Java premier langage : Avec 109 exercices corrigés
Webographie
OpenClassrooms: Apprenez à programmer en JAVA
JAVA En Ligne: http://blog.paumard.org/cours/java/
Developpez.com: Le tutoriel du débutant pour apprendre programmer avec le langage Java
Developpez.com: Développons en Java
22
Langage JAVA