4 Introduction des objets. Les chaînes et tableaux

Slides:



Advertisements
Présentations similaires
C++ 6ème cours Patrick Reuter maître de conférences
Advertisements

SI3 MAM3 Hydro Nathan Cohen Igor Litovsky Christophe Papazian
Introduction à la Programmation Orientée Objet Retour sur les principaux concepts SI3 MAM3 Hydro Nathan Cohen
La classe String Attention ce n’est pas un type de base. Il s'agit d'une classe défini dans l’API Java (Dans le package java.lang) String s="aaa"; // s.
(Classes prédéfinies – API Java)
C.
LICENCE MIAGE Introduction Programmation Orientée Objet JAVA philippe
TD 1 IJA Introduction Objet, méthode, attribut Classe, instance
Structures et unions types énumérés Qu'est-ce qu'une structure
Les attributions de valeur (le signe =). Dans cette présentation, nous allons tenter de représenter ce qui se passe dans la mémoire de lordinateur quand.
ESIEE Paris © Denis BUREAU I N Initiation à la programmation avec le langage Java.
Introduction à la programmation (420-PK2-SL) cours 15 Gestion des applications Technologie de linformation (LEA.BW)
Cours 7 - Les pointeurs, l'allocation dynamique, les listes chaînées
Introduction à la programmation (420-PK2-SL) cours 12 Gestion des applications Technologie de linformation (LEA.BW)
Les méthodes en java Une méthode est un regroupement d’instructions ayant pour but de faire un traitement bien précis. Une méthode pour être utilisée.
Introduction au paradigme objet Concepts importants surcharge (overload) redéfinition (override) Définition d’une classe Définition des attributs.
Les Classes les structures en C (struct) regroupent des variables : structuration de l'analyse mais problèmes de cohérence problèmes de sécurité d'accès.
77 Utilisation des classes (suite). 7-2 Objectifs A la fin de ce cours, vous serez capables de : Définir des méthodes surchargées dans une classe Fournir.
POO : Objets et classes (Rappels)
Langage Oriente Objet Cours 2.
Leçon 2 : Surcharge des opérateurs IUP 2 Génie Informatique Méthode et Outils pour la Programmation Françoise Greffier Université de Franche-Comté.
Les pointeurs Enormément utilisé en C/C++ ! Pourquoi? A quoi ça sert?
Les pointeurs Modes d’adressage de variables. Définition d’un pointeur. Opérateurs de base. Opérations élémentaires. Pointeurs et tableaux. Pointeurs et.
Structures de données IFT-2000
66 Utilisation des classes et des objets. 6-2 Objectifs A la fin de ce cours, vous serez capables de : Créer de nouvelles classes à laide de Eclipse Utiliser.
Introduction à la Programmation Orientée Objet Retour sur les principaux concepts SI3 MAM3 Hydro Nathan Cohen
Sixième cours Les chaînes de caractères et le passage de paramètres par référence Passage de paramètres par référence String.h.
Contrôle de types Les types en programmation Expressions de types Un contrôleur de types Equivalence de types Conversions de types Généricité.
POO-L3 H. Fauconnier1 Supplément gratuit…. POO-L3 H. Fauconnier2 Entrée-sortie public static void main(String[] args) { // sortie avec printf ou double.
IFT 6800 Atelier en Technologies d’information
1 IFT 6800 Atelier en Technologies dinformation Le langage de programmation Java chapitre 3 : Classes et Objects.
LIFI-Java 2004 Séance du Jeudi 9 sept. Cours 1. La notion de langage Décrire une tâche à effectuer –programme Écrire à un haut niveau –facile pour lutilisateur.
COURS DE PROGRAMMATION ORIENTEE OBJET :
CSI1502 Principes fondamentaux en conception des logiciels
CSI 1502 Principes fondamentaux de conception de logiciels
Leçon 1 : notion dobjet IUP Génie Informatique Besançon Méthode et Outils pour la Programmation Françoise Greffier Université de Franche-Comté.
Structures de données IFT-2000
Une introduction à Java
Les méthodes en java • Une méthode est un regroupement d’instructions ayant pour but de faire un traitement bien précis. • Une méthode pour être utilisée.
Animateur : Med HAIJOUBI
Javascript 2° PARTIE : EVENEMENTS ET OBJETS
JavaScript Nécessaire Web.
LIFI-Java 2004 Séance du Mercredi 22 sept. Cours 3.
Programmation en Java Tableaux NGUYEN Thi Minh Tuyen
Cours 1 1 Java. Cours 1 2 Plan général 1.Introduction 2.Les types primitifs, évaluation d’expressions 3.Instructions for, if…. 4.Introduction de l’objet,
Labo II : Tableaux et pointeurs
La notion de type revisitée en POO
Cours 61 6 La sécurité, Portée, Visibilité Programmer avec sécurité.
3 Les instructions. Cours 32 Plan du cours 3 Instruction Bloc Portée L’alternative Affectations =, +=, *=… Comment comparer –Comparer des réels –Comparer.
11/04/ L'héritage Cours 7 Cours 7.
Programmation objet La base.
1 Structures des données. 2  Le tableau permettait de désigner sous un seul nom un ensemble de valeurs de même type, chacune d'entre elles étant repérée.
Tutorat en bio-informatique
5ième Classe (Mercredi, 19 octobre) Prog CSI2572.
Master 1 SIGLIS Java Lecteur Stéphane Tallard Chapitre 3 – Classes et objets en Java Master 1 SIGLIS1 Java Lecteur - Chapitre 3 Classes et objets en Java.
Strings et Tableaux en Java
Les classes présenté par: RAHMOUNE RIME / ZEKRI SELMA.
Les classes et les objets Les données finales class A { … private final int n = 20 ; // la valeur de n est définie dans sa déclaration … } class A { public.
Cours LCS N°4 Présenté par Mr: LALLALI
IUT du Limousin L.U.P Michel Vergnaud Programmation Objet - Java.
Héritage H. Batatia. plan Notion (que signifie l’héritage) Ecriture en java Héritage multiple (interdit) Instanciation (partie propre et partie héritée)
Cours 4 (14 octobre) Héritage. Chapitre III Héritage.
Conception de Programmes - IUT de Paris - 1ère année – Cours 6 - Les opérateurs L’amitié Les opérateurs –Introduction –Surcharge par fonction.
pour les programmeurs en C++ Java 2 Part 1 3 Histoire de Java Projet de connexion des machines: 1991 Le nom Java a été introduit dans un café Développé.
Conception de Programmes - IUT de Paris - 1ère année Les classes Introduction Déclaration d’une classe Utilisation d’une classe Définition des.
BlueJ_III 1 Java, les objets : tout de suite ! Interaction entre objets Notes de cours associées au chapitre 3 tutorial BlueJ
LES CLASSES ET LES OBJETS
Informatique 2A Langage C 5ème séance. Déroulement de la séance 5 1 ère partie Étude des chaînes de caractères 2 ème partie Les structures 3.
Transcription de la présentation:

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

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

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

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

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

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

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

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

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

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 1000. 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

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

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

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

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

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

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

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

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

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