• Aucun résultat trouvé

Chapitre IV Programmation orientée objet en Java

N/A
N/A
Protected

Academic year: 2022

Partager "Chapitre IV Programmation orientée objet en Java"

Copied!
11
0
0

Texte intégral

(1)

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

(2)

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

(3)

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();

(4)

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;

}

(5)

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);

}

(6)

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;

}

……..

(7)

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);

} }

(8)

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

(9)

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}

(10)

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 }

(11)

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.

Références

Documents relatifs

De même, analyser la consommation foncière résidentielle annuelle par rapport à l’évolution du nombre d’habitants ou de ménages laisse apparaitre des courbes

Sets of motion conserving weighted Poisson distributed point systems For point systems with reversible independent sets of motion the role of weighted Poisson

• Si vous effectuez une mise à jour à partir d’une version antérieure à Miria 2020, veuillez consulter l’annexe Migrating the Database from a Version prior to 3.10 dans

The following table lists some common CP/M system sizes in kilo- bytes and the hexadecimal address of the first memory location available for installing the

En choisissant un certain entier p positif plus petit que moi, on forme un couple (N,p) puis on me divise par p.. Le couple d’entiers obtenus (q,r) avec le quotient q et le reste r

L’étude des premières heures du développement des microfilaires chez l’hôte intermédiaire permet de préciser la fonction de certaines cellules particulières et

Déterminer l’impédance complexe entre les bornes du primaire, en régime sinusoïdal forcé de pulsation

En déduire l’expression de la température T(r) en tout point de la gaine, puis la température à l’interface conducteur-