<!-- Slide number: 1 -->
Conception par Objet et Programmation Java
1

Chapitre 1 : Introduction Java
Equipe Java | Wadii CHAMAKHI
2019-2020

Notes:
<!-- Slide number: 2 -->
2
Moyenne du module
50% Examen Finale
30% Devoir Surveillé
20% Contrôle Continue
<!-- Slide number: 3 -->
Plan
3
Introduction
Classe et objet
Encapsulation
Héritage
Polymorphisme
Exceptions
Connexion Base de donnée
Interfaces
Lambda Expression
Collections
Stream
<!-- Slide number: 4 -->
Objectifs
4
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 la syntaxe du langage
Comprendre et utiliser les API de java
<!-- Slide number: 5 -->
5

Aperçu : Orienté Objet
<!-- Slide number: 6 -->
Orienté Objet
6
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.
<!-- Slide number: 7 -->
Orienté Objet
7
Approche procédurale :
"Que doit faire mon programme ? "
Approche orientée-objet :
"De quoi doit être composé mon programme ?"

<!-- Slide number: 8 -->
Orienté Objet
8
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

<!-- Slide number: 9 -->
9
C++ vs Java
Pas de structures ni d’unions
Pas de typedef
Pas de variables ni de fonctions en dehors des classes
Pas d'héritage multiple de classes
Pas de surcharge d’opérateurs
Publicité
Pas de passage par copie pour les objets
Pas de pointeurs, seulement des références
<!-- Slide number: 10 -->
10

JAVA: La plateforme
<!-- Slide number: 11 -->
Qu’est ce que « Java » ?
11
Un langage de programmation orienté objet.
Java est portable : il est indépendant de toute plate-forme
Quels types d’application pour « java » ?





Java Embedded
Java Card
Java ME
Java SE
Java EE
<!-- Slide number: 12 -->
Programme en Java interprété/ compilé ?
12
Compiler le programme
- Traduire le programme dans un langage de bas niveau (machine)
- [éventuellement optimisation]
- Produire un programme (code) exécutable
Exécution
- Charger le programme en mémoire (typiquement en tapant le nom du programme exécutable)
- Exécution
<!-- Slide number: 13 -->
Programme JAVA (1)
13
Un programme Java est compilé et interprété
Compilé
-le code source est soumis à un compilateur, pour en faire un fichier binaire compréhensible par un microprocesseur (une sorte de pré- fichier .exe)
-le code source est, directement, 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)
Interprété
<!-- Slide number: 14 -->
Programme JAVA (2)
14

<!-- Slide number: 15 -->
JAVA: la Plateforme
15
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)

<!-- Slide number: 16 -->
Machine Virtuelle : JVM
16
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)
<!-- Slide number: 17 -->
API: Java Application Programming Interface
17
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
…..
<!-- Slide number: 18 -->
Publicité
18

JAVA: Les versions
<!-- Slide number: 19 -->
JAVA: Les versions
18
| Année | Evénements | Apports |
| --- | --- | --- |
| Mai 1995 | JDK 1.0 | |
| Mars 1997 | JDK 1.1 | + Java Beans + la sérialisation + JDBC pour l'accès aux données. + ….. |
| 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 Mars 2014 | Java SE 7 Java SE 8 | |
<!-- Slide number: 20 -->
JAVA: Les versions
20
Java 6 Vs. Java 7
Les améliorations proposées par la version SE 7 de Java:
Performance, stabilité et sécurité accrues.
Améliorations du plug-in Java pour le développement et le déploiement des applications Internet riches.
Une meilleure optimisation du code Java.
Améliorations de la machine virtuelle Java destinées à prendre en charge les langages autres que Java.
<!-- Slide number: 21 -->
JAVA: Les versions
21
Java 7 Vs. Java 8
Les nouvelles fonctionnalités proposées par la version SE 7 de Java:
- Lamda Expressions
- Generic Type changes and improvements
- Stream Collection Types (java.util.stream)
- Functional Interfaces (java.util.function)
- Nashorn – The Node.js on JVM
- Date/Time changes (java.time)
- Type Annotations

<!-- Slide number: 22 -->
22

JAVA: Notions, mots clé…
<!-- Slide number: 23 -->
Notions fondamentales
23
Classe / Objet / Instance
Attributs / Méthodes
Encapsulation
Héritage
Polymorphisme
<!-- Slide number: 24 -->
JAVA: Classe
24
les briques de constructions d’un programme JAVA sont les classes,
LES ATTRIBUTS :
Les attributs représentent la
description des données propres à chaque classe d'objets
les données (Propriétés)
Partie statique
LES METHODES :
Les méthodes représentent
l'ensemble des actions, procédures, fonctions ou opérations que l'on
peut associer à une classe
le code les manipulant (Méthodes)
Partie dynamique
Classe
<!-- Slide number: 25 -->
Les Identificateurs
25
• 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.
Publicité
[a..z, A..Z, $, _, μ ]{a..z, A..Z, $, _, μ, 0..9, Unicode}
<!-- Slide number: 26 -->
Mots clés Java
26
| 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 | |
<!-- Slide number: 27 -->
Règles de Nommage
27
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
<!-- Slide number: 28 -->
Types de données en Java
28
On distingue entre 2 grands groupes de types de données :
types primitifs
objets (instances de classe)
<!-- Slide number: 29 -->
Types primitifs
29
• 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)
<!-- Slide number: 30 -->
Types primitifs et valeurs
30

<!-- Slide number: 31 -->
Les enveloppeurs (Wrappers)
31
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.
Tous les enveloppeurs héritent de la classe Object et bénéficient de plusieurs méthodes utilitaires (comparaison, valeur maximale et minimale etc.).
<!-- Slide number: 32 -->
Les enveloppeurs (Wrappers)
32

<!-- Slide number: 33 -->
Structure conditionnelle/ittératif
33
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++)
Publicité
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++)
<!-- Slide number: 34 -->
34

JAVA: Premiers pas …
<!-- Slide number: 35 -->
Outils de développement (1)
35
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.
<!-- Slide number: 36 -->
Outils de développement (2)
36
| JRE (Java Runtime Environment) | L’environnement qui permet d'exécuter les applications java, Il est constitué de la JVM en particulier (Java Virtual Machine). |
| --- | --- |
| JDK (Java Development Kit) | Outils permettant de développer, compiler (javac), débuguer (jdb) et exécuter un programme java. Il y a aussi des outils d'archivage (jar), de génération de documentation (javadoc). |
<!-- Slide number: 37 -->
Outils de développement (3)
37
| IDE (Integrated Development Environment) | Un programme regroupant un ensemble d'outils pour le développement de logiciels. 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) |
| --- | --- |
Notes:
<!-- Slide number: 38 -->
Hello World (Pré-configuration)
38
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 )
<!-- Slide number: 39 -->
Premier Programme
39

<!-- Slide number: 40 -->
Les commandes en JAVA
40
Compiler avec la commande :
Remarquer qu’une classe « HelloWorld.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
Javac HelloWorld.java
Java HelloWorld
<!-- Slide number: 41 -->
Scanner
41
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
<!-- Slide number: 42 -->
Premier Programme
42
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" + somme );
}
}