La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

4 Introduction des objets. Les chaînes et tableaux

Présentations similaires


Présentation au sujet: "4 Introduction des objets. Les chaînes et tableaux"— Transcription de la présentation:

1 4 Introduction des objets. Les chaînes et tableaux
07/04/2017 4 Introduction des objets. Les chaînes et tableaux Supposons que l’on veuille effectuer un traitement sur le parc automobile d’une société de location de véhicules. Nous allons tout naturellement être amenés à réfléchir sur les données nécessaires pour caractériser un véhicule. Il suffit de consulter une carte grise pour découvrir les premiers éléments : la marque, le type, le numéro de série, la puissance, etc. Pour simplifier notre problème nous ne retiendrons que la marque et le type auxquels nous ajouterons le kilométrage actuel. Exemple : une Peugeot 206 ayant 2532 km. Le kilométrage nous permettra de prévoir l’entretien. A chaque retour de location nous ferons évoluer le nombre de kilomètres parcourus. Prévoyons donc une méthode « avancer » à laquelle nous transmettrons le nombre de km parcourus et qui incrémentera le compteur de notre structure de données. Ajoutons enfin une méthode « afficher » chargée d’imprimer l’état actuel d’un véhicule. Cours 4

2 Plan du cours 4 La notion d’objet Un exemple Modélisation
Programmation du modèle Constructeur Utilisation du modèle Constructeur, handle, instance Schéma Application d’une méthode Résumé Les objets de la classe String Comparaison de String Les tableaux Emploi d’un tableau Vocabulaire à retenir Cours 4

3 La notion d’objet Un exemple
07/04/2017 La notion d’objet Un exemple Modélisation du traitement d’une société de location de véhicules Cours 4 Cours 4

4 Modélisation Véhicule Données marque chaîne de caractères
07/04/2017 Modélisation Véhicule Données marque chaîne de caractères type chaîne de caractères kilométrage nb entier Méthodes avancer (km parcourus) modifie le kilométrage afficher () affiche l’état du véhicule Cours 4 Cours 4

5 Programmation du modèle
07/04/2017 Programmation du modèle class Véhicule { private String marque ; private String type ; private int compteur ;// Valeur du compteur de km // Constructeur Véhicule(String laMarque, String leType, int km) { marque = laMarque ; type = leType ; compteur = km ; } void avancer(int kmParcourus) { compteur = compteur + kmParcourus ; } void afficher() {………} } // Fin de la classe Véhicule En Java le modèle rassemblant descriptions de données et méthodes est dénommé classe. Ce regroupement de données et méthodes est appelé encapsulation. Avec un langage orienté objets on modélise les données à traiter c’est-à-dire on définit un modèle pour caractériser un véhicule. Ce modèle incorpore, outre les données (marque, type…), toutes les méthodes que l’on souhaite appliquer à l’objet. Appelons Véhicule le modèle des objets traités. Ce sera le nom de la classe. Le mot private interdit l’emploi des variables auxquelles il est associé en dehors de la classe. Nous avons ajouté une méthode particulière Véhicule qui va nous servir à créer chaque voiture de notre parc. Une telle méthode est appelée constructeur. Cours 4 Cours 4

6 07/04/2017 Constructeur Un constructeur est une méthode sans type qui permet de construire un objet selon le modèle grâce à l’opérateur new. Un constructeur attribue un espace mémoire suffisant (allocation). initialise les variables internes de l’objet. Un constructeur porte le nom de la classe. Cours 4 Cours 4

7 Création de trois objets
07/04/2017 Utilisation du modèle Création de trois objets class MonProgramme { public static void main(String[] arg) { // Création de trois objets de la classe Véhicule Véhicule v1 = new Véhicule(“Peugeot”,“206”, 1200); Véhicule v2 = new Véhicule(“Renault”,“Clio”, 1600); Véhicule v3 = new Véhicule(“Renault”,“Safrane”,2500); } // Fin de la méthode main } // Fin de la classe MonProgramme Cours 4 Cours 4

8 Constructeur, handle, instance
07/04/2017 Constructeur, handle, instance L’écriture new Constructeur(….) est une expression qui : Réserve un espace mémoire adéquat, Initialise l’objet, Renvoie l’adresse de l’objet créé dynamiquement. Handle = poignée = variable pour utiliser l’objet = pointeur. Instance = un objet. Cette adresse peut être recopiée par affectation dans une variable appelée handle (poignée en traduction littérale, poignée par laquelle on peut saisir l’objet). Cette variable va nous servir à désigner et manipuler l’objet créé. Les trois lignes de programme construisent donc trois objets de type Véhicule (c’est-à-dire trois objets construits selon le modèle défini dans la classe Véhicule) et appelés respectivement v1, v2 et v3. v1. v2 et v3 sont trois variables appelées handles. On dit que les objets sont des instances (des exemplaires) de la classe Véhicule. Un objet se construit en appelant son constructeur avec l’opérateur new et en lui transmettant les arguments d’initialisation. Remarquez qu’un constructeur est une méthode de nom identique à celui de la classe. Cours 4 Cours 4

9 07/04/2017 Schéma Objets, handles Schématiquement, après exécution du programme, nous avons la situation suivante : Trois handles désignent trois objets instances de la classe Véhicule. Que contiennent les handles ? Une adresse, l’adresse de l’objet désigné. Cours 4 Cours 4

10 Application d’une méthode
07/04/2017 Application d’une méthode Et maintenant, comment peut-on faire avancer la Peugeot (objet désigné par v1) de 1000 km ? v1.avancer(1000) ; Le langage interdit l’accès direct à la variable compteur du fait qu’elle a été déclarée privée. En revanche, puisque nous avons prévu une méthode pour cette opération, nous pouvons l’utiliser. Pour ce faire, on utilise son handle (poignée) v1 et on lui applique la méthode v1.avancer(1000) ; A l’issue de cette opération l’objet désigné par v1 a pris la valeur suivante :avancer en lui transmettant le paramètre soit : Schéma Définir des méthodes d’accès et d’emploi des variables, c’est définir un ensemble de règles d’utilisation de la classe, c’est définir l’interface de la classe. Cours 4 Cours 4

11 07/04/2017 Résumé Lorsqu’on regroupe des données on conçoit ce que l’on appelle une structure de données c’est-à-dire un ensemble de données organisées. En POO, un objet regroupe les données et les méthodes nécessaires à la manipulation de ces données.  Encapsulation. La description de cet ensemble se fait dans une classe. Une classe est un modèle. Un objet est appelé une instance c’est-à-dire un exemplaire de la classe. Il est créé en utilisant new Constructeur(liste d’arguments). Cours 4 Cours 4

12 Les objets de la classe String
07/04/2017 Les objets de la classe String Une chaîne de caractères est un ensemble de caractères. En Java, les chaînes sont des objets, des instances de la classe String prédéfinie dans le langage. En écrivant : String phrase=new String("Ceci est une chaîne de caractères"); on déclare (on définit, on crée) un handle phrase qui nous permettra de désigner l’objet : le texte entre guillemets qui est une String. Cours 4 Cours 4

13 Syntaxe : comment déclarer, définir un handle?
07/04/2017 Syntaxe : comment déclarer, définir un handle? <nom de classe> <identificateur> String phrase ; Comment créer un objet ? Grâce à l’opérateur new. new String("Ceci est une chaîne de caractères") ; et l’opérateur = permet d’associer les deux en rangeant l’adresse de l’objet dans la variable handle. Les deux opérations ont été réunies : String phrase=new String("Ceci est une chaîne de caractères"); Ou, en notation abrégée (l’opérateur new est alors implicite) : String phrase = "Ceci est une chaîne de caractères"; Cours 4 Cours 4

14 Quelles méthodes peut-on appliquer à l’objet désigné par phrase ?
07/04/2017 Quelles méthodes peut-on appliquer à l’objet désigné par phrase ? char charAt(int index) int length() Méthodes de comparaison, de sous-chaîne, etc. Cf. la description de la classe String Quelles méthodes peut-on appliquer à l’objet désigné par phrase ? Il suffit de regarder la définition de la classe String. Par exemple : char charAt(int index) renvoie le caractère situé à la position index (le premier caractère est à la position zéro). phrase.charAt(6) renvoie le char ‘s’. Voyez la notation utilisée : <handle> <point> <nom de méthode (arguments)> Une autre méthode : int length() permet de connaître la longueur d’un objet de la classe String. Par exemple phrase.length() renverrai un entier de type int donnant la longueur de phrase. La méthode length s’applique à l’objet désigné par phrase. Cours 4 Cours 4

15 Un opérateur + permet la concaténation de deux chaînes.
07/04/2017 Toute chaîne de caractères située entre " " est implémentée comme une String. Les objets String sont constants : leur valeur ne peut être modifiée après qu’ils aient été créés. Un opérateur + permet la concaténation de deux chaînes. Le premier caractère a pour indice 0. Cours 4 Cours 4

16 Comparaison de String String ville1 = "Paris";
07/04/2017 Comparaison de String String ville1 = "Paris"; String ville2 = "Paris"; // Ne pas écrire : if(ville1 == ville2) System.out.println("Mêmes villes"); else System.out.println("Villes différentes"); // Mais écrire : if(ville1.equals(ville2)) System.out.println("Mêmes villes"); else System.out.println("Villes différentes"); Faire le schéma pour illustrer le problème. Parler de la classe StringBuffer Cours 4 Cours 4

17 07/04/2017 Les tableaux Un tableau regroupe des éléments de même nature. Ces éléments peuvent être d’un type primitif ou des handles sur des objets. double[ ] notesMath = new double[4] ; double[ ] notesMath = {10.5, 8, 14, 11} ; Attention à la terminologie. On dit souvent tableau d’objets. Abus de langage. En fait , il faudrait dire tableau de handles sur des objets. Faire un dessin. Cours 4 Cours 4

18 Emploi d’un tableau Comment se déclare et se crée un tableau ?
07/04/2017 Emploi d’un tableau Comment se déclare et se crée un tableau ? A quel moment est créé un tableau ? Comment accède t’on à l’élément de rang i ? Si l’indice est en dehors de bornes ? Comment créer et initialiser ? Comment se déclare et se crée un tableau ? type[] handle = new type[taille]; Le type peut être un type primitif (char, int, double…) ou une classe d’objets. Le handle est le nom par lequel est désigné le tableau. Exemple : int[] tab = new int[10] ; A quel moment est créé un tableau ? Le tableau est créé au cours de l’exécution au moment où s’exécute le new. A partir de ce moment là, sa taille est figée. Comment accède t’on à l’élément de rang i ? tab[i] Les indices des tableaux peuvent évoluer de 0 à tab.length – 1 Si l’indice est en dehors de bornes quel message obtient-on ? ArrayIndexOutOfBounds “Array” signifie tableau. Comment créer et initialiser un tableau de petite taille : int[] tab = {10, 20, 30} ; Cette instruction effectue implicitement un new.es Cours 4 Cours 4

19 Vocabulaire à retenir Structure de données Classe Instance Handle
07/04/2017 Vocabulaire à retenir Structure de données  Classe Instance  Handle  Encapsulation  Constructeur  Structure de données : regroupement de données. Classe : modèle regroupant une structure de données + méthodes. Instance : c’est un objet, un exemplaire. Handle : variable utilisée pour désigner et manipuler une instance. Encapsulation : le fait de regrouper données et méthodes dans une même entité. Constructeur : méthode de création et d’initialisation d’un objet. Cours 4 Cours 4


Télécharger ppt "4 Introduction des objets. Les chaînes et tableaux"

Présentations similaires


Annonces Google