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.

Slides:



Advertisements
Présentations similaires
La programmation orientée objet avec Java L3-MIAGE Plan
Advertisements

Premier programme en C :
La boucle for : init7.c et init71.c
Introduction au Langage C,C++
Programmation Orienté Objet en C++
Portée des variables VBA & Excel
Hiver 2005Maj JGA Beaulieu & Capt MWP LeSauvage GEF 243B Programmation informatique appliquée Types, variables et constantes.
GEF 243B Programmation informatique appliquée Expressions de type mixte et blocs §
Approfondissement du langage
(Classes prédéfinies – API Java)
C.
Le publipostage La fonction de fusion permet de créer des documents identiques dans les grandes lignes que l’on personnalise automatiquement à chaque destinataires.
JAV - TD 6 Structures de données JAVA
TD 1 IJA Introduction Objet, méthode, attribut Classe, instance
Paramètres et pointeurs
Tableaux Certains problèmes nécessitent beaucoup de variables du même type. Exemple : relevé de températures matin et soir dans 10 villes pour 10 jours.
Introduction à la programmation (420-PK2-SL) cours 15 Gestion des applications Technologie de linformation (LEA.BW)
Algorithme et programmation
Principes de programmation (suite)
Cours de programmation
Programmation orientée objet
Module 3.5 et 3.6 Les Fractions
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.
RESUMES Module II1 SOMMAIRE CYCLE 1 : Saisir – Afficher – Données
LES SOUS-PROGRAMMES USTL Licence S.T.A. S3 A.P.I.2.
Langage Oriente Objet Cours 2.
Master 1 SIGLIS Java Lecteur Stéphane Tallard Chapitre 5 – Héritage, Interfaces et Listes génériques.
Les fichiers binaires en C++
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.
Révision des notions OO et Java Semaine 1 Jian-Yun Nie.
Une nouvelle structure de données : les tableaux
Points importants de la semaine Le préprocesseur. La conversion de types. Les fonctions.
Principes de programmation
IFT 6800 Atelier en Technologies d’information
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.
8PRO100 Éléments de programmation Les types composés.
COURS DE PROGRAMMATION ORIENTEE OBJET :
COURS DE PROGRAMMATION ORIENTEE OBJET :
CSI 1502 Principes fondamentaux de conception de logiciels
Méthode et Outils pour la Programmation
C++ : variables Déclaration de variables
PHP 2° PARTIE : FONCTIONS ET FORMULAIRE
Le langage C Rappel Pointeurs & Allocation de mémoire.
4 Introduction des objets. Les chaînes et tableaux
Les pointeurs Suite.
Un survol du language C.
Master 1 SIGLIS Java Lecteur Stéphane Tallard Chapitre 1 – Objets et Classes Master 1 SIGLIS1Java Lecteur - Chapitre 1 Objets et classes.
Tutorat en bio-informatique
Tutorat en bio-informatique Le 14 novembre Au programme… Les objets –Propriétés (attributs) –Constructeurs –Méthodes.
Réaliser par: Sadok Amel Cheboui hassiba
Strings et Tableaux en Java
La Déclaration de TVA.
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.
Les types composés Les enregistrements.
C# de plus près.  Ce sont globalement les mêmes que Java : ◦ Int(int16, int32), float, double, bool,…  Les classe « communes » sont également les mêmes.
Cours LCS N°4 Présenté par Mr: LALLALI
IUT du Limousin L.U.P Michel Vergnaud Programmation Objet - Java.
Introduction au langage C : Structures de contrôle 1 ère année Génie Informatique Dr Daouda Traoré Université de Ségou
Conception de Programmes - IUT de Paris - 1ère année Quelques éléments du langage C++ Les références La surcharge de fonctions Les fonctions «
Les bases de l’algorithmique
Thème 4 : Les éléments naturels. Cours 2 : L’eau dans la nature et chez les êtres vivants. Mathématiques Guide du Maître Thème : Numération. Cours 4 :
Philippe Gandy - 8 septembre 2015 Basé sur les notes de cours de Daniel Morin et Roch Leclerc.
Philippe Gandy - 22 septembre 2015 Basé sur les notes de cours de Daniel Morin et Roch Leclerc.
Philippe Gandy - 15 septembre 2015 Basé sur les notes de cours de Daniel Morin et Roch Leclerc.
Master 1 SIGLIS Java Lecteur Stéphane Tallard Correction du TD Chapitre 3.
Philippe Gandy – 17 novembre 2015 Basé sur les notes de cours de Daniel Morin et Roch Leclerc.
Introduction au langage C
BlueJ_III 1 Java, les objets : tout de suite ! Interaction entre objets Notes de cours associées au chapitre 3 tutorial BlueJ
Université Paul Sabatier - Toulouse 3 Accueil des nouveaux personnels – Promotion 2007 IUT A – Service Direction – 19 août Chapitre 1 Structures.
Transcription de la présentation:

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 un programme sexécute. Parfois, un rectangle rouge apparaîtra en bas de lécran : il sagit de la représentation de la mémoire de lordinateur.

En Java, on appelle type primitif le type double, float, int, short, char, byte, boolean.

Lorsque lon déclare un type primitif, une case est créée en mémoire afin de pouvoir y stocker une valeur. int a; a = 3; Par exemple, si je fais : Dans la mémoire, Java va dabord créer une case appelée a 3 a puis il va placer la valeur 3 dans cette case.

3 a Si je rajoute une seconde variable dans mon code : int a, b; a = 3; b = 4; A la fin, jaurai ceci en mémoire : 4 b

Lorsque je fais une attribution de valeur (un « égal ») entre types primitifs, jeffectue une recopie de la valeur de lun dans lautre. int a, b; a = 3; b = a; Par exemple, si je fais : Voilà ce qui se passe en mémoire : 3 a b recopie 3

Ceci est valable pour les types primitifs. Pour les autres types de données (tableaux, structures de données), ça ne fonctionne pas de la même manière.

3 ta Si je travaille avec des tableaux, voici ce quil se passe : int[] ta, tb; ta = new int[3]; ta[0] = 3; ta[1] = 6; ta[2] = 5; tb=ta; tb ta et tb sont deux tableaux dentiers. On construit trois cases sur le tableau ta. 65 On remplit les trois cases du tableau ta. Ici, on dit que ta et tb sont le même tableau (on ne recopie pas ta dans tb, on ne créé pas un second tableau).

3 ta Quelle différence fondamentale cela apporte-t-il ? int a, b; a = 3; b = a; int[] ta, tb; ta = new int[3]; ta[0] = 3; ta[1] = 6; ta[2] = 5; tb=ta; tb 65 Fusionnons les deux codes précédents... On retrouve en mémoire deux entiers et un tableau. 3 a 3 b tb[1]=9; On modifie la valeur de b, mais la valeur de a nest pas modifiée. On modifie la valeur de la seconde case de tb, et comme ta et tb sont le même tableau, ta est modifié aussi ! b=6; 6 9 On peut dire que lon a en mémoire un entier nommé a, un entier nommé b, et un tableau avec deux noms : ta et tb.

Lorsque lon est en présence de types primitifs, une attribution de valeur (un « égal ») revient à recopier la valeur de lun dans lautre. En présence de types non primitifs, une attribution de valeur revient en fait à désigner par deux noms différents un même objet.

Mais comment faire alors pour recopier le tableau ta dans tb (et avoir deux tableaux en mémoire) ? int i; tb = new int [ ta.length ]; for (i=0; i<tb.length; i=i+1) { tb[i] = ta[i]; } Solution : construire un nouveau tableau sur tb, et recopier case par case, ta dans tb. 3 ta tb 65 On construit sur tb un nouveau tableau dentiers de la taille de ta. Puis, on recopie case par case les éléments de ta dans tb : comme chaque élément de ta est un entier, le signe « = » effectue bien une recopie de valeurs. 365

Rappelez-vous que le signe égal recopie les valeurs dans le cas de types primitifs (boolean, byte, char, short, int, float, double). Pour les autres types de données (tableaux, structures de données), le signe égal fait pointer la variable sur lobjet en question.