Cours Poo Java
Cours Poo Java
PROGRAMMATION
ORIENTÉE OBJET ET
LANGAGE JAVA
Olabissi Marie-José
SANNI
20 Septembre 2024
Introduction - Tour de table
Partage
Ton prénom, nom
la programmation orientée Nous aurons 20h de temps à partager encore ensembles pour
discuter sur ce qu’est un langage de programmation, ce qu’est le
objet? Comment l’appliquer langage Java et de comment nous allons appliquer les concepts de
programmation orientée objet avec ce langage. Sur ces 20h nous
au langage java? allons les répartir en :
Recherche et centralisation de connaissances : 18h
Présentations de TP: 2h
NB : Vous aurez une composition sur table avec l’administration
regroupant les notions abordés lors des 30h
PREMIÈRE PARTIE PROGRAMMATION ORIENTÉE OBJET
EXPLICATION
Qu'est-ce que la programmation orientée objet, et
A quel est le principal concept sur lequel elle repose ?
EXPLICATION
Qu'est-ce que la différence entre un objet et une
B classe en programmation orientée objet ?
EXPLICATION
Quels sont les avantages de la programmation
C orientée objet par rapport à d'autres
paradigmes de programmation ?
EXPLICATION
tableaux et fonctions
EXPLICATION
tableaux et fonctions
EXPLICATION
tableaux et fonctions
Affectation de valeurs :
mot = “gkkv_nfdn4585dr”; //tableau de caractères
numtab = [24,51,6,35,69,8]; //tableau d‘entiers
mots = [“bonjour“, “tout“, “le“, “monde“]; //tableau
de caractères
Homme[ ] hommes = [homme1, homme2,homme3];
//tableau d’hommes
RÉPONSE ET
R°3 - Chaînes de caractères,
EXPLICATION
tableaux et fonctions
EXPLICATION
tableaux et fonctions
Langage JAVA
Définition d’une fonction et appelle:
private static void sayHelloTo(String recipient) {
[Link]("Hello " + recipient);
}
EXPLICATION
tableaux et fonctions
RÉPONSE ET
héritage, polymorphisme
EXPLICATION
Qu'est-ce que l'encapsulation en programmation
A orientée objet, et pourquoi est-elle importante ?
EXPLICATION
Expliquez le concept d'héritage et
comment il est utilisé pour créer des
B classes dérivées à partir de classes de
base.
RÉPONSE ET
héritage, polymorphisme
EXPLICATION
En quoi consiste le polymorphisme, et
C comment est-il mis en œuvre en
programmation orientée objet ?
RÉPONSE ET
EXPLICATION
A Qu'est-ce qu’ un algorithme ?
RÉPONSE ET
EXPLICATION
Qu'est-ce que l'algorithmique objet, et
B comment diffère-t-elle de l'algorithmique
traditionnelle ?
L'algorithmique objet consiste à concevoir des algorithmes en utilisant des objets et des
classes pour résoudre des problèmes. Elle diffère de l'algorithmique traditionnelle en ce
sens qu'elle organise le code autour d'objets réutilisables plutôt que de simples fonctions
procédurales.
RÉPONSE ET
Q°5- Algorithmique d’objet
EXPLICATION
Comment concevez-vous un algorithme en
C utilisant des objets et des classes ?
RÉPONSE ET
EXPLICATION
Quelle est la différence entre une classe
A abstraite et une interface en
programmation orientée objet ?
Une classe abstraite peut contenir des méthodes abstraites (non implémentées) et des
méthodes concrètes (implémentées), tandis qu'une interface ne peut contenir que des
méthodes abstraites. Les classes peuvent implémenter plusieurs interfaces, mais
l'héritage est limité à une seule classe mère.
RÉPONSE ET
R°6- Algorithmique d’objet
EXPLICATION
Pourquoi utiliseriez-vous une classe
B abstraite plutôt qu'une classe concrète ?
Vous utiliseriez une classe abstraite pour définir un modèle de base partagé par des
classes dérivées. Les classes dérivées complètent les détails d'implémentation
spécifiques. Une classe abstraite ne peut pas être instanciée, ce qui la rend idéale pour
partager du code commun.
RÉPONSE ET
R°6- Algorithmique d’objet
EXPLICATION
Il existe plusieurs autres concepts de la programmation orientée objet à connaitre. Parmi
eux on peux citer :
Constructeurs et Destructeurs : Les constructeurs sont des méthodes spéciales
dans une classe qui sont appelées lorsqu'un nouvel objet est créé. Ils permettent
d'initialiser les attributs de l'objet. Les destructeurs, s'ils sont pris en charge par le
langage, sont appelés lorsqu'un objet est détruit et permettent de libérer les
ressources associées.
Méthodes statiques : Les méthodes statiques appartiennent à la classe elle-même
plutôt qu'à une instance particulière de la classe. Elles sont appelées sans avoir
besoin d'instancier un objet. Les méthodes statiques sont souvent utilisées pour des
fonctions utilitaires qui ne dépendent pas de l'état de l'objet.
RÉPONSE ET
R°6- Algorithmique d’objet
EXPLICATION
B Qu'est-ce que la programmation SOLID ?
SOLID
EXPLICATION
Quelles sont les différences entre la programmation
C STUPID et la programmation SOLID?
4. Facilité de Maintenance
STUPID : Le code qui suit les pratiques STUPID
SOLID
5. Testabilité
SOLID
6. Réutilisation
SOLID
RÉPONSE ET
EXPLICATION
A Qu'est-ce que la JVM en java?
La JVM est une machine virtuelle qui permet d'exécuter des programmes Java. Elle
convertit le bytecode Java en instructions spécifiques à la plateforme sur laquelle elle
s'exécute. Elle permet à un code java de s’exécuter sur plusieurs plateformes (Windows ,
Linux, MacOs ...).
RÉPONSE ET
R°1 -JVM, Compilateur, exécution
EXPLICATION
B Qu’est-ce que la compilation et quelles sont
différente étapes?
EXPLICATION
B Qu’est-ce que la compilation et quelles sont
différente étapes?
EXPLICATION
C Qu’est ce qu’ exécuteur, et quelle sont les
différentes étapes de l’exécution.
En informatique, l'exécution est le processus par
lequel un ordinateur ou une machine virtuelle met
en œuvre les instructions d'un programme. Les
épates d’une exécution sont :
1- L'édition du code source.
2- La traduction en langage machine.
3- L'édition de liens.
4- Le chargement.
5- Le Debug.
La fusion du 1 et 2 est la compilation.
RÉPONSE ET
R°1 -JVM, Compilateur, exécution
EXPLICATION
C Qu’est ce qu’ exécuteur, et quelle sont les
différentes étapes de l’exécution.
1. Instructions conditionnelles :
if-else : Exécute un bloc de code si une condition
est vraie, sinon exécute un autre bloc.
if (condition) { // code à exécuter si la condition est
vraie }
else if (condition) { // code à exécuter si la condition
est vraie }
else { // code à exécuter si la condition est fausse }
R°2 - Variables, types et Instructions RÉPONSE ET C
Qu’est-ce qu’un instruction de contrôle? Quelles sont les
types d’instruction de contrôle?? Comment on les
implémente en java??
EXPLICATION
1. Instructions conditionnelles :
switch : Permet de sélectionner l'exécution parmi
plusieurs alternatives en fonction de la valeur
de contrôle
d'une expression.
switch (expression) {
case valeur1: // code à exécuter si l'expression est
égale à valeur1
break;
case valeur2: // code à exécuter si l'expression est
égale à valeur2
break; // ...
default: // code à exécuter si l'expression ne
correspond à aucune des valeurs spécifiées
}
R°2 - Variables, types et Instructions RÉPONSE ET C
Qu’est-ce qu’un instruction de contrôle? Quelles sont les
types d’instruction de contrôle?? Comment on les
implémente en java??
EXPLICATION 1. Instructions conditionnelles :
switch : Permet de sélectionner l'exécution parmi
plusieurs alternatives en fonction de la valeur d'une
de contrôle
3. Instructions de saut :
break : Termine l'exécution d'une boucle ou d'une
structure de contrôle.
for (int i = 0; i < 10; i++) {
if (i == 5) {
break; // termine la boucle lorsque i atteint 5
}
// code à exécuter
}
R°2 - Variables, types et Instructions RÉPONSE ET
EXPLICATION
Qu’est-ce qu’un instruction de contrôle? Quelles sont les
C types d’instruction de contrôle?? Comment on les
implémente en java??
de contrôle
3. Instructions de saut :
continue : Passe à l'itération suivante d'une boucle
for (int i = 0; i < 10; i++) {
if (i == 5) {
continue; // passe à l'itération suivante lorsque i
atteint 5
}
// code à exécuter
}
Langage JAVA
Q°3 - Tableau, Liste, Exception
1. Déclaration et Initialisation :
// Déclaration d'un tableau d'entiers
Type[] nomDeVariable;
// Initialisation avec une taille spécifique
nomDeVariable= new Type[Taille];
// Initialisation avec des valeurs
int[] tableauPreRempli = {1, 2, 3, 4, 5};
2. Accès et Modification :
// Accès à un élément du tableau
Type premierElement = tableauPreRempli[0]; // valeur 1
// Modification d'un élément
tableauPreRempli[1] = valeur;
// la valeur de la deuxième case devient la valeur passé
R°3 - Tableau, Liste, Exception
RÉPONSE ET
EXPLICATION
A Quelles sont les manipulation possibles d’un tableau
en java?
6. Tri :
// Tri avec la méthode sort de la classe Arrays
[Link](tableauPreRempli);
7. Manipulations avec la Classe Arrays :
La classe [Link] offre diverses méthodes pour
effectuer des manipulations sur les tableaux, comme
equals, fill, asList, etc.
8. Copie de Tableaux :
// Copie avec la méthode arraycopy de la classe System
[Link](tableau_a_copie, 0, copie, 0, taille);
// Copie avec la méthode clone
copie = [Link]();
RÉPONSE ET
R°3 - Tableau, Liste, Exception
EXPLICATION
B Qu’est-ce qu’une liste? Quelles sont les manipulation
possibles d’une liste en java?
EXPLICATION
B Qu’est-ce qu’une liste? Quelles sont les manipulation
possibles d’une liste en java?
EXPLICATION
B Qu’est-ce qu’une liste? Quelles sont les manipulation
possibles d’une liste en java?
EXPLICATION
B Qu’est-ce qu’une liste? Quelles sont les manipulation
possibles d’une liste en java?
2. Ajout d'Éléments :
// Ajout d'un élément à la fin de la liste
[Link](valeur);
// Ajout d'un élément à une position spécifique
[Link](index, valeur);
3. Accès et Modification :
// Accès à un élément
nomDeVariableElement= [Link](index);
// Modification d'un élément
[Link](index, valeur);
RÉPONSE ET
R°3 - Tableau, Liste, Exception
EXPLICATION
B Qu’est-ce qu’une liste? Quelles sont les manipulation
possibles d’une liste en java?
4. Suppression d'Éléments :
// Suppression par valeur
[Link](Valeur);
// Suppression par index
[Link](index);
// Suppression de tous les éléments
[Link]();
5. Recherche :
boolean trouve = [Link](recherche);
RÉPONSE ET
R°3 - Tableau, Liste, Exception
EXPLICATION
B Qu’est-ce qu’une liste? Quelles sont les manipulation
possibles d’une liste en java?
6. Taille de la Liste :
int taille = [Link]();
7. Parcours avec des Boucles :
Les parcours de tableau se fait avec les instructions de
contrôle de type boucle( for, while, do-while).
8. Manipulations avec la Classe Collections :
La classe [Link] offre diverses méthodes
pour effectuer des manipulations sur les listes, comme
sort, shuffle, reverse, etc.
[Link](listeEntiers); // Tri d'une liste
RÉPONSE ET
R°3 - Tableau, Liste, Exception
EXPLICATION
B Qu’est-ce qu’une liste? Quelles sont les manipulation
possibles d’une liste en java?
EXPLICATION
C Qu’est ce qu’une une exception? En java comment
gère t-on une exception ?
EXPLICATION
C Qu’est ce qu’une une exception? En java comment
gère t-on une exception ?
EXPLICATION
C Qu’est ce qu’une une exception? En java comment
gère t-on une exception ?
Propriétés (attributs): Ce sont les variables membres de la classe qui représentent l'état
de l'objet. En étant variable elle se déclare comme tout variable.
Méthodes : Les méthodes définissent le comportement de la classe. Elles peuvent
effectuer des opérations, retourner des valeurs, etc.
encapsulation, héritage, polymorphisme RÉPONSE ET
R°4- Classes : propriété, méthode,
EXPLICATION
Comment applique t-on l’encapsulation en
B java?
L'encapsulation en Java est une pratique qui consiste à regrouper les données (les propriétés
ou attributs) et les méthodes qui opèrent sur ces données dans une seule unité, appelée classe.
Cela permet de contrôler l'accès aux données et de garantir que l'état interne d'un objet est
modifié de manière contrôlée. Elle se fait en mettant l’un de ses modificateur en avant:
public: L'élément est accessible partout.
private: L'élément est accessible uniquement à l'intérieur de la classe.
protected: L'élément est accessible dans la classe et dans ses sous-classes.
Pas de modificateur par défaut private pour les attribues et public pour les méthodes
En cas de private ou protected pour les attribues les getters et setters peuvent être
implémenté
encapsulation, héritage, polymorphisme
R°4- Classes : propriété, méthode,
RÉPONSE ET
EXPLICATION
Comment faire t-on l’héritage et le
C polymorphisme en java ?
L'héritage en Java permet à une classe (appelée classe dérivée ou sous-classe) d'hériter
des propriétés et des méthodes d'une autre classe (appelée classe de base ou
superclasse). Pour déclarer une classe comme sous-classe d'une autre, on utilise le mot-
clé extends.
encapsulation, héritage, polymorphisme
R°4- Classes : propriété, méthode,
RÉPONSE ET
EXPLICATION
Comment faire t-on l’héritage et le
C polymorphisme en java ?
RÉPONSE ET
EXPLICATION
Constructeur
En Java, une classe abstraite est une classe qui ne peut pas être instanciée directement.
Elle est souvent utilisée comme classe de base pour d'autres classes (concrètes) qui étendent
ses fonctionnalités. Pour déclarer une classe comme abstraite, utilisez le mot-clé abstract.
Une classe abstraite peut avoir des méthodes abstraites (méthodes sans implémentation)
ainsi que des méthodes concrètes (méthodes avec une implémentation). Pour hériter d'une
classe abstraite, utilisez le mot-clé extends. La sous-classe doit fournir une implémentation
pour toutes les méthodes abstraites de la classe abstraite parente.
RÉPONSE ET
R°5- Classe abstraite, Interface,
EXPLICATION
Comment crée t-on une interface en
Constructeur
RÉPONSE ET
EXPLICATION
Constructeur
Un constructeur est une méthode spéciale qui est appelée lorsqu'un objet est créé à
l'aide de l'opérateur new. Le rôle du constructeur est d'initialiser les propriétés de l'objet.
Un constructeur a le même nom que la classe dans laquelle il se trouve. Il n'a pas de type
de retour, même pas void. Vous pouvez définir des constructeurs avec différents
paramètres pour permettre une initialisation flexible des objets.
R°5- Classe abstraite, Interface,
RÉPONSE ET
EXPLICATION
Constructeur
Constructeur par Défaut : Si vous ne définissez pas de constructeur explicite pour une
classe, Java fournit automatiquement un constructeur par défaut sans paramètres qui
initialise les propriétés à des valeurs par défaut.
Le principe de polymorphisme en Java s'applique aux constructeurs dans la mesure où vous
pouvez créer des objets en utilisant des références de type de classe de base pour
référencer des objets de classes dérivées. Cependant, les constructeurs eux-mêmes ne sont
pas polymorphes.
R°5- Classe abstraite, Interface,
RÉPONSE ET
EXPLICATION
Constructeur
Le package [Link] fournit des classes pour gérer les opérations d'entrée/sortie (E/S), telles
que la lecture et l'écriture de fichiers, les flux d'octets et de caractères, les opérations de
sérialisation, etc. Certains des principaux éléments de ce package incluent File, FileReader,
FileWriter, BufferedReader, BufferedWriter, InputStream, OutputStream, etc.
R°6 - Package, packages et classes
RÉPONSE ET
EXPLICATION
existants, déploiement
Le package [Link] offre des classes et des interfaces pour diverses structures de données,
algorithmes et utilitaires. Il comprend des collections (comme ArrayList, List, HashMap,
etc.), des classes pour la gestion du temps (Date, Calendar), des classes pour la gestion
des événements (Observer et Observable), etc.
R°6 - Package, packages et classes
RÉPONSE ET
EXPLICATION
existants, déploiement
Le package [Link] (Abstract Window Toolkit) fournit des classes et des interfaces pour
créer des interfaces graphiques utilisateur (GUI) et manipuler des éléments graphiques
tels que fenêtres, boutons, etc. Cependant, à partir de Java 2 (JDK 1.2), Swing
([Link]) est devenu le principal framework pour les GUI en remplacement de [Link].
R°6 - Package, packages et classes RÉPONSE ET C
Qu'est-ce qu'un déploiement?
Qu'est-ce qu'un fichier JAR en Java ?
EXPLICATION
existants, déploiement
EXPLICATION
existants, déploiement
Un fichier JAR est un format de fichier utilisé pour regrouper des fichiers
Java, notamment des classes, des métadonnées et des ressources, dans
une seule archive. Les fichiers JAR sont couramment utilisés pour distribuer
des bibliothèques Java, des applications Java autonomes et des composants
Java destinés à être exécutés dans une machine virtuelle Java (JVM).
RÉPONSE ET
R°6 - Package, packages et classes
EXPLICATION
existants, déploiement
EXPLICATION
existants, déploiement
EXPLICATION
existants, déploiement
Un Buffer fait référence à une zone temporaire de stockage en mémoire utilisée pour
stocker des données, souvent avant ou après leur traitement. L'utilisation d'un buffer
permet d'optimiser les opérations d'entrée/sortie en minimisant le nombre de lectures ou
d'écritures directes vers des dispositifs de stockage, comme les fichiers ou les réseaux.
RÉPONSE ET
EXPLICATION
R°7- Buffer, File
La classe File fait référence à un objet qui encapsule le chemin d'accès à un fichier ou à
un répertoire sur le système de fichiers. La classe File n'effectue aucune opération de
lecture ou d'écriture sur les données du fichier elle-même, mais elle fournit des
méthodes pour interagir avec les informations liées aux fichiers et aux répertoires.
RÉPONSE ET
EXPLICATION
R°7- Buffer, File
La classe FileReader est utilisée pour lire des caractères depuis un fichier. Elle permet de lire
les caractères de manière efficace en utilisant un tampon, ce qui est utile pour améliorer les
performances lors de la lecture de grands ensembles de données.
FileReader est utilisé pour ouvrir le fichier, et BufferedReader est utilisé pour lire les lignes
du fichier de manière efficace.
RÉPONSE ET
EXPLICATION
R°7- Buffer, File
La classe FileWriter est utilisée pour écrire des caractères dans un fichier. Elle fournit des
méthodes pour écrire des caractères dans un fichier, créant ou écrasant le fichier si
nécessaire. FileWriter est utilisé pour créer le fichier (ou écraser s'il existe déjà), et
BufferedWriter est utilisé pour écrire du texte dans le fichier de manière efficace.
Il est important de noter qu’il faut utiliser les blocs try-with-resources pour s'assurer que les
ressources (FileReader, BufferedReader, FileWriter, BufferedWriter) sont correctement
fermées, même en cas d'exception. Cela garantit une gestion correcte des ressources et
libère automatiquement les ressources associées à la fin du bloc.
RÉPONSE ET
EXPLICATION
R°7- Buffer, File
Pour lire et écrire des objets en Java, vous pouvez utiliser la sérialisation. La sérialisation
permet de convertir un objet en une séquence d'octets que vous pouvez ensuite écrire
dans un fichier (pour sauvegarder) et relire pour reconstruire l'objet. Java fournit les
classes ObjectOutputStream et ObjectInputStream pour faciliter ce processus.