Vous êtes sur la page 1sur 11

Chapitre IV

Programmation orientée objet en Java

1 Paradigmes de programmation
2 Classe et objet
3 Héritage
4 Flux de lecture et d’écriture
5 Travaux pratiques

Initiation à la programmation, M. Eleuldj, Département Génie Informatique, EMI, septembre 2014 1


Paradigmes de programmation

Programmation structurée (traditionnelle ou classique)


Séparation des données et des opérations
Initialisation des structures de données
Traitement des données par les procédures et les fonctions

Programmation orientée objet (POO)


Une même structure contient les données et les opérations associées

Historique de la POO
Origine : langage Simula 67 en 1967
Intérêt grandissant : à partir du milieu des années 80

Initiation à la programmation, M. Eleuldj, Département Génie Informatique, EMI, septembre 2014 2


Classe et objet

Classe et objet
Classe : définition d’un type (généralement composé de propriétés et méthodes)
Objet : déclaration d’un variable (pouvant accéder aux propriétés et méthodes)
Instanciation : création d’un objet à partir d’une classe

Déclaration d’une classe


public class Rectangle {
// corps de la classe
}
Instanciation d’un objet
Rectangle r = new Rectangle();

Initiation à la programmation, M. Eleuldj, Département Génie Informatique, EMI, septembre 2014 3


Propriétés et méthodes d’une classe
public class Rectangle {
int largeur, // première propriété de la classe
longueur; // deuxième propriété de la classe
void perimetre(){ // première propriété de la classe
int p = 2 * (largeur + longueur);
System.out.println("Périmetre = "+ p);
}
int surface(){ // deuxième propriété de la classe
int s;
s = largeur * longueur;
return s;
}
}
Initiation à la programmation, M. Eleuldj, Département Génie Informatique, EMI, septembre 2014 4
Instanciation des objets d’une classe

public class CalculRectangle {

public static void main(String[] args) {


Rectangle r1, r2, r3; // Déclaration des objets
r1=new Rectangle(); // Instanciation de l'objet r1
r1.largeur=5; // affectation de la première propriété de r1
r1.longueur=9; // affectation de la deuxième propriétés de r1
r1.perimetre(); // Appel de la méthode périmetre pour r1
int s=r1.surface(); // Appel de la méthode surface pour r1
System.out.println("surface = " + s);
}
}
Initiation à la programmation, M. Eleuldj, Département Génie Informatique, EMI, septembre 2014 5
Constructeur d’une classe

public class Rectangle {


int largeur, // première propriété de la classe
longueur; // deuxième propriété de la classe

//La méthode constructeur a le même identificateur que la clase


public Rectangle(int largeur, int longueur) {
super();
this.largeur = largeur;
this.longueur = longueur;
}
……..
}
Initiation à la programmation, M. Eleuldj, Département Génie Informatique, EMI, septembre 2014 6
Instanciation avec constructeur

public class CalculRectangle {

public static void main(String[] args) {


Rectangle r1, r2, r3; // Déclaration des objets
r1=new Rectangle(3,8); // Instanciation cet affectation des propriétés
r1.perimetre(); // Appel de la méthode périmètre pour r1
int s=r1.surface(); // Appel de la méthode surface pour r1
System.out.println("surface = " + s);
}
}

Initiation à la programmation, M. Eleuldj, Département Génie Informatique, EMI, septembre 2014 7


Exercice

1 Créer un nouveau package Chapitre3


2 Créer une classe Etudiant
Propriétés : nom, annéeNaissance, cin, filière, niveau, note
Méthodes : age, moyenneAnnuelle
3 Créer une classe gestionEcole pour l’instanciation des objets Etudiant
4 Créer une classe Professeur
Propriétés : nom, annéeNaissance, cin, département, coursEnseignés, salaire
Méthodes : age, nombreCours, salaireAnnuel
5 Modifier la classe gestionEcole pour l’instanciation des objets Professeur
6 Créer une classe Citoyen regroupant les propriétés et méthodes communes des
classes Etudiant et Professeur
7 Modifier les classes Etudiant et Enseignant pour hériter les propriétés et les
méthodes de la classe Citoyen
Initiation à la programmation, M. Eleuldj, Département Génie Informatique, EMI, septembre 2014 8
Tri d’un tableau
fonction triCroissant (T[1..n])
pour i  2 jusqu'à n faire
x  T[i]
ji-1
tant que j > 0 et T[j] > x faire
T[j + 1]  T[j]
jj-1
T[j + 1]  x
retourner T
Exercice
a) Faire la trace pour T = {3,1,4,2}
b) Ecrire un programme en Java
c) Modifier l’algorithme pour effectuer un tri en ordre décroissant
Initiation à la programmation, M. Eleuldj, Département Génie Informatique, EMI, septembre 2014 9
Flux de lecture de d’écriture
import java.util.Scanner; //importation de la classe
public class Lecture {
public static void main(String[] args) {
Scanner ecran = new Scanner(System.in); // variable du flux d’entrée
System.out.println("Veuillez introduire votre nom: ");
String nom = ecran.nextLine(); //lecture de toute la ligne
System.out.println("Veuillez introduire votre age: ");
int age = ecran.nextInt(); //lecture d'un seul entier
System.out.format("Nom: %s Age:%4d%n",nom, age);
double Pi= 3.141592653589793;
System.out.format("Pi=%5.2f", Pi); //5 cases dont 2 décimales
}
}
Initiation à la programmation, M. Eleuldj, Département Génie Informatique, EMI, septembre 2014 10
Travail pratique

Reprenons l’exemple de la gestion d’une école.


1 Inclure dans la classe Citoyen, Etudiant et Professeur des constructeurs pour
saisir les informations des objets Citoyen, Etudiant et Professeur. Indication:
avant de saisir les tableaux, il faudrait les créer en connaissant leur taille.
2 Considérer une école comprenant 143 professeurs et 1427 étudiants.
3 Ecrire une méthode de tri qui admet 2 paramètres : un tableau de nombres
réels et une variable booléenne qui indique s’il s’agit de l’ordre croissant ou
de l’ordre décroissant.
4 Afficher les salaires annuels des professeurs par ordre croissant ainsi que les
moyennes des étudiants par ordre décroissant. Votre exécution pourrait se
limiter à 2 professeurs et 3 étudiants.
5 Afficher le budget mensuel et annuel des salaires.
Initiation à la programmation, M. Eleuldj, Département Génie Informatique, EMI, septembre 2014 11

Vous aimerez peut-être aussi