22
Programmation Orientée Objets - JAVA Erick STATTNER Maître de Conférences en Informatique Université des Antilles [email protected] www.erickstattner.com 1

Programmation Orientée Objets - JAVA - Erick STATTNER Delannoy, Programmer en Java Cyrille Herby, Apprenez à programmer en JAVA Barry Burd, JAVA pour les nuls Anne Tasso, Le livre

  • Upload
    ngoque

  • View
    256

  • Download
    4

Embed Size (px)

Citation preview

Programmation Orientée

Objets - JAVA

Erick STATTNER

Maître de Conférences en Informatique

Université des Antilles

[email protected]

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

Principe de portabilité du JAVA

16

Langage JAVA

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