Académique Documents
Professionnel Documents
Culture Documents
Mécanismes de base
Ahmed ZELLOU
Variables
Variable: contient une valeur
x 11
Types
int: entier, long,
booleen: true/false
La type char
3
@A.ZELLOU
POO JAVA
Quelques chars
Primitive Syntaxe
char ‘x’
\b : arrière
\f : saut de page
\n : saut de ligne
\r : retour chariot
\t : tabulation horizontale
\\ : backslash
\’ : guillemet simple
\” : guillemet double
\Ooo : caractère dont code est oo en octal
\uxxxx: code unicode est xxxx en hexa
4
@A.ZELLOU
POO JAVA
Variables
Définition
Type nomDeVariable;
float f=3.14;
char c=‘c’;
bool rep=true; // or 1
Casting
Attention au Typage
byte i=55 ; //correcte
Casting (moulage)
réaliser une conversion d’un type vers un autre type
Exemple
float a=(float) 5.5;
double c=(double) 5;
Constantes
Variables qui ne changent pas de valeur
Java ne comporte pas de constantes à proprement parler
L’utilisation des constantes peut être simulée à l’aide du mot
clé final
final int NOTE_VALIDATION = 10;
System.out.println(NOTE_VALIDATION);
NOTE_VALIDATION=12; //Erreur
Convention : en majuscule
Les variables déclarées final peuvent être initialisées lors de
l’exécution et non seulement lors de leur déclaration
7
@A.ZELLOU
POO JAVA
Les opérateurs
Arithmétique
*, /, +, -, %
Logiques
&&, | |, !
Comparaison
>, >=, < , <=, ==, !=
Assignement
*=, /=, +=, -=, %=
Pas
++, --
Concaténation
+ 8
@A.ZELLOU
POO JAVA
Output : print
printf classique
int x=3;
float y=(float) 5.2;
String ch="TUIF";
System.out.printf("x
= %d, y = %f et ch
=
%s\n", x, y,ch);
print
System.out.print("ch
aine. ");
println
System.out.println("
chaine."); 9
@A.ZELLOU
POO JAVA
Output : print
Opérateurs dans print
int x = 5, y = 6;
System.out.println(x+y); //11
System.out.println(1 + x + y); //12
System.out.println("output " + (x + y)); //
11
System.out.println("output " + x + } // 56
y);
Exemple
char c = 67, d = 'C';
System.out.println(c+d); //134
System.out.println(d); // C C
10
@A.ZELLOU
POO JAVA
Input : Scanner
Une bibliothèque pour lecture, disponible dans le package
java.util.
La méthode nextLine() permet de lire une chaine.
Sortie :
11
@A.ZELLOU
POO JAVA
Scanner
Quelques méthodes de Scanner :
méthode Description
nextLine() Lit une valeur String
nextBoolean() Lit une valeur booléenne
nextByte() Lit une valeur byte
nextDouble() Lit une valeur double
nextFloat() Lit une valeur float
nextInt() Lit une valeur int
nextLong() Lit une valeur long
nextShort() Lit une valeur short
hasNext() Lit une nouvelle entrée
reset() Réinitialise le scanner
findInLine(String pattern) Retourne la ligne si elle contient le pattern 12
@A.ZELLOU
POO JAVA
Scanner
13
@A.ZELLOU
POO JAVA
Condition
Correspond à vrai ou faux
if (age < 18)
System.out.println("mineur");
else
System.out.println("majeur");
Condition
Exemple
15
@A.ZELLOU
POO JAVA
Atelier
Exercice 1:
Ecrivez un programme qui permet de lire un entier saisie au
Exercice 2:
Modifiez le programme précédent pour traiter aussi les
valeurs nulles. Si l’entier est nul, le programme affichera «
entier null ».
16
@A.ZELLOU
POO JAVA
Condition
Switch
Simplifie le test de plusieurs valeurs d'une variable.
switch (Voyelle)
{
case 'a' : System.out.println("Oui, c’est a"); break;
case 'e' : System.out.println("Oui, c’est e");
break;
.........
case 'y' : System.out.println("Oui, c’est y"); break;
default:
} System.out.println("Non"); break; // facultatif 17
@A.ZELLOU
POO JAVA
Boucles
Pour un traitement répétitif
public static void main(String[] args)
public static void main(String[] args)
{
{
int i=1, somme = 0;
int i, somme = 0;
while (i<=10) { somme = somme + i;
for (i = 1; i<=10; i++) somme = somme +
i++; }
i; System.out.println(“somme ="+somme);
System.out.println(“somme ="+somme);
}
}
Concept
s nombre
Exemple : Factorielle d’un
Exercice
Exercice 1:
Saisir un entier, calculer n! via la boucle for.
Exercice 2 :
Écrire un programme qui affiche les nombres de 1 à 10.
Exercice 3 :
Écrire un programme qui calcule la somme des entiers de 1
à 500.
Exercice 4 :
Écrire un programme qui affiche les nombres de 20 à 1 de
trois en trois.
Exemple : 20 19 18
17 16 15
14 13 12
20
@A.ZELLOU
POO JAVA
Tableaux
Pour stocker une suite de données de même nature
Déclaration
int [] nombre; // un tableau à 1 dimension
Création
T = new int[10]; // crée les cases T[0] à T[9]
int[] nombre = {1, 2, 3, 5, 7, 7+4}; // déclare
et initialise
Utilisation
nombre[0] = 4;
for (int i=0; i<nombre.length; i+
+) nombre[i]=nombre[i]+1;
21
@A.ZELLOU
POO JAVA
Tableaux
Boucle: Syntaxe
for (type var : array)
{
statements using var;
}
Exemple
int[] nombre = {1, 2, 3, 4,
5};
for (int x : nombre)
{
System.out.println(x);
}
22
@A.ZELLOU
POO JAVA
Chaines de caractères
string: un objet qui stocke une suite de caractères de type char.
Déclaration
String nom = "Mas. TUIF";
index 0 1 2 3 4 5 6 7 8
character M a s . T U I F
Exemple:
+ : l'opérateur de concaténation.
23
@A.ZELLOU
POO JAVA
Chaines de caractères
Exemples de fonctions
24
@A.ZELLOU
POO JAVA
26
@A.ZELLOU
POO JAVA
Chaines de caractères
27
@A.ZELLOU
POO JAVA
Comparaison de String
Les opérateurs de comparaison <, <=, >, >= == != ne
fonctionnent pas pour les objets.
Scanner console = new Scanner(System.in);
System.out.print("What is your name?
");
String name = console.next();
if (name == "Zellou")
System.out.println("He’s a
Professor");
Le code se compile, mais ne fonctionne pas.
Les objets sont comparés via la méthode equals.
if (name.equals("Zellou"))
System.out.println("He’s a Professor");
Autres :
28
equals(str), equalsIgnoreCase(str),
@A.ZELLOU
startsWith(str), endsWith(str), contains(str)
Démarche Objet
POO JAVA
Démarche Objet
Opérations
Compte
Classe nom
solde Création de la classe Compte
déposer() Création des objets : cl1 et
retirer()
avoirSolde() cl2 cl1 depose 7500
Instanciation
cl2 depose 1200
cl1 demande le
solde cl1 retire
Compte:cl1 Compte:cl2 1000
nom="Alaoui" nom="Baroudi"
Objets solde=7500.0
cl2 demande le
solde=41500.0 solde cl2 depose
2000
…..
30
@A.ZELLOU
POO JAVA
Première Classe
La classe Personne Compte
{this.nom=nom;
this.Prenom=Prenom;
this.age=age;
this.Taille=Taille;}
public static void
main(String[] args)
{
Personne p=new
Personne("zellou","a 31
}}
hmed",1, @A.ZELLOU
(float)86.50);
POO JAVA
Constructeu
Méthode publiquerspéciale avec même nom que la
classe
Sa fonction est d'instancier un objet
constructeurs
Si indéfini, java attribue automatiquement un
Visibilité
Public
variables et méthodes visibles par toutes les
classes
private
variables et méthodes visibles seulement dans la
classe
protected
variables et méthodes visibles dans les classes
33
@A.ZELLOU
POO JAVA
Encapsulation
Interdire l’accès aux attributs et fournir l’accès via
des méthodes
public class Personne {
public String sportPrefere;
Personne
private String nom; + String sportPrefere
protected String - String nom
nationalite;
String platPrefere;
# String nationalite
~ String platPrefere
public String getNom() {
return nom;
}
public void setNom(String
nom)
{
this.nom = nom;
}
….
} 34
@A.ZELLOU
POO JAVA
Héritage
Permet la classification hiérarchique des classes
Classe Mère et classe dérivée
véhicule
4x4 utilitaire
La classe dérivées possède tous les attributs/méthodes
de la classe mère.
Mais comporte des informations supplémentaires 35
@A.ZELLOU
POO JAVA
Héritage
Permet à un objet d’acquérir les propriétés
d’un autre objet
Permet de factoriser les connaissances
La classe mère est plus générale
Contient les propriétés communes à toutes les
elles.
36
@A.ZELLOU
POO JAVA
Héritage
Exemples d’héritages :
Une Voiture est un Véhicule
Un Vélo est un Véhicule
Une VTT est un Vélo
Un Employe est un Personne
Une ImageGIF est un Image
Un PointColore est un Point
Un Polygone est une figure géométrique
Héritage
Employé Personne
Héritage
Ce que peut faire une classe fille :
Ajouter des attributs
Ajouter des méthodes
Définir des constructeurs
Redéfinir des méthodes (même signature)
Surcharger des méthodes (même nom mais pas
même signature)
39
@A.ZELLOU
POO JAVA
Héritage
Ce que ne peut pas faire une classe fille :
Retirer un attribut
Retirer une méthode
Accéder aux attributs/méthodes privés
Ces attributs/méthodes sont utilisés pour le bon
fonctionnement de la classe, mais elle ne peut pas
les utiliser explicitement
Utilisez la visibilité protected
Héritage
Empêcher l'héritage : mesure de sécurité
Le mot-clé final : pour empêcher la surcharge
d'une classe/méthode.
public class Employe extends
Personne{ public final class A {
public void ouSuisJe()
{ System.out.println("Je suis dans
A !") ;
}
}
public B {
public final void ouSuisJe()
{ System.out.println("J'y suis j'y
reste !") ;
}
} Les API standard de Java sont finales : String,
Arrays, Files, … 41
@A.ZELLOU
POO JAVA
Polymorphisme
Capacité d'une entité à posséder plusieurs
formes.
De deux types :
Polymorphisme statique ou la surcharge de
méthode
plusieurs méthodes ayant le même nom,
de méthode
méthode ayant la même signature dans les
Surcharge (overloading)
public class De
Main (test1)
{ private int nbFaces;
De d=new
private int
De();
faceVisible;
d.lancer();
d.afficherResultat();
public De (int nbFaces)
//constructeur
public De ()
this.nbFaces
{ // = surchargé avec des face entre 1 et
constructeur
nbFaces;}
100 this.nbFaces = (int) (Math.random() * 100) +
1;}
public void lancer () //génère une face aléatoire
{
this.faceVisible = (int) (Math.random() * this.nbFaces)
+ 1;
}
public void afficherResultat()
{
System.out.println("La face tirée aléatoire est
}
:"+this.faceVisible); Main (test2)
} De d=new De(50);
d.lancer();
43
d.afficherResultat();
@A.ZELLOU
POO JAVA
Redéfinition (overriding)
public class Perceuses {
private int puissance;
private int
vitesse_rotation;
public Perceuses(int
puissance, int
vitesse_rotation)
{
this.puissance = puissance;
this.vitesse_rotation = vitesse_rotation;
}
public String describe()
{
return "La puissance est de"+ this.puissance+" watts et la
vitesse de rotation est de "+this.vitesse_rotation+"tr/mns");
}
public void display()
{
System.out.println(this.describe()); 44
}
@A.ZELLOU
POO JAVA
Redéfinition (overriding)
public class Perceuses_sans-fil extends Perceuses
{ private String batterie;
Atelier
1. Créer la classe Cours avec la méthode
démarrer().
Le cours a les attributs suivants : intitulé,
heure_début, heure_fin, type (majestral, TD, TP)
2. Définir au moins deux méthodes
surchargées.
3. Créer les classes Cours en présentiel, Cours à
distance, et Cours enregistré.
4. Redéfinir la méthode démarrer() dans les trois
classes.
5. Tester avec des données réelles. @A.ZELLOU
46
POO JAVA
@A.ZELLOU
POO JAVA
Exemple : écriture
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
public class Persistance {
private File fichier;
public Persistance(String
fichier)
{
this.fichier=new
File(fichier);
}
Exemple : lecture
public class Persistance {
Atelier
1. L’objectif de cet atelier est d’utiliser les fichiers comme
support de persistance pour l’enregistrement permanent des
données du Manager.
2. Ecrivez un programme conteant une classe Persistance avec
une méthode save() qui permet de stocker les données du
Manager dans le fichier "data.txt".
3. Tester dans la méthode main.
4. Rajouter dans la classe Persistance la méthode read() qui
permet de lire le contenu du fichier, de construire le
Manager et d’afficher ces données.
5. Tester dans la méthode main.
50
@A.ZELLOU
POO JAVA
Interface Graphique
Swing
Fourni une boîte à outils légère pour créer des
51
@A.ZELLOU
POO JAVA
Interface Graphique
Swing
52
@A.ZELLOU
POO JAVA
Interface Graphique
Swing
import javax.swing.*;
class Formulaire extends JFrame {
private Container c; // Composant du Formulaire
private JLabel titre; // Composant du Formulaire
public Formulaire()
{
setTitle("Formulaire d'inscription");
setBounds(300, 90, 600, 600);
setDefaultCloseOperation(EXIT_ON_CLOSE);
setResizable(false);
c = getContentPane(); //retourne le conteneur
Jpanel de Jframe
c.setLayout(null); //Pour supprimer le Layout par défaut d'une classe
titre = new JLabel("Insription");
titre.setFont(new Font("Arial", Font.PLAIN, 30));
titre.setSize(300, 30); //hauteur et largeur
titre.setLocation(200, 30); //la position (x,y) sur l'écran
c.add(titre);
}
public static void main(String[] args) throws Exception
{
Formulaire f = new Formulaire();
53
f.setVisible(true); //afficher ou cacher le formulaire
} @A.Z OU
} ELL
POO JAVA
Atelier
1. Créer l’interface d’ajout d’un employé
JLabel
JTextField
JRadioButton
JComboBox
JTextArea
JCheckBox
JButton 54
@A.ZELLOU
POO JAVA
Interface Graphique
Implémenter l’interface ActionListener
import java.awt.event.*;
class Formulaire extends JFrame implements ActionListener { public void vider()
// Code Formulaire {
public void actionPerformed(ActionEvent event) { nom.setText(null);
if (event.getSource() == reset) vider(); prenom.setText(null);
if (event.getSource() == sub) masculin.setSelected(true);
{
String nomE=nom.getText(); feminin.setSelected(false);
String genre="F"; jour.setSelectedIndex(0);
if(masculin.getSelectedObjects()!=null) genreE="M"; mois.setSelectedIndex(0);
String j=jour.getSelectedItem().toString(); annee.setSelectedIndex(0);
String adresseE=adresse.getText(); adresse.setText(null);
String salaireE=salaire.getText().toString(); salaire.setText(null);
boolean contratE=false; if(contrat.getSelectedObjects()! contrat.setSelected(false);
=null) contratE=true; }
if(contratE)
{
Employe E = new Employe(nomE,prenomE,genreE,a+"-"+m+"-"+j,Float.parseFloat(salaireE));
E.display();
}
}
55
}
} @A.ZE LOU
L
Merci
A.ZELLOU