Imprimer tout le livreImprimer tout le livre

Chapitre 1: Objets et Classes

Chapitre 1

Site: Université Alioune DIOP de Bambey
Cours: Introduction au langage Java
Livre: Chapitre 1: Objets et Classes
Imprimé par: Visiteur anonyme
Date: mercredi 15 mai 2024, 22:08

Notion d’objet

Java est un langage orienté objet.

Contrairement à la programmation procédurale basée sur des appels de routines et de sous-routines contenant une série d'instructions.

Un programme Java est un ensemble d’objets interagissant entre eux pour résoudre un problème donné.

Un programme est une séquence d'instructions visant à résoudre un problème donné.

Un objet est une entité ayant des propriétés et pouvant faire des actions.

Les actions exécutées par un objet sont des séquences d'instruction.

Exemple d’objets

 stylo

Propriétés: couleur, longueur, poids, marque, ...
Actions: écrire, ...


 Le mot travail

Propriétés: type, ...
Actions: donner son nombre de caractères, se mettre en majuscule, se mettre en minuscule, ...


écran

Propriétés: taille, résolution, marque, ...
Actions: afficher, s’allumer, s’éteindre, se mettre en veille, ...


Notion d’objet: un programme orienté objets

Ecrire un programme permettant d’afficher le nombre de caractères contenus dans le mot travail.


  Les objets du programme: Il s'agit de trouver les objets qui peuvent contribuer à l'atteinte des objectifs du programme.

  • mot travail
  • Ecran

  Algorithme: définir les étapes nécessaire pour atteindre les objectifs du programme.

  1. Demander à l’objet mot travail de donner son nombre de caractères,
  2. Affecter le nombre donné par l’objet travail à la variable n,
  3. Demander à l’objet écran d’afficher la variable n.

Ci-dessus nous avons une vue schématique du programme. il y'a un objet nommé Programme (objet principal) qui organise les échanges entre les objets.

Les messages:

  • M1: donne le nombre de tes caractéres
  • M2: nombre de caractères n
  • M3: affiche n

Notion d’objet: un autre programme 1

Ecrire un programme permettant d’afficher le nombre de caractères
contenus dans le mot vouloir.


 Solution: Utiliser le programme précédent en remplaçant l’objet
travail par l’objet vouloir.


 Question: Pourquoi peut-on remplacer l’objet travail par l’objet
vouloir ?

Notion d’objet: un autre programme 2

Réponse:

L'objet Vouloir peut remplacer l'objet travail parce que tout simplement ils sont tous les deux des mots c'est à dire qu'ils sont des objets du même type.

En Java le type d'un objet est appelé classe.

Les classes

 Un objet a un type. Par exemple travail et vouloir sont des mots, leur type est mot. mouton et chat sont des animaux, leur type est animal.


 Java appelle le type d’un objet, la classe de l’objet. Donc les objets travail et vouloir sont de la classe Mot et les objets mouton et chat sont de la classe Animal.


 Un objet est aussi appelé instance d’une classe. Par exemple, travail est une instance de la classe Mot.


 Une classe définit un type (d’objet). Elle définit toutes les propriétés et actions des objets dont elle est le type.


 Les propriétés sont appelées données membres et peuvent être des données élémentaires (primitifs) ou des objets.


 Les actions sont appelées méthodes, ce sont des fonctions (séquence d'instructions).

Les données de type primitif

 Un primitif est une donnée élémentaire de base telles que les
nombres entiers, les nombres réels, les caractères et les
booléens.


 Java définit 8 types de primitifs:

  • 4 types de nombres entiers
  • 2 types de nombres réels
  • 1 type pour les caractères
  • 1 type pour les booléens

Remarque

Il y' a 4 types d'entier qui occupent des volumes différents en mémoire et qui ont des plages de valeurs différentes. Le choix d'un type de primitif doit être basé sur les valeurs manipulées. Utilisez le type adéquat pour l'objectif visé sans gaspiller la mémoire.

Déclaration et initialisation des primitifs

 Le nom d’une données:

  • commence par une lettre minuscule,
  • les mots à l’intérieur du nom commence par une majuscule,
  • n’utilise que les lettres a-z, A-Z, 0-9,

Exemple

Les données de type chaine de caractères

 Java représente les chaines de caractères à l’aide de la classe String.


 Les données de type chaine de caractères sont donc des objets de la classe String.


Exemple


Déclaration et initialisation de chaines de caractères

Les méthodes

 Une méthode est une fonction, elle représente une action que peut faire un objet de la classe (ou la classe elle même).


 Une méthode à une valeur de retour, un nom et une liste d’arguments.


 Une méthode utilise le mot clé return pour retourner une valeur.


 Le nom et la liste des arguments constituent la signature de lathode.


 Le nom d’une méthode:

  • commence par une lettre minuscule,
  • les mots `a l’int ´ erieur du nom commence par une majuscule,
  • n’utilise que les lettres a-z, A-Z, 0-9, _

Remarque

Lorsque la méthode ne retourne rien, son type de retour est void.


Exemple:


Une méthode qui multiplie 2 entiers:

Définition d’une classe

 La définition d’une classe se fait avec le mot clé class suivi du nom de la classe puis des données membres et des méthodes entre accolades.


 Le nom d’une classe:

  • commence par une lettre majuscule,
  • les mots à l’intérieur du nom commence par une majuscule,
  • n’utilise que les lettres a-z, A-Z, 0-9, _

Exemple

Définition de la classe Mot

Constructeur d’une classe

 Le constructeur d’une classe est la méthode qui permet de construire les objets de cette classe en initialisant leurs propriétés.


 Le constructeur a la même structure qu’une méthode ordinaire mais ne dispose pas de type de retour et son nom doit être identique à celui de la classe.


 Lorsque le constructeur ne fait rien, sa définition peut être omise de la classe.


 Une classe peut avoir une ou plusieurs constructeurs.

Exemple: une classe avec un constructeur

Manipulation d’objets

 Un objet est toujours créé à partir d’une classe.


 La création d’un objet se fait à l’aide du mot clé new suivi du constructeur de sa classe.


 Lorsqu’un objet est déclaré sans être créé sa valeur est null.


Exemple:


Création d’un objet de la classe Mot



 La variable mot1 est la référence de l’objet crée avec new. Elle fait référence à l’emplacement mémoire où réside l’objet.

 La référence est le nom l’objet.


 La référence permet d’accéder aux propriétés et aux actions de l’objet.


 L’accés à une propriété ou à une action de l’objet se fait avec l’opérateur point (.)


Exemple


Accéder à la propriété valeur de l’objet mot1 et à la propriété type de l’objet mot2

Accéder à la méthode seMettreEnMajuscule de l’objet mot1

Les chaines de caractères

Rappel: Java représente les chaines de caractères à l’aide de la classe String.


 Une chaine de caractères est alors un objet, elle peut alors être créée avec l’opérateur new


 La concaténation de deux chaines de caractères peut se faire avec l’opérateur +.

 La classe String dispose entre autre des m´ethodes suivantes:

  • int length() pour avoir le nombre de caract `eres.

  • String toLowerCase() pour mettre la chaine de caractéres en minuscule.

  • String toUpperCase() pour mettre la chaine de caractéres en majuscule.

Exemple

Utilisation des méthodes de la classe String dans la classe Mot

Le mot clé static

 Le mot clé static est utilisé pour désigner une propriété dont la valeur est identique pour tous les objets de la classe.


 Le mot clé static est aussi utilisé pour désigner une méthode qui n’accède à aucune propriété non static.


 Une méthode qui accède à une propriété static doit être déclarée static.


 Les propriétés et méthodes static sont accessibles à partir du nom de la classe.


 Les propriétés et méthodes static sont appelées respectivement propriétés de classe et méthodes de classe.


 Les propriétés et méthodes non static sont appelées respectivement propriétés d’instance et méthodes d’instance.

Exemple


Soit la classe suivante décrivant les voitures à 4 roues.



Toutes les instances de la classe Voiture ont le même nombre de roues, donc la donnée membre nombredeRoues peut être déclarée
static.



Remarque 1:


Les données et méthodes statiques (de classe) sont accessibles depuis la classe, alors que le données et méthodes non statiques (d’instance) ne sont accessibles qu’à travers d’objet.


Exemple:



Remarque 2:


Les méthodes statiques ne peuvent pas accéder aux données et méthodes d’instance.

Le mot clé final

 Le mot clé final est utilisé pour désigner une propriété qui ne change pas de valeur.


 Le mot clé final est aussi utilisé pour désigner une méthode qui ne peut être redéfinie.

Exemple:

La donnée membre nombredeRoues vaut toujours 4 quelque soit l’instance de Voiture.

Le mot clé this

 Le mot clé this permet de désigner l’objet courant.


 Il est utilisé pour accéder aux données et méthodes de l’objet courant.

Exemple:



Les enveloppeurs de primitifs

 Pour chaque type primitif, Java définit une classe appelée enveloppeur permettant de le manipuler comme un objet.


 Les enveloppeurs de primitifs disposent de méthodes permettant la conversion du primitif en chaine de caract ères et vise-versa.


 Toutes ces méthodes de conversion sont static.




Exemple:

Créer un programme Java

 Un programme Java peut être constitué d’une ou de plusieurs classes.


 Le code source de chaque classe est enregistré dans un fichier texte ayant le même nom que la classe avec l’extension ".java"


 Un programme Java doit obligatoirement avoir une classe principale dont le nom sera celui du programme.


 La classe principale doit contenir la méthode principale main() avec la signature suivante:



 La méthode principale est le point d’entré du programme.

Exemple:


Créer le programme permettant d’afficher le nombre de caractéres contenus dans le mot travail

  1. La classe Mot (voir page 21) sera enregistrée dans le fichier "Mot.java"
  2. La classe principale nommée Programme sera enregistrée dans le fichier "Programme.java"




Remarque


L’objet écran est représenté par System.out

Compilation

 Pour compiler un programe Java, l’environnement de programmation Java (jdk) doit étre installé.


 Le chemin d’accés (path) aux binaires du jdk doit étre configuré.


 La compilation se fait en ligne de commande avec:



 Si la compilation se fait sans erreur, des fichiers bytecode sont produits: Mot.class et Programme.class

Exécution

 L’environnement de programmation Java (jdk) doit être installé.


 Le chemin d’accès (path) aux binaires du jdk doit être configuré.


 L’exécution se fait en ligne de commande avec:



 Le nombre de caractères du mot travail est affiché.

Les tableaux

 Un tableau est un objet regroupant un nombre fixé d’éléments (primitifs ou objets) de même type.


 Le nombre d’él éments d’un tableau est fixé lors de sa création.


 Chaque élément est accessible grâce à un indice correspondant à sa position dans le tableau.


 Un élément d’un tableau est accessible en spécifiant son indice entre crochet après le nom du tableau.


 Les indices commencent à partir de 0.

Déclaration

  • Syntaxe: typeElement[] nomTableau;
  • Exemple 1: int[] t;
  • Exemple 2: Mot[] mots;


Initialisation

  • Syntaxe: nomTableau = new typeElement[nbElement];
  • Exemple 1: t = new int[5];
  • Exemple 2: mots = new mots[2];


Initialisation lors de la déclaration avec des éléments connus

  • Exemple 1:

int[] t = {10, 20, 30, 40, 50};

  • Exemple 2:

Mot[] mots = {new Mot("nous", "pronom"),
new Mot("grand", "adjectif")};


 Initialisation élément par élément

  • Exemple 1:

t = new int[5];
t[0] = 10; t[1] = 20; t[2] = 30;
t[3] = 40; t[4] = 50;

  • Exemple 2:

mots = new Mots[2];
mots[0] = new Mot("nous", "pronom");
mots[1] = new Mot("grand", "adjectif");


Remarque


 L’initialisation d’un élément d’un tableau peut se faire à l’aide d’une expression.

Exemples



Remarques


 Un tableau est un objet, ses éléments sont initialisés avec la valeur par défaut de leur type.


Exemples:

  • L’instruction int[] t = new int[5]; crée un tableau de 5 entiers initialisés chacun à 0.
  • L’instruction Mot[] mots = new Mots[2]; crée un tableau de 2 objets Mot initialisés chacun à null.


 Un tableau a la propriété length contenant le nombre de ses éléments.


Exemple:

Tableaux à plusieurs dimensions

 Un tableau à plusieurs dimensions est un tableau dont les éléments sont des tableaux.

 Déclaration: tableau à 2 dimensions


Syntaxe: typeElement[][] nomTableau;
Exemple: int[][] t;


 Initialisation: Syntaxes


Tableau de n1 éléments où chaque élément est un tableau de n2 éléments:


nomTableau = new typeElement[n1][n2];


Tableau de n éléments o`u chaque élément est un tableau de dimension pas encore fixée:


nomTableau = new typeElement[n][];

Exemple:

t1 = new int[5][7]; t2 = new int[5][];



 Initialisation lors de la déclaration avec des éléments connus

Exemple:

int[][] t = { {7, 8, 5, 2, 3}, {1, 4, 2, 3, 6}, {4, 0, 9} };



 Initialisation élément par élément


Exemple 1:


t1 = new int[3][];
t1[0] = new int[3];
t1[1] = new int[2];
t1[2] = new int[5];


Exemple 2:


t2 = new int[2][3];
t2[0][0] = 5; t2[0][1] = 3; t2[0][2] = 15;
t2[1][0] = 0; t2[1][1] = 12; t2[1][2] = 7;

Copie de tableaux

 La copie de tableaux peut s’effectuer avec la méthode arraycopy de la classe System.


public static void arraycopy(Object src, int srcPos, Object dest, int destPos, int length)

  • src le tableau source,
  • srcPos: l’indice de l’élément du tableau source à partir duquel commence la lecture,
  • dest: le tableau destination,
  • destPos: l’indice du tableau destination à partir duquel commence l’écriture,
  • length: le nombre d’éléments à copier.