Conception par Objet et Programmation Java
Introduction Java
Année universitaire 2012-2013 Equipe JAVA
Plan
Introduction
Classe et objet
Encapsulation
Héritage
Polymorphisme
Exceptions
Interface et Collection
Design Pattern +Connexion Base de donnée
Références
•Head First Java, Second Editition
•http://docs.oracle.com/javase/tutorial/
Objectifs
Comprendre le paradigme OO et utiliser Java pour le
mettre en œuvre
Notion de classe et d’objet
Décrire les éléments-clé de la plate-forme Java
Compiler et exécuter une application Java
Décrire le syntaxe du langage
Comprendre et utiliser les API de java
4
Introduction Java
Aperçu : Orienté Objet
La programmation orientée objet se base sur une
approche de
conception et de développement de logiciels
Représenter les éléments du monde réel par des entités
informatiques appelés "objets" en adoptant un haut niveau
d'abstraction.
5
Introduction Java
Aperçu : Orienté Objet
Approche procédurale :
"Que doit faire mon programme ? "
Approche orientée-objet :
"De quoi doit être composé mon programme ?"
6
Introduction Java
Aperçu : Orienté Objet
Des objets similaires peuvent être informatiquement décrits par
une même abstraction : une classe
même structure de données et méthodes de traitement
valeurs différentes pour chaque objet
7
Introduction Java
C++ vs Java
• Pas de structures ni d’unions
• Pas de typedef
• Pas de variables ni de fonctions en dehors des classes
• Pas de fonctions à nombre variable d’arguments
• Pas d'héritage multiple de classes
• Pas de surcharge d’opérateurs
• Pas de passage par copie pour les objets
• Pas de pointeurs, seulement des références
8
Introduction Java
JAVA: La plateforme
Présentation
Java est un langage de programmation moderne développé
par Sun Microsystems(aujourd'hui racheté par Oracle)
Une des plus grandes forces est son excellente portabilité : un
programme java peut s’executer sous Windows, Mac, Linux,
etc….
Avec le langage Java on peut avoir:
des applications, sous forme de fenêtre ou de console ;
des applets, qui sont des programmes Java incorporés
à des pages web
des applications pour appareils mobiles, avec J2ME
et bien d'autres J2EE, JMF, J3D pour la 3D...
10
Introduction Java
Programme JAVA (1)
Un programme Java est compilé et interprété
-le code source est, directement,
Compilé interprété sans phase de compilation,
et c'est l'interprète qui exécute ce
code source, qu'il interprète à la volée.
(JVM)
-le code source est soumis à un
compilateur, pour en faire un fichier
binaire compréhensible par un
microprocesseur (une sorte de pré- Interprété
fichier .exe)
11
Introduction JAVA
Programme JAVA (2)
12
Introduction JAVA
JAVA: la Plateforme
Plateforme = environnement hardware ou software sur lequel le
programme est exécuté.
La Java « Platform » se compose de:
Java Virtual Machine (Java VM)
Java Application Programming Interface (Java API)
13
Introduction Java
JVM
Une machine virtuelle est un ordinateur fictif s’exécutant
sur un ordinateur réel :
Possède un langage natif propre et traduit un
programme écrit dans ce langage vers le langage natif de
l’ordinateur.
Définit les spécifications hardware de la plateforme
Lit le bytecode compilé (indépendant de la plateforme)
14
Introduction Java
API: Java Application Programming Interface
API :
L’API Java est structuré en libraires (packages).
Les packages comprennent des ensembles fonctionnels de composants
(classes)..
Le noyau (core) de l’API Java (inclus dans toute implémentation complète de
la plateforme Java) comprend notamment :
Essentials (data types, objects, string, array, vector, I/O,date,…)
Applet
Abstract Windowing Toolkit (AWT)
Basic Networking (URL, Socket –TCP or UDP-,IP)
Evolved Networking (Remote Method Invocation)
Internationalization
Security
…..
15
Introduction Java
JAVA: Les versions
JAVA: Les versions (1)
Année Evénements
Mai 1995 JDK 1.0
Mars 1997 JDK 1.1
Septembre 2004 J2SE 5.0 (1.5)
Décembre 2006 Java SE 6.0 (1.6)
Janvier 2010 Rachat de Sun par Oracle
Juillet 2011 Java SE 7
17
Introduction Java
JAVA: Les versions (2)
Java 5 Vs. Java 6
JAVA 5
Enhanced for loop(for each for loop)
Enumeration( enum keyword)
AutoBoxing/Unboxing ( like wrapper classes)
Generics (Set(<String>))
Annotations
18
JAVA: Notions, mots clé…
Notions fondamentales
- Classe / Objet / Instance
- Attributs / Méthodes
- Encapsulation
- Héritage
- Polymorphisme
20
JAVA: Classe
- les briques de constructions d’un programme JAVA sont les
classes,
LES ATTRIBUTS :
Partie statique les données (Propriétés) Les attributs représentent la
description des données
propres à chaque classe
d'objets
le code les manipulant LES METHODES :
Partie dynamique Les méthodes représentent
(Méthodes)
l'ensemble des actions,
procédures, fonctions ou
opérations que l'on
peut associer à une classe
Classe
21
Les Identificateurs
• Nommer les classes, les variables, les méthodes, ...
• Un identificateur Java
est de longueur quelconque
commence par une lettre Unicode
peut ensuite contenir des lettres ou des chiffres ou le caractère
souligné«_ »
ne doit pas être un mot réservé du langage (mot clé) (if, for,
true, … )
• les caractères suivants sont autorisés pour construire un
identificateur Java : "$" , "_" , "μ" et les lettres accentuées.
[a..z, A..Z, $, _, μ ]{a..z, A..Z, $, _, μ, 0..9,
Unicode}
22
Mots clés Java
Abstract boolean break byte
case catch char class
continue default do double
else extends final, finally
float for if implements
import instanceof, int interface
long native new null
package private protected public
return short static super
switch synchronized this throw
throws transient try
void volatile while
23
Les règles de Nommage
Classe :
1ère lettre en majuscule
Mélange de minuscule, majuscule avec la première lettre de chaque mot
en majuscule
Donner des noms simples et descriptifs
Packages
Tout en minuscule.
Utiliser seulement [a-z], [0-9] et le point '.': Ne pas utiliser de tiret '-',
d'underscore '_', d'espace, ou d'autres caractères ($, *, accents, ...).
Constante:
• Les constantes sont en majuscules et les mots sont séparés par
le caractère souligné« _ »: UNE_CONSTANTE
24
Types de données en Java
• On distingue entre 2 grands groupes de types de données :
types primitifs
objets (instances de classe)
25
Types primitifs
• Valeur logique
boolean (true/false)
• Nombres entiers
byte (1 octet)
short (2octets)
int (4 octets)
long (8 octets)
• Nombres non entiers (à virgule flottante)
float (4 octets)
double (8 octets).
• Caractère (un seul)
char (2 octets)
26
Types primitifs et valeurs
27
Les enveloppeurs (Wrappers)
•Les primitives peuvent être "enveloppées" dans un objet
provenant d'une classe prévue
• Les enveloppeurs sont des objets pouvant contenir une
primitive et auxquels sont associés des méthodes permettant
de les manipuler.
•Ces enveloppeurs héritent tous de la classe Object et
bénéficient de plusieurs méthodes utilitaires (comparaison,
valeur maximale et minimale etc.).
Les enveloppeurs (Wrappers)
Structure conditionnelle/ittératif
• Schémas conditionnels : exécuter une série d'instructions
dans le cas où une condition est vraie, et d'exécuter une autre série
d'instructions dans le cas contraire
– if (même syntaxe qu'en C/C++)
– switch-case (même syntaxe qu'en C/C++)
• Schémas itératifs : Le traitement itératif est utilisé pour
exécuter une ou plusieurs instructions plusieurs fois
– for (même syntaxe qu'en C/C++)
– while (même syntaxe qu'en C/C++)
– do-while (même syntaxe qu'en C/C++)
JAVA: Premiers pas …
Outils de développement (1)
• Pour développer un programme JAVA on utilise un IDE,
• Afin de pouvoir créer une application JAVA consistante, on a
besoin du JDK,
• Pour tester et lancer le code écrit, on doit, nécessairement,
disposer du JRE.
32
Outils de développement (2)
JRE L’environnement qui permet d'exécuter les applications java,
(Java Runtime
Environment)
Il est constitué de la JVM en particulier (Java Virtual Machine).
JDK Outils permettant de développer, compiler (javac), débuguer (jdb)
et exécuter un programme java.
(Java
Development Kit)
Il y a aussi des outils d'archivage (jar), de génération de
documentation (javadoc).
33
Outils de développement (3)
IDE Un programme regroupant un
développement de logiciels.
ensemble d'outils pour le
(Integrated
Development
Environment) En général, un IDE regroupe un éditeur de texte, un compilateur,
des outils automatiques de fabrication, et souvent un débogueur.
(Exp: Eclipse, Netbeans)
34
Hello World (Pré-configuration)
• Installer le JDK sous Windows
– Télécharger et d'exécuter le programme "jdk-xux-windows-
x64/32.exe" depuis le site d’Oracle (
http://www.oracle.com/technetwork/java/javase/downloads/index.html )
• Paramétrer correctement la variable PATH
(Variables d’environnement )
35
Premier Programme (1)
36
Premier Programme (2)
• Editer le code source Java suivant et le sauver dans
Bienvenue.java :
class Bienvenue
{
public static void main( String args[])
{
System.out.println( "Bienvenue dans le monde Java ");
}
}
37
Premier Programme (3)
• Compiler avec la commande :
javac Bienvenue.java
Remarquer que une classe « Bienvenue.class » est générée
• Exécuter en lançant la machine virtuelle java et en lui spécifiant le
point d'entrée
Java Bienvenue
38
Scanner
• C’est une classe utilisée pour «balayage» des types primitifs et
les chaines de caractères.
• Il peut être utilisé pour obtenir l'apport d'un InputStream, pour
analyser à travers une chaîne de texte ou de lire un fichier.
• C’est une classe qui s'interface parfaitement avec des flux de
lecture pour y permettre une lecture puissante et pratique
• Elle a fait son apparition dans le package java.util dans la
version 1.5.0 de java
Premier Programme
import java.util.Scanner;
public class Addition
{
public static void main( String args[] )
{
Scanner input = new Scanner( System.in );
int n1,n2,somme;
System.out.print(" Donner le premier entier: " );
n1 = input.nextInt();
System.out.print(" Donner un deuxième entier: " );
n2 = input.nextInt();
somme = n1 + n2;
System.out.printf( "Somme est %d\n", somme ); } }
40