0% ont trouvé ce document utile (0 vote)
200 vues71 pages

Cours de Programmation Orientée Objet Java

Ce document introduit le langage de programmation Java. Il présente les concepts clés de la programmation orientée objet et les principales caractéristiques de Java comme sa portabilité, sa robustesse et sa sûreté.

Transféré par

brain hub
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
200 vues71 pages

Cours de Programmation Orientée Objet Java

Ce document introduit le langage de programmation Java. Il présente les concepts clés de la programmation orientée objet et les principales caractéristiques de Java comme sa portabilité, sa robustesse et sa sûreté.

Transféré par

brain hub
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Université Cadi Ayyad

Ecole Supérieure de Technologie – Safi

Cours de la programmation orientée objet (JAVA)

: Cours 1

Pr. EL ABDELLAOUI SAID


Elabdellaoui.said@yahoo.fr

El Abdellaoui Saïd Programmation Orientée Objet : Java 2018 / 2019


SAID EL ABDELLAOUI Programmation Orientée Objet : Java 2018/ 2019
INTRODUCTION
INTRODUCTION GÉNÉRALITÉS SYNTAXE DE BASE LE PARADIGME OBJET QCM EXERCICES

INTRODUCTION
3

 Dans la programmation, on trouve deux grands mode :


 Procédurale
 Orienté Objet ( O.O )

 Procédurale : Les notions de variables/types de données et de traitement de ces données


étaient séparées :

Opèrent sur O.O

Traitement Données

Objet Influencent

SAID EL ABDELLAOUI Programmation Orientée Objet : Java 2018/ 2019


INTRODUCTION GÉNÉRALITÉS SYNTAXE DE BASE LE PARADIGME OBJET QCM EXERCICES

INTRODUCTION
4

 Dans la programmation, on trouve deux grands mode :


 Procédurale
 Orienté Objet ( O.O )

class Geometrie {
public static void main ( String [ ] args ) {
// Déclarations !!
Geometrie
double largeur = 3.0;
double hauteur = 4.0 ;
// Affichage !! - largeur,
System.out.println (‘‘ Surface du rectangle : ” - hauteur
+ surface (largeur, hauteur) );
// Méthode !!
double surface (largeur, hauteur){ surface (largeur, hauteur)
return (largeur × hauteur)
}
}
}

SAID EL ABDELLAOUI Programmation Orientée Objet : Java 2018/ 2019


INTRODUCTION GÉNÉRALITÉS SYNTAXE DE BASE LE PARADIGME OBJET QCM EXERCICES

INTRODUCTION
5

 Langage de programmation : historique

SAID EL ABDELLAOUI Programmation Orientée Objet : Java 2018/ 2019


INTRODUCTION GÉNÉRALITÉS SYNTAXE DE BASE LE PARADIGME OBJET QCM EXERCICES

INTRODUCTION
6

 L’histoire de JAVA a commencée depuis 1991 et lancé 1995 par SUN Microsystem TM sous un
projet nommé (‘‘Green Project’’).
 Son premier nom était OAK.
 Java est un langage orienté objet accompagné d’un ensemble énorme de bibliothèques standard
couvrant de très nombreux domaines.

 Java est basé sur une architecture logicielle nécessitant une machine virtuelle java (JVM).
Fichier.java Fichier.class
(Code source) (bytecode)
- -
------ ------ 1001000101
------ JAVAC ------ JVM
(Compilateur) (machine virtuelle)
------ ------

SAID EL ABDELLAOUI Programmation Orientée Objet : Java 2018/ 2019


GÉNÉRALITÉ
INTRODUCTION GÉNÉRALITÉS SYNTAXE DE BASE LE PARADIGME OBJET QCM EXERCICES

INTRODUCTION
8

 Java utilise les notions usuelles de la programmation orientée objet :


 Notion de Classe  Interface
 Encapsulation  Virtualité
 Héritage  Généricité….

 Java peut être utilisé pour créer des application dans plusieurs domaines :
 Sur client lourd (JFC)
 Web (survlets, JSP, JSF, Struts)
 Embarquées (J2ME)
 Sur carte à puce (JAVA CARD)

 De nombreuses fonctionnalités peuvent être ajoutées à ces applications :


 Accès à base de données ( JDBC, JDO)
 Accès à des annuaires
 Traitement XML

SAID EL ABDELLAOUI Programmation Orientée Objet : Java 2018/ 2019


INTRODUCTION GÉNÉRALITÉS SYNTAXE DE BASE LE PARADIGME OBJET QCM EXERCICES

GÉNÉRALITÉS
9

 Java est un langage simple, orienté objet, distribué, robuste, sûr, indépendant des architectures
matérielles, portable, de haute performance, multithread et dynamique.

 Simple & Robuste


 Abandonner les éléments mal compris ou mal exploites dans d’autres langages :
 Pas de pointeur
 Pas d’héritage multiple
 Typage des données très strict.
 Sûr
 Java n’est pas compilé à destination par un processeur particulier mais en “byte
code” qui pourra être ensuite interprété sur une machine virtuelle (JVM = Java
Virtual Machine). Le “byte code” généré est vérifié par les interpréteurs java avant
exécution.
 Un débordement de tableau déclenchera automatiquement une exception.
 L’absence d’arithmétique de pointeur évite les malversations.

SAID EL ABDELLAOUI Programmation Orientée Objet : Java 2018/ 2019


INTRODUCTION GÉNÉRALITÉS SYNTAXE DE BASE LE PARADIGME OBJET QCM EXERCICES

GÉNÉRALITÉS
10

 Portable
 Les types de données sont indépendants de la plate forme (par exemple les types
numériques sont définis indépendamment du type de plate forme sur laquelle le
byte code sera interprétée).

 Multi thread
 Une applications peut être décomposée en unités d’exécution fonctionnant
simultanément

 Dynamique
 Les classes Java peuvent être modifiées sans avoir à modifier le programme qui les
utilise

 Politique
 Java est actuellement totalement contrôlé par Oracle.

SAID EL ABDELLAOUI Programmation Orientée Objet : Java 2018/ 2019


INTRODUCTION GÉNÉRALITÉS SYNTAXE DE BASE LE PARADIGME OBJET QCM EXERCICES

GÉNÉRALITÉS
11

 POO : Structure d’une classe


 Programme Java utilise un ensemble de classes
 Les classes sont regroupées par package
 Une classe regroupe un ensemble d’attributs et de méthodes

Package
Classe

Attributs

Méthodes

SAID EL ABDELLAOUI Programmation Orientée Objet : Java 2018/ 2019


INTRODUCTION GÉNÉRALITÉS SYNTAXE DE BASE LE PARADIGME OBJET QCM EXERCICES

EDITIONS JAVA
12

 Java EE : “Enterprise Edition”. Rajoute certaines API et fonctionnalités


pour les entreprises.

 Java ME : “Micro Edition”. Edition qui sert à écrire des applications


embarquées
 Ex. : téléphone portable, carte à puce

 Java SE : “Standard Edition” :


 JRE : “Java Runtime Environment”. Contient la plate-forme
Java (JVM + API).
 JDK : (“Java Development Kit”). Contient le langage de
programmation et la plate-forme (compilateur + JVM + API)

SAID EL ABDELLAOUI Programmation Orientée Objet : Java 2018/ 2019


INTRODUCTION GÉNÉRALITÉS SYNTAXE DE BASE LE PARADIGME OBJET QCM EXERCICES

VERSIONS DE JAVA
13

 Java 1.0
 8 packages
 212 Classes et Interfaces
 1545 Méthodes

 Java 1.1
 23 packages
 504 Classes et Interfaces
 3 851 Méthodes

 Java 1.2
 60 packages
 1 781 Classes et Interfaces
 15 060 Méthodes

 Et bien plus encore dans les versions suivantes

SAID EL ABDELLAOUI Programmation Orientée Objet : Java 2018/ 2019


INTRODUCTION GÉNÉRALITÉS SYNTAXE DE BASE LE PARADIGME OBJET QCM EXERCICES

PLATE-FORME JAVA
14

 La plate-forme, en générale, est le matériel (“hardware”) et/ou l’environnement logiciel dans


lequel un programme s’exécute.

 La plate-forme Java est un environnement logiciel, composée de deux parties :

 API : (“Application Programming Interface “) grande collection de composants logiciels qui


offrent de nombreuses fonctionnalités.

 JVM : (“Java Virtual Machine”) le logiciel qui interprète le bytecode généré par le
compilateur Java.

Mon Programme

API
JVM
Système d’exploitation
Hardware

Plate forme
SAID EL ABDELLAOUI Programmation Orientée Objet : Java 2018/ 2019
INTRODUCTION GÉNÉRALITÉS SYNTAXE DE BASE LE PARADIGME OBJET QCM EXERCICES

PLATE-FORME JAVA
15

 Le JDK « Java Development Kit » est une boite à outils :

 Il fournit un compilateur java

 Il fournit une machine virtuelle « JVM»

 Il fournit un ensemble de bibliothèques d’outils pour faciliter la programmation.

 Le JVM a des avantages à savoir :

 Portabilité : le bytecode peut être chargé depuis une machine distante sur Internet.

 Sécurité : la JVM effectue des nombreuses vérifications sur le bytecode pour éviter
des actions “dangereuses”.

SAID EL ABDELLAOUI Programmation Orientée Objet : Java 2018/ 2019


INTRODUCTION GÉNÉRALITÉS SYNTAXE DE BASE LE PARADIGME OBJET QCM EXERCICES

VARIABLES D’ENVIRONNEMENT
16

 Les variables d’environnement doivent être correctement initialisées :

 CLASSPATH répertoire contenant les classes.

 JAVA HOME répertoire de base du JDK

 PATH répertoire contenant le compilateur et l’interpréteur

SAID EL ABDELLAOUI Programmation Orientée Objet : Java 2018/ 2019


INTRODUCTION GÉNÉRALITÉS SYNTAXE DE BASE LE PARADIGME OBJET QCM EXERCICES

NOTRE PREMIER PROGRAMME EN JAVA


17

Bonjour.java
public class Bonjour {
public static void main ( String [ ] args ) {
System.out.println ( ” Bonjour tout le monde !! ” );
}
}

 Le main est le point d’entrée pour l’exécution d’une application Java.


 La classe contenant la méthode statique main doit obligatoirement être public
pour que la machine virtuelle y ait accès.
 Le profil de cette méthode est public static void main ( String [ ] args )
 Public : pour qu’elle puisse être exécutée par la machine virtuelle java ( JVM).
 Static : pour que l’exécution puisse avoir lieu avant même la création d’une
instance de la classe.
 args : tableau d’objets String (chaînes de caractères) contenant les arguments
de la ligne de commande

SAID EL ABDELLAOUI Programmation Orientée Objet : Java 2018/ 2019


INTRODUCTION GÉNÉRALITÉS SYNTAXE DE BASE LE PARADIGME OBJET QCM EXERCICES

L’EXÉCUTION DE NOTRE PREMIER PROGRAMME


18

 Compilation (dans la console) :

 $ javac Bonjour
Bonjour..java

 Le compilateur reçoit un nom d’un fichier ayant pour suffixe .java. Ensuite, il génère
le bytecode dans un fichier ayant pour suffixe .class.

 Exécution (dans la console) :

 $ java Bonjour

Bonjour tout le monde !!

 Attention : La JVM reçoit un nom d’une classe (donc, pas de suffixe .class). Le fichier
contenant le bytecode de la classe doit être présent dans le même dossier.

SAID EL ABDELLAOUI Programmation Orientée Objet : Java 2018/ 2019


INTRODUCTION GÉNÉRALITÉS SYNTAXE DE BASE LE PARADIGME OBJET QCM EXERCICES

GÉNÉRALITÉS
19

 POO : Structure d’une classe


 Programme Java utilise un ensemble de classes
 Les classes sont regroupées par package
 Une classe regroupe un ensemble d’attributs et de méthodes

Package
Package
Classe

Attributs

Méthodes

SAID EL ABDELLAOUI Programmation Orientée Objet : Java 2018/ 2019


INTRODUCTION GÉNÉRALITÉS SYNTAXE DE BASE LE PARADIGME OBJET QCM EXERCICES

PACKAGES
20

 Un Package est une collection nommé de classes, d’interfaces et de sous-packages. Il permet


de regrouper sémantiquement des classes, des interfaces et des sous-packages
 AWT : Abstract Windows Toolkit
 Réseau : Sockets (serveurs, clients), Web …
 Entrées/Sorties : JAVA.io
 SQL
 Swing, SWT, …
java

SQL util awt net lang

Connection Date event Button Socket String


PreparedStatement Scanner List. URL Thread
… … … … … …

 Exemple
 java.lang ;  java.lang.String ;
 java.util.Data ;  java.awt.event.MouseEvent;

SAID EL ABDELLAOUI Programmation Orientée Objet : Java 2018/ 2019


INTRODUCTION GÉNÉRALITÉS SYNTAXE DE BASE LE PARADIGME OBJET QCM EXERCICES

PACKAGES
21

java

SQL util awt net lang

Connection Date event Button Socket String


PreparedStatement Scanner List. URL Thread
… … … … … …

java.util.Date dateDuJour = new java.util.Date();


System.out.println(dateDuJour);
Ou
import java.util.Date;
Date dateDuJour = new Date();
System.out.println(dateDuJour);
Ou
import java.util.* ;
Date dateDuJour = new Date();
System.out.println(dateDujour);

SAID EL ABDELLAOUI Programmation Orientée Objet : Java 2018/ 2019


SYNTAXE DE BASE
INTRODUCTION GÉNÉRALITÉS SYNTAXE DE BASE LE PARADIGME OBJET QCM EXERCICES

SYNTAXE DE BASE DU LANGAGE JAVA


23

 Les commentaires existent sous plusieurs formes:


 Commentaires multi lignes
 /*…..
*…..
….. */
 Commentaires sur une seule ou fraction de ligne
 //
 Commentaires destinés au générateurs de documentation javadoc
 /**
*
*/

SAID EL ABDELLAOUI Programmation Orientée Objet : Java 2018/ 2019


INTRODUCTION GÉNÉRALITÉS SYNTAXE DE BASE LE PARADIGME OBJET QCM EXERCICES

DÉCLARATION DE VARIABLES
24

 Déclaration de la variable :

Début Lettre Chiffre Fin

{0,1,…9}
{a,…, z, A,…,Z,_,$}

 Nom de la variable :
Type Nom_Variable;

 Type de données :

Taille
Type Intervalle Taille
(o) Type Intervalle
(o)
Byte 1 [-27, 27-1]
Types Entiers

Short 2 [-215, 215-1] Flottants Byte 4 [-1.4×10-45,3.4×1038]


Types

Int 4 [-231, 231-1] [-4.9×10-324,1.7×10308]


Short 8
Long 8 [-263, 263-1]

SAID EL ABDELLAOUI Programmation Orientée Objet : Java 2018/ 2019


INTRODUCTION GÉNÉRALITÉS SYNTAXE DE BASE LE PARADIGME OBJET QCM EXERCICES

TYPE DE DONNÉES PRÉDÉFINIS


25

 Nombres réels

 float simple précision sur 32 bits : 1.4032984e-45 3.40282347 e38

 double précision sur 64 bits : 4.94065645841243544 e-324 1.79769313486231570 e308

 Représentation des réels dans le standard IEEE 754 :

 Un suffixe "f" ou "d" après une valeur numérique permet de spécifier le type.

 Exemple

 double x = 154.56 d;

 float y = 23.4 f;

 float f = 23.65; //Erreur

SAID EL ABDELLAOUI Programmation Orientée Objet : Java 2018/ 2019


INTRODUCTION GÉNÉRALITÉS SYNTAXE DE BASE LE PARADIGME OBJET QCM EXERCICES

DÉCLARATION ET INITIALISATION DES VARIABLES


26

 boolean result = true;


 char capitalC = ’C’;
 byte b = 100;
 short s = 10000;
 int i = 100000;
 int decVal = 26; // Le numero 26, en decimal
 int octVal = 032; // Le numero 26, en octal
 int hexVal = 0x1a; // Le numero 26, en hexadecimal
 double d1 = 123.4;
 double d2 = 1.234e2; // notation scientifique
 float f1 = 123.4 f;

SAID EL ABDELLAOUI Programmation Orientée Objet : Java 2018/ 2019


INTRODUCTION GÉNÉRALITÉS SYNTAXE DE BASE LE PARADIGME OBJET QCM EXERCICES

TYPE DE DONNÉES PRÉDÉFINIS


27

 Boolean
 Valeurs true ou false
 Un entier non nul est également assimilé à true
 Un entier nul est assimilé à false

 Char Notation Signification


 Une variable de type char peut contenir un seul \b Backspace
caractère codé sur 16 bits (jeu de caractères 16 bits
Unicode contenant 34168 caractères) \t Tabulation
\n Line Feed
 Des caractères d’échappement existent \f Form Feed
\r Carriage Return
\‘ Apostrophe
\” Guillemet
\\ BackSlash

SAID EL ABDELLAOUI Programmation Orientée Objet : Java 2018/ 2019


INTRODUCTION GÉNÉRALITÉS SYNTAXE DE BASE LE PARADIGME OBJET QCM EXERCICES

JAVA : INCRÉMENTATION DE VARIABLE


28

 Incrémentation des variable :

Incrémenter la valeur de i par 1

i = i+1

i++

SAID EL ABDELLAOUI Programmation Orientée Objet : Java 2018/ 2019


INTRODUCTION GÉNÉRALITÉS SYNTAXE DE BASE LE PARADIGME OBJET QCM EXERCICES

JAVA : INSTRUCTION IF … ELSE


29

 Syntaxe :

if (condition) {

// Exécution des instructions si la condition est remplie

} else {

// Instructions si la condition n'est pas remplie

(condition) ? Instructions1 : Instructions2;

SAID EL ABDELLAOUI Programmation Orientée Objet : Java 2018/ 2019


INTRODUCTION GÉNÉRALITÉS SYNTAXE DE BASE LE PARADIGME OBJET QCM EXERCICES

JAVA : INSTRUCTION SWITCH


30

 Syntaxe : switch (Variable) {

case Argument1: Action; break;

default : Action;

 Exemple :
int note = 10;
switch (note) {
case 0 : System. out.println("0"); break;
case 10 : System. out.println(" Passable"); break;
case 20 : System. out.println("Parfait !"); break;
default : System. out.println("Default");
}

SAID EL ABDELLAOUI Programmation Orientée Objet : Java 2018/ 2019


INTRODUCTION GÉNÉRALITÉS SYNTAXE DE BASE LE PARADIGME OBJET QCM EXERCICES

JAVA : INSTRUCTION FOR


31

 Syntaxe :

for (initialisations ; condition ; mises à jour){

// instructions à exécuter tant que condition vérifiée instructions ;

 Exemple :

for ( int i=10 ; i > 0 ; i-- ) {

System.out.println( “ i est positive !! ");

SAID EL ABDELLAOUI Programmation Orientée Objet : Java 2018/ 2019


INTRODUCTION GÉNÉRALITÉS SYNTAXE DE BASE LE PARADIGME OBJET QCM EXERCICES

CHAÎNES DE CARACTÈRES
32

 Chaînes de caractères

 Les chaînes de caractères sont manipulées par la classe String (ce n’est donc
pas un type de données).

 Exemples :

String str = ”exemple de chaîne de caractères” ;

String chaine = ”Le soleil ” + ”brille” ; // Opérateur de concaténation

SAID EL ABDELLAOUI Programmation Orientée Objet : Java 2018/ 2019


INTRODUCTION GÉNÉRALITÉS SYNTAXE DE BASE LE PARADIGME OBJET QCM EXERCICES

CHAÎNES DE CARACTÈRES
33

 Java fournit un support spécial aux chaînes des caractères.

 Exemple de déclaration :

 String s = " une chaîne de caractères ";

 La valeur initiale d’une variable du type String est null (ainsi que pour toutes les
variables dont leur type est une classe d’objets).

 Mais attention!! Techniquement, String n’est pas un type primitif. Il s’agit d’une
classe du paquetage java.lang.

 Strings sont des objets immuables (“immutable objects”) : leur valeurs ne peuvent
pas être modifiés.

SAID EL ABDELLAOUI Programmation Orientée Objet : Java 2018/ 2019


INTRODUCTION GÉNÉRALITÉS SYNTAXE DE BASE LE PARADIGME OBJET QCM EXERCICES

COMPARAISON D’OBJETS
34

 Exemple 2: Comparaison de chaînes de caractères:

 String s1 = "Bonjour" ;

 String s2 = "bonjour" ;

 if (s1.equals (s2)) // Compare le contenu de s1 et s2.

 if (s1.equalsIgnoreCase (s2)) /*Compare le contenu de s1 et s2

sans tenir compte des majuscules et minuscules.*/

 Syntaxe :

 String.Fonction(String)
En générale
 Objet.Fonction(Objet)

SAID EL ABDELLAOUI Programmation Orientée Objet : Java 2018/ 2019


INTRODUCTION GÉNÉRALITÉS SYNTAXE DE BASE LE PARADIGME OBJET QCM EXERCICES

COMPARAISON D’OBJETS
35

 On ne peut pas comparer 2 objets en comparant les variables d’instance.

 Exemple 1 :

 r1 = new Rectangle (10,20) ;

 r2 = new Rectangle (30,40) ;

 r3 = new Rectangle (10,20) ;

 Comparaison des variables d’instance:

 r1 = = r2 → false

 r1 = = r3 → false

 Comparaison avec une méthode equals incluse dans la classe Rectangle

 r1.equals (r2) → false

 r1.equals (r3) → true

SAID EL ABDELLAOUI Programmation Orientée Objet : Java 2018/ 2019


INTRODUCTION GÉNÉRALITÉS SYNTAXE DE BASE LE PARADIGME OBJET QCM EXERCICES

JAVA : TABLEAUX
36

 Tableaux

 Contient nombre fixe d’éléments déterminé dans la déclaration.

 Contient des éléments de même type.

 Des tableau à deux dimensions sont des tableaux de tableaux.

Type [] nom_Tableau = new Type[dimension];

 Exemple :

 int Tableau1[ ] = new int[10];  int [ ] Tab;

Tableau1 = {1, 2, 3};  Tab[ 0 ] = 1;

ou

 int [ ] Tableau2 = {1, 2, 3};

SAID EL ABDELLAOUI Programmation Orientée Objet : Java 2018/ 2019


INTRODUCTION GÉNÉRALITÉS SYNTAXE DE BASE LE PARADIGME OBJET QCM EXERCICES

JAVA : TABLEAUX
37

Tableaux Statiques

 Le tableau est donc une sorte de « variable indicée ». On peut affecter une valeur à
un élément du tableau ainsi : monTableau[3] = 45;
 Si la taille du tableau est n, les indices sont compris entre 0 et n-1 !
 Affichage des éléments : Pour afficher les éléments d’un tableau, on doit faire
appel à une boucle. Deux possibilités :

int [] monTableau = {2 ,4 ,6 ,8};


/ / SOIT
for ( int element : monTableau ) {
System.out.println ( element ) ;}
/ / OU BIEN :
for ( int i =0; i < monTableau .length ; ++ i ) {
System.out.println ( monTableau [ i ]) ;}

Attention Une fois la taille est fixé au cours d’initialisation on peut plus la modifier
pendant le programme s’exécute
SAID EL ABDELLAOUI Programmation Orientée Objet : Java 2018/ 2019
INTRODUCTION GÉNÉRALITÉS SYNTAXE DE BASE LE PARADIGME OBJET QCM EXERCICES

JAVA : TABLEAUX
38

 La taille n’est pas modifiable et peut être consultée par la propriété length.

 Exemples :

for ( int i=0 ; i<Tab.length ; i++) ;

int [ ] [ ] Matrice = new int [10][20] ;


System.out.println (Matrice.length) ; // 1ère dimension
System.out.println (Matrice[0]. length) ; // 2ème dimension

SAID EL ABDELLAOUI Programmation Orientée Objet : Java 2018/ 2019


INTRODUCTION GÉNÉRALITÉS SYNTAXE DE BASE LE PARADIGME OBJET QCM EXERCICES

JAVA : TABLEAUX
39

 DemoTableau.java

public class DemoTableau {

public static void main ( String [ ] args ) {

int [ ] unTableau; // Déclaration


unTableau = new int[3]; // Allocation de mémoire
unTableau [ 0 ] = 100; // Initialisation
unTableau [ 1 ] = 200;
unTableau [ 2 ] = 300;

System.out.println(” Element 0: ” + unTableau[0]);


System.out.println(” Element 1: ” + unTableau[1]);
System.out.println(” Element 2: ” + unTableau[2]);

}
}

SAID EL ABDELLAOUI Programmation Orientée Objet : Java 2018/ 2019


INTRODUCTION GÉNÉRALITÉS SYNTAXE DE BASE LE PARADIGME OBJET QCM EXERCICES

JAVA : ENTRÉES / SORTIES


40

 Pour afficher une chaine de caractère :

 Faire appel à la bibliothèque System.out.

System.out.println("Chaine de caractère") ;

 Pour lire une chaine de caractère :

 Importer la bibliothèque java.util.Scanner;

Scanner s = new Scanner(System.in);


int i = s. nextInt();

SAID EL ABDELLAOUI Programmation Orientée Objet : Java 2018/ 2019


QCM
INTRODUCTION GÉNÉRALITÉS SYNTAXE DE BASE LE PARADIGME OBJET QCM EXERCICES

QCM
42

Exercice 1 :
Lesquelles des signatures suivantes de la méthode main sont-elles valides :

a) public static void main ()


b) public static void main (String args [ ])
c) public void main (String [ ] arg)
d) public static void main (String [ ] args)
e) public static void main (String [ ] arg)

Exercice 2 :

Après l'exécution des instructions suivantes quelles sont les valeurs des variables x, a et b?
int x, a=6, b=7; a= 7
x= a++ + b++ b= 8
x= 6+7=13

SAID EL ABDELLAOUI Programmation Orientée Objet : Java 2018/ 2019


INTRODUCTION GÉNÉRALITÉS SYNTAXE DE BASE LE PARADIGME OBJET QCM EXERCICES

QCM
43

Exercice 3 :
Le programme suivant compile-t-il ? justifier

a) byte b = 5;
b) Byte c = 3 ;
c) short s = 55;

b = s; Byte est codé sur un octet et short est codé


sur 2 octets

b= b* b1 Les operateurs sont pas impliqués au type


byte.

SAID EL ABDELLAOUI Programmation Orientée Objet : Java 2018/ 2019


INTRODUCTION GÉNÉRALITÉS SYNTAXE DE BASE LE PARADIGME OBJET QCM EXERCICES

QCM
44

Exercice 4 :
Quel est le résultat de l’exécution du code suivant ?

public class Ternaire{


public static void main ( String [ ] args ) {
int x=2;
System.out.println (”La valeur est : ” + ((x>2) ? 10.0 : 7) ) ;
}
}

La valeur est : 7.0

SAID EL ABDELLAOUI Programmation Orientée Objet : Java 2018/ 2019


TD 1
LE PARADIGME OBJET
INTRODUCTION GÉNÉRALITÉS SYNTAXE DE BASE LE PARADIGME OBJET QCM EXERCICES

MODES DE PROGRAMMATION
47

 Dans la programmation, on trouve deux grands mode :


 Procédurale
 Orienté Objet ( O.O )

 Procédurale : Les notions de variables/types de données et de traitement de ces


données étaient séparées :

Opèrent sur O.O

Traitement Données

Objet Influencent

SAID EL ABDELLAOUI Programmation Orientée Objet : Java 2018/ 2019


INTRODUCTION GÉNÉRALITÉS SYNTAXE DE BASE LE PARADIGME OBJET QCM EXERCICES

CONCEPTS DES LANGAGES OBJET ( CLASS)


48

 Concept de base de la programmation orientée objet : la classe

 Classe est un type abstrait caractérisé par des propriétés (Attributs et méthodes).

class nom_de_la_class {

// Corps de la classe
}

 Le langage « java » oblige à ce que le fichier contenant la description d'une


classe porte le nom de celle-ci.

 Un objet d’une classe est appelé une instance.

Description

Class Objet

Instance

SAID EL ABDELLAOUI Programmation Orientée Objet : Java 2018/ 2019


INTRODUCTION GÉNÉRALITÉS SYNTAXE DE BASE LE PARADIGME OBJET QCM EXERCICES

CONCEPTS DES LANGAGES OBJET ( CLASS)


49

Description (Class, …) Instanciation (Objet : main)

Class GUI

Class Zip

SAID EL ABDELLAOUI Programmation Orientée Objet : Java 2018/ 2019


INTRODUCTION GÉNÉRALITÉS SYNTAXE DE BASE LE PARADIGME OBJET QCM EXERCICES

CLASSES D’OBJETS (EXEMPLE)


50

 Exemple : Définir une classe Velo :

 Attributs : vitesse

 Méthodes : Accélérer, Freiner et ImprimeEtat

Velo

-Vitesse

Accélérer()
Freiner()
ImprimeEtat()

SAID EL ABDELLAOUI Programmation Orientée Objet : Java 2018/ 2019


INTRODUCTION GÉNÉRALITÉS SYNTAXE DE BASE LE PARADIGME OBJET QCM EXERCICES

DÉFINITION D’UNE CLASSE


51

class Velo {
 Velo..java
Velo
// Attributs
int vitesse = 0;

// Méthodes
void accelerer(int increment) {
vitesse = vitesse + increment; }

void freiner(int decrement) {


vitesse = vitesse – decrement; }

void imprimeEtat() {
System.out.println( ’’ Vitesse = ’’ + vitesse); }
}

SAID EL ABDELLAOUI Programmation Orientée Objet : Java 2018/ 2019


INTRODUCTION GÉNÉRALITÉS SYNTAXE DE BASE LE PARADIGME OBJET QCM EXERCICES

CRÉATION DES OBJETS ET MESSAGES


52

class DemoVelo {
 DemoVelo..java
DemoVelo
public static void main ( String [ ] args ) {

// Génère deux objets différents du type Velo


Velo V1 = new Velo();
Velo V2 = new Velo();

// Invoque les méthodes


V1.accelerer(10);
V1.imprimeEtat();
V2.accelerer(20);
V2.imprimeEtat();
}
}

SAID EL ABDELLAOUI Programmation Orientée Objet : Java 2018/ 2019


INTRODUCTION GÉNÉRALITÉS SYNTAXE DE BASE LE PARADIGME OBJET QCM EXERCICES

COMPILATION ET EXÉCUTION
53

 Compilation :

 $ javac Velo.java DemoVelo.java

 Exécution :

 $ java DemoVelo

 Affichage :

 vitesse: 10

 vitesse: 20

 Chaque objet (V1 et V2) instance de la classe Velo possédera sa propre vitesse

V1 V2

Vitesse Vitesse

SAID EL ABDELLAOUI Programmation Orientée Objet : Java 2018/ 2019


INTRODUCTION GÉNÉRALITÉS SYNTAXE DE BASE LE PARADIGME OBJET QCM EXERCICES

HÉRITAGE
54

 Il existent plusieurs types de vélos.

 Ex. : vtt, vélo route, vélo ville

 Ils ont plusieurs caractéristiques communes.

 Il est possible de créer une sous-classe qui hérite l’état et le comportement


d’une superclasse.

 Cela permet de réutiliser le code de la superclasse.

class VeloRoute extends Velo


{
// Nouvelles variables et méthodes ...
}

SAID EL ABDELLAOUI Programmation Orientée Objet : Java 2018/ 2019


INTRODUCTION GÉNÉRALITÉS SYNTAXE DE BASE LE PARADIGME OBJET QCM EXERCICES

OBJETS ( ENCORE UNE FOIS)


55

 Un objet est une instance d’une (seule classe) :

 il se conforme à la description que celle-ci fournit,

 il admet une valeur (qui lui est propre) pour chaque attribut déclaré dans la classe,

 ces valeurs caractérisent l’état de l’objet,

 il est possible de lui appliquer toute opération (méthode) définit dans la classe.

 Tout objet admet une identité qui le distingue pleinement des autres objets:

 il peut être nommé et être référencé par un nom.

SAID EL ABDELLAOUI Programmation Orientée Objet : Java 2018/ 2019


INTRODUCTION GÉNÉRALITÉS SYNTAXE DE BASE LE PARADIGME OBJET QCM EXERCICES

CRÉATIONS D’OBJETS
56

 Syntaxe : new constructeur (liste de paramètres)

 les constructeurs ont le même nom que la classe

 il existe un constructeur par défaut

Velo v1;
v1 = new Velo();

// Ou

Velo v2 = new Velo();

// opération

Velo v3 = v2;

SAID EL ABDELLAOUI Programmation Orientée Objet : Java 2018/ 2019


INTRODUCTION GÉNÉRALITÉS SYNTAXE DE BASE LE PARADIGME OBJET QCM EXERCICES

CONSTRUCTEUR DE CLASSE
57

 Un constructeur est une méthode automatiquement appelée au moment de la création de


l’objet.

 Si aucun constructeur n’est défini par le programmeur, java considère que la classe est
munie d’un constructeur par défaut.

 Un constructeur est utile pour procéder à toutes les initialisations nécessaires lors de la
création de la classe.

 Règles des constructeurs en java :


 Les constructeurs en java portent le nom de la classe.
 Les constructeurs n’ont pas de type de retour.
 Une même classe peut avoir plusieurs constructeurs qui doivent se distinguer par leurs
paramètres.
 Si une classe hérite d’une autre classe, son constructeur doit appeler impérativement
celui de la classe mère en utilisant le mot clef « super ».

SAID EL ABDELLAOUI Programmation Orientée Objet : Java 2018/ 2019


INTRODUCTION GÉNÉRALITÉS SYNTAXE DE BASE LE PARADIGME OBJET QCM EXERCICES

CONSTRUCTEUR DE CLASSE
58

class Compte
{
\\attributs
int numero;
float solde;

\\constructeur
public Compte (int num, float s)
{
numero = num ;
solde = s ;
}
}

Compte co1 = new Compte (1234, 1000.00f); \\ dans le main

SAID EL ABDELLAOUI Programmation Orientée Objet : Java 2018/ 2019


INTRODUCTION GÉNÉRALITÉS SYNTAXE DE BASE LE PARADIGME OBJET QCM EXERCICES

REPRÉSENTATION MÉMOIRE
59

 V1 et V2 contiennent l’adresse des zones mémoires allouées par l’opérateur new


pour stocker les informations relatives à ces objets.

 V1 et V2 sont des références.

 La référence d’un objet est utilisée pour accéder aux données et fonctions
membres de l’objet.

 Un objet peut accéder à sa propre référence grâce à la valeur this (variable en


lecture seule).

 Une référence contenant la valeur null ne désigne aucun objet.

 Quand un objet n’est plus utilisé (aucune variable du programme ne contient une
référence sur cet objet), il est automatiquement détruit et la mémoire est récupérée
(garbage collector)

SAID EL ABDELLAOUI Programmation Orientée Objet : Java 2018/ 2019


INTRODUCTION GÉNÉRALITÉS SYNTAXE DE BASE LE PARADIGME OBJET QCM EXERCICES

DESTRUCTEUR DE CLASSE
60

 Un destructeur peut être utilisé pour libérer les ressources spécifiques


(déconnexion d’une base de données, fermeture d’un fichier, ...).

 Il est appelé lorsque le ‘garbage collector’ récupérera la mémoire.

 Un destructeur est une méthode:

 void finalize ()

SAID EL ABDELLAOUI Programmation Orientée Objet : Java 2018/ 2019


INTRODUCTION GÉNÉRALITÉS SYNTAXE DE BASE LE PARADIGME OBJET QCM EXERCICES

SURCHARGE DE MÉTHODES
61

 Une méthode (y compris le constructeur) peut être définie plusieurs fois avec le même nom
à condition de se différencier par le nombre et/ou le type des paramètres transmis
(polymorphisme).

 Le compilateur décidera de la bonne méthode à utiliser en fonction des paramètres d’appel.

 Exemple :

class BarreDeProgression {

float pourcent ;

public void setPourcent (float valeur)


{ pourcent = valeur ; }

public void setPourcent (int effectue, int total)


{ pourcent = total/effectue ; }

SAID EL ABDELLAOUI Programmation Orientée Objet : Java 2018/ 2019


INTRODUCTION GÉNÉRALITÉS SYNTAXE DE BASE LE PARADIGME OBJET QCM EXERCICES

TYPES DE VARIABLE
62

 Attributs : (ou variables membres de classe) variables définies dans une classe ( à
l’extérieur de ses méthodes).

 Attribut d’instance : sa valeur est différente pour chaque instance de la classe


(défaut).

 Attribut de classe : sa valeur est la même pour toute instance de la classe.

 Variables locales : variables définies dans le corps de déclaration d’une méthode.


(Visible seulement à l’intérieur de la méthode correspondante.)

 Paramètres : variables définies dans la liste des paramètres d’une méthode. (Visibles
seulement à l’intérieur de la méthode correspondante.

SAID EL ABDELLAOUI Programmation Orientée Objet : Java 2018/ 2019


INTRODUCTION GÉNÉRALITÉS SYNTAXE DE BASE LE PARADIGME OBJET QCM EXERCICES

ACCÈS AUX ATTRIBUTS D’UN OBJET


63

 Pour accéder aux attributs d’un objet on utilise une notation pointée :

nomDeObjet.nomDAttributDinstance

 Remarque : Similaire à celle utilisée en C pour l’accés aux champs d’une structure (Struct).

Velo v1;
v1 = new Velo();
Velo v2 = new Velo();
Velo v3 = v2;
v1.vitesse = 10;
v2.vitesse = 10;
v3.vitesse = v1.vitesse + v2.vitesse;

SAID EL ABDELLAOUI Programmation Orientée Objet : Java 2018/ 2019


INTRODUCTION GÉNÉRALITÉS SYNTAXE DE BASE LE PARADIGME OBJET QCM EXERCICES

ENVOI DE MESSAGES (EXEMPLE)


64
 Syntaxe :
 nomDeObjet.nomDeMethode(< paramètre effectifs >)

void accelerer(double dx)


{
vitesse + = dx;
}

void freiner(double dx){


vitesse - = dx;
}
} //Velo

Velo v1 = new Velo();


Velo v2 = new Velo();
v1.accelerer(10.0);
v2.freiner(20.0);
System.out.println(”vitesse de v1 est de ”+v1.vitesse);
SAID EL ABDELLAOUI Programmation Orientée Objet : Java 2018/ 2019
INTRODUCTION GÉNÉRALITÉS SYNTAXE DE BASE LE PARADIGME OBJET QCM EXERCICES

L’OPÉRATEUR INSTANCEOF
65

 DemoInstanceof1.java

class DemoInstanceof1 {
public static void main(String[] args) {
Pere obj = new Pere();
System.out.println("obj instanceof Père :" + (obj instanceof Pere));
System.out.println("obj instanceof Fils :" + (obj instanceof Fils));
}
}

Class Pere {}

class Fils extends Pere {}


$ javac DemoInstanceof1.java
$ java DemoInstanceof1
obj instanceof Pere: true
obj instanceof Fils: false

SAID EL ABDELLAOUI Programmation Orientée Objet : Java 2018/ 2019


INTRODUCTION GÉNÉRALITÉS SYNTAXE DE BASE LE PARADIGME OBJET QCM EXERCICES

EXERCICES
66

 Ecrire un programme qui permet de lire 3 nombres entiers et affiche le


maximum.

 Ecrire un programme qui permet de lire des nombres à partir du clavier et


d'affiche le maximum, minimum et la moyenne. La lecture des nombres
s'arrête lorsque la valeur 0 est entrée. Exemples d'exécution du programme:

Entrez un nombre : 8
Entrez un nombre : 12
Entrez un nombre : 0
Le max = 12 & Le min = 8 & La moyenne = 10

SAID EL ABDELLAOUI Programmation Orientée Objet : Java 2018/ 2019


INTRODUCTION GÉNÉRALITÉS SYNTAXE DE BASE LE PARADIGME OBJET QCM EXERCICES

EXERCICE
67

 Ecrire une classe Compte contenant :

 Attributs : Numéro du compte et solde

 Méthodes : initialiser, déposer, retirer, consulter_Solde et Afficher.

 Ecrire une classe Banque qui gère plusieurs objets de type Compte

SAID EL ABDELLAOUI Programmation Orientée Objet : Java 2018/ 2019


INTRODUCTION GÉNÉRALITÉS SYNTAXE DE BASE LE PARADIGME OBJET QCM EXERCICES

CORRECTION
68

 Ecriture de la classe :

public class Compte {


// attributs
int numero ;
float solde ;
// méthodes
void initialiser (int n, float s) { numero = n ; solde = s ; }

void deposer (float montant) { solde = solde + montant ; }

void retirer (float montant) { solde = solde - montant ; }

float consulterSolde ( ) { return solde ; }

void afficher() { System.out.println (”Compte : ” + numero + ” solde: ” + solde) ;}


}

SAID EL ABDELLAOUI Programmation Orientée Objet : Java 2018/ 2019


INTRODUCTION GÉNÉRALITÉS SYNTAXE DE BASE LE PARADIGME OBJET QCM EXERCICES

CORRECTION
69

 Utilisation de la classe Compte:


public class Banque {
public static void main ( String [ ] args ) {
Compte co1 = new Compte () ;
Compte co2 = new Compte () ;
//invocation des méthodes
co1.initialise (1234,1000f) ;
co2.initialise (5678,500f) ;
co1.deposer (2100.95f) ;
co1.afficher () ;
co2.retirer (1000.0f) ;
co2.afficher () ;
}
}

SAID EL ABDELLAOUI Programmation Orientée Objet : Java 2018/ 2019


TD 1

Vous aimerez peut-être aussi