[PDF] Les bases de la programmation orientée objet avec Java





Previous PDF Next PDF



INTRODUCTION AU JAVA GRAPHIQUE AVEC NETBEANS

Dans l'onglet "Source" de votre JFrame observez le squelette de code généré automatiquement par NetBeans et répondez aux questions suivantes : • De quelle 



Utilisation de NetBeans

20 janv. 2015 F:COURS-INFOPrepaCoursCoursExempleJava-Exemple-Premieres-Notions et nous afficher ceci: Page 13. Notice d'utilisation de NetBeans - page 13.



Initiation à la programmation orientée-objet avec le langage Java

Alors que notre programme est en cours d'exécution une trace de la pile des exceptions est affichée



Réalisation dinterfaces graphiques Avec NetBeans

Choisissez ensuite un nom adapté par exemple Principale. Le projet en cours est mis à jour et possède maintenant un fichier Main.java et un fichier. Principale.



Stéphane HUOT Dpt. Informatique Applications interactives

A permis d'améliorer le système graphique de Java. (Java2D dans AWT). • N'est plus liée aux composants graphique de la plateforme hôte (lightweight = 



Java Swing

des outils comme eclipse ou netbeans. □ Définir les actions associées aux événements. (Listener) et les associer aux composants graphiques. Page 4. Principes.



Java et NetBeans

Création des fenêtres. 153. 1.1 Fenêtre de connexion. 155. 1.2 Fenêtre du menu principal de l'application. 163. 1.3 Fenêtres principales de la gestion des 



Exercices de Programmation Orientée Objet en Java

Les identifiants et couleurs sont fixés à la création des formes et ne doivent pas changer retour au sommaire. Page 40. au cours de l'exécution du programme.



en Java

en cours d'exécution . Développez vos applications en Java. Apache NetBeans. 2. Les types de projets Java.



Utilisation de NetBeans

20 janv. 2015 L'objectif de ce cours sur les bases de la programmation est avant ... Un exercice sera donc un projet Java dont l'interface graphique est ...



INTRODUCTION AU JAVA GRAPHIQUE AVEC NETBEANS

Testez votre application. Partie 4 – Création d'une classe Nombre. 6. Dans votre projet créez un nouveau fichier Java nommé 



Initiation à la programmation orientée-objet avec le langage Java

java -classpath /prog/exos1:/cours MyProg. 1.2 Programmation orientée-objet. Chaque langage de programmation appartient à une “famille” de langages 



Créer une simple application Java avec netBeans - Cours-Gratuit

Lancez NetBeans. D'abord nous devons créer un projet Java dans lequel se trouveront nos classes. Pour ce faire allez dans le menu Fichier ? 



Interface graphique Java.pdf

Le projet en cours est mis à jour et possède maintenant un fichier En cliquant sur NetBeans vous demandera de sélectionner la classe principale.



Le livre de JAVA premier langage Avec 109 exercices corrigés

d'interfaces graphiques conviviales grâce au logiciel libre NetBeans. une méthode pédagogique et un support de cours pour enseigner Java à des débutants.



Cours 1 -? Fondamentaux

hwp://www.eclipse.org. NetBeans hwp://www.oracle.com/technetwork/java/javase/downloads/index.html Java ? P. Esling -? JAVA -? Cours 1. Fondamentaux.



APPLICATIONS EN JAVA EN UTILISANT SWING

Ecriture d'applications en Java avec SWING Remarque : se reporter à la documentation de Java pour en savoir ... La fenêtre est en cours de.



35 Créer son premier projet avec NetBeans

Développez vos applications en Java. Apache NetBeans. 2. Les types de projets Java. Dans le monde professionnel les projets Java sont régulièrement 



Chapitre 6 Héritage en Java

Chapitre 6. Héritage en Java De course. Décapotable ... Dans l'exemple herex1.java la fonction affiche est membre de la classe de base véhicule.



Supports de cours gratuit sur netbeans java - pdf - BestCours

Description : Télécharger gratuitement cours sur le langage de programmation Java et systèmes embarqués fichier PDF par Jean-Francois Lalande Taille : 315 87 



Cours Complets Netbeans PDF - UnivScience

7 mai 2019 · NetBeans est un environnement de développement intégré (IDE) pour Java NetBeans permet aux applications d'être développées à partir d'un 



Cours Java Avec Netbeans PDF - Scribd

Java Une application graphique complte sans efforts avec NetBeans 6 · 1 Cration d'un projet dans NetBeans · 2 Placer des composants graphiques ncessaires sur 



[PDF] INTRODUCTION AU JAVA GRAPHIQUE AVEC NETBEANS

1 ADDITION DE 2 NOMBRES Partie 1 – Création de l'interface 1 Ouvrez NetBeans et créer un nouveau projet nommé TP01_NetBeans (File/New



Tutoriel NetBeans et Java - Cours-Gratuit

Groupe entreprenant et innovateur « atipax inti » tutoriel netbeans et java en pdf france tutoriel 3 ma première application mobile java me



[PDF] Utilisation de NetBeans - Cours EThirion

20 jan 2015 · L'objectif de ce cours sur les bases de la programmation est avant tout de vous apprendre à programmer La grande majorité des exercices de 



Télécharger cours et exercices gratuit netbeans en PDF - PDFbibcom

Cours et exercices Netbeans - PDF Ceci est une liste de netbeans cours exercices et tutoriels vous trouverez aussi des examens exercices et travaux 



[PDF] Java et NetBeans

1 Contenu de l'ouvrage 2 Environnement de développement 1 Installation du JDK Java 7 5 2 Installation de l'IDE NetBeans 1 1



PDF Télécharger cours java netbeans pdf Gratuit PDF PDFprofcom

Interface graphique Java pdf Le projet en cours est mis à jour et possède maintenant un fichier En cliquant sur NetBeans vous demandera de sélectionner la 



[PDF] Initiation à la programmation orientée-objet avec le langage Java

Le langage Java est un langage généraliste de programmation synthétisant les principaux lan- gages existants lors de sa création en par Sun 

  • Pourquoi utiliser NetBeans ?

    "NetBeans IDE permet à nos développeurs de créer rapidement et facilement des applications de haute qualité. Nous utilisons l'environnement IDE pour créer des applications Web utilisant la plate-forme Java EE, ainsi que PHP, JavaScript et Ajax.
  • Comment ouvrir un fichier Java avec NetBeans ?

    Si tu fait un clic droit avec la souris sur le fichier java et que tu choisis "ouvrir avec une autre application " ( je suis sous linux, mais en windows il existe l'équivalent), puis tu choisis Netbeans dans la liste et tu coches mémoriser.
  • Comment creer un projet avec NetBeans ?

    Etape 1 : Création d'un nouveau projet
    Nouveau Projet (ou File ? New Project), voir Figure 1. Puis une fenêtre s'affiche (voir Figure 2), dans cette fenêtre spécifiez le type du projet à créer. Vous choisissez donc dans categories (à gauche) le type standard, puis dans Projects (à droite) choisissez Java Application.
  • Dans le menu File, créez un projet en choisissant : New Project. Dans le menu New Project, choisissez Java Application. Vérifiez ensuite le chemin de sauvegarde du projet (Champs Project Location). Le projet initial se compose uniquement d'un fichier Main.

Les bases de la

programmation orientée objet avec Java

Etienne Duris

Etienne DURIS © ESIPEMLV Université ParisEst MarnelaVallée2Bibliographie et sources ➢Les cours de R

émi Foraxhttp://igm.univmlv.fr/~forax/

➢Le cours de MariePierre B

éalhttp://igm.univmlv.fr/~beal/

➢Java et Internet G. Roussel, E. Duris, N. Bedon et R. Forax. Vuibert 2002. ➢Documentations Java Oracle http://docs.oracle.com/javase/ ➢The Java Language Specification, Third Edition: http://java.sun.com/docs/books/jls/ ➢The Java Virtual Machine Specification, Second Ed: http://java.sun.docs/books/jvms Etienne DURIS © ESIPEMLV Université ParisEst MarnelaVallée3Il existe diff érents styles de programmation➢Style applicatif ➢Fond

é sur l'évaluation d'expressions qui ne dépendent que de la valeur des arguments, et non de l'

état de la mémoire ➢On parle aussi de programmation fonctionnelle ➢Proche des notations math ématiques, utilise beaucoup la récursivité➢Accepte des arguments, produit un r ésultat (pas d'" effet de bord »)➢Ex: Lisp, Caml, ML, Haskel ➢Style imp

ératif➢Fond

é sur l'exécution d'instructions qui modifient l'état de la m

émoire➢Utilise beaucoup les it

érations et autres structures de contrôle➢Les structures de donn ées sont fondamentales➢Ex: Fortran, C, Pascal Etienne DURIS © ESIPEMLV Université ParisEst MarnelaVallée4Le style objet ➢C'est un style de programmation o ù l'on considère que des composants autonomes (les objets) disposent de ressources et de moyens d'interactions entreeux. ➢Ces objets repr ésentent des données qui sont modélisées par des classes qui d éfinissent des types ➢un peu comme typedef struct en C ➢En plus de la mani ère dont sont structurés leurs objets, les classes d éfinissent les actions qu'ils peuvent prendre en charge et la mani ère dont ces actions affectent leur état➢ce sont des " messages » ou des " m

éthodes ».

➢Java n'est pas le seul langage objet ➢Simula, Smalltalk, C++, OCaml...

Etienne DURIS © ESIPEMLV Université ParisEst MarnelaVallée5Les avantages de la programmation objet

➢Les caract éristiques de bases précédemment décrites peuvent ê tre mises en oeuvre dans un style impératif, mais des fonctionnalit és propres au style objet favorisent:➢la programmation modulaire ➢l'abstraction ➢la sp écialisation➢L'objectif est de produire du code ➢facile à développer, à maintenir, à faire évoluer, ➢r éutilisable, tout ou en partie, sans avoir besoin de le dupliquer➢g énérique, et dont les spécialisations sont transparentes Etienne DURIS © ESIPEMLV Université ParisEst MarnelaVallée6Programmation modulaire ➢La conception par classes, repr ésentant à la fois les données, les actions et les responsabilit

és des objets de cette classe,

permet de bien distinguer et s

éparer les concepts➢Le fait de d

éfinir des " interfaces »,

au sens " moyens et modalit

ésde communication avec l'ext

érieur »permet de cacher les d

étails d'impl

émentation et d'éviterles d

épendances trop fortes➢Tout

ça favorise la réutilisabilité etla composition / d

élégation:

l'assemblage des composants en respectant leurs responsabilit és Etienne DURIS © ESIPEMLV Université ParisEst MarnelaVallée7L'abstraction et la sp

écialisation➢L'abstraction demande

à séparer la définition (d'un type,

d'une classe, d'une m éthode) de l'implémentation➢Permet d'identifier un mod èle commun à plusieurs composants➢Ce mod

èle commun pourra être partagé via le m

écanisme d'héritage➢La sp

écialisation traite

des cas particuliers, mais elle doit autant que possible rester transparente: ➢C'est possible gr

âce à

la dérivation? Etienne DURIS © ESIPEMLV Université ParisEst MarnelaVallée8Le langage Java: ➢est n é en 1995 chez Sun Microsystems ➢Version actuelle Java 8, actuellement Oracle ➢est orient

é objet➢est fortement typ

é➢Toute variable doit

être déclarée avec un type➢Le compilateur v

érifie que les utilisations des variables sont compatibles avec leur type (notamment via un soustypage correct)

➢Les types sont d'une part fournis par le langage, mais

également par la d

éfinition des classes➢est compil

é➢En bytecode, i.e., code interm

édiaire indépendant de la machine➢est interpr

été ➢Le bytecode est interp

été par une machine virtuelle Java

Etienne DURIS © ESIPEMLV Université ParisEst MarnelaVallée9Premier exemple ➢Dans un fichier de nom HelloWorld.java ➢R ègle: toute classe publique doit être dans un fichier qui a le m

ême nom que la classe➢R

ègle: tout code doit être à l'intérieur d'une classe➢Ç a définit une classe, qui est une unité de compilation➢Comme il y a une m éthode main, cette classe est " exécutable »public class HelloWorld { /* Un style de commentaire sur plusieurs lignes. */ public static void main(String[] args) { // Un commentaire sur une seule ligne

System.out.println("Bonjour à vous les IR1!");

Etienne DURIS © ESIPEMLV Université ParisEst MarnelaVallée10Compilation, bytecode et JVM ➢Compilation du langage source > ex

écution du bytecodeFichier HelloWorld.java

public class HelloWorld { /* Un style de commentaire sur plusieurs lignes. */ public static void main(String[] args) { // Un commentaire sur une seule ligne

System.out.println("Bonjour

à vous les IR1!"); }

javac HelloWorld.java

Fichier HelloWorld.class

Compiled from "HelloWorld.java"

public class HelloWorld extends java.lang.Object{ public HelloWorld(); Code:

0:aload_0

1:invokespecial#1; //Method java/lang/Object."":()V

4:return

public static void main(java.lang.String[]); Code:

0:getstatic#2; //Field java/lang/System.out:Ljava/io/PrintStream;

3:ldc#3; //String Bonjour

à vous les IR1! 5:invokevirtual#4; //Method java/io/PrintStream.println:(Ljava/lang/String;)V

8:return

}java HelloWorld

Compilation

(une seule fois)Interpr étation / exécution (write once, run everywhere)Linux

Java Virtual MachinePileTasBonjour

à vous les IR1!Windows

Java Virtual MachinePileTasBonjour

à vous les IR1!java HelloWorld

Etienne DURIS © ESIPEMLV Université ParisEst MarnelaVallée11Le bytecode ➢Le langage source Java est d

éfini par la JLS (Java Language

Specification)

éditée par SunOracle➢Dans sa syntaxe et sa s émantique➢Le code source d'une classe contenue dans un fichier est compil

é avec la commande javac

➢Cela produit un code interm édiaire, appelé bytecode, qui est le " langage machine » de la machine virtuelle Java ➢Le bytecode d'une classe est destin

é à être chargé par une

machine virtuelle qui doit l'ex

écuter avec la comande java

➢Soit par interpr étation, soit par compilation " juste à temps » (justintime ou JIT) ➢L'argument est le nom de la classe (sans l'extension .class) Etienne DURIS © ESIPEMLV Université ParisEst MarnelaVallée12La machine virtuelle (JVM) ➢Son r ôle est d'abstraire le comportement d'une machine ➢Pour le rendre le + possible ind épendant de la plateforme➢Son comportement est d éfini par la JVM Spec édité par SunOracle ➢Une JVM est une impl

émentation de cette spec➢Qui peut

être adaptée à une plateforme d'accueil (Windows, Linux, Mac...) ➢Qui peut

être développée par Sun (HotSpot: open source GPL depuis 2006) ou par d'autres: IBM, Jikes, etc.

➢Une JVM traduit le bytecode dans le langage machine de la plateforme d'accueil

Etienne DURIS © ESIPEMLV Université ParisEst MarnelaVallée13Java: un langage et une plateforme

➢Dans la technologie Java, on a donc besoin ➢Du langage de programmation et du compilateur ➢Et plein de commandes bien utiles: jar, javap, javadoc, etc ➢De la JVM et des APIs (Application Programming Interfaces) regroup ées dans une " plateforme »:➢Java SE (Java Platform, Standard Edition): Java SE 6 pour applications classiques, desktop ➢Java EE (Java Platform, Enterprise Edition): Java EE 6 pour d

évelopper et déployer des applications serveur, Web services, etc.➢Java ME (Java Platform, Micro Edition): J2ME pour les applications

embarqu ées, PDA, téléphones, etc.➢Si on veut juste ex

écuter, il suffit du JRE (Java Runtime

Execution) par opposition au JDK (Java Developpement Kit)

Etienne DURIS © ESIPEMLV Université ParisEst MarnelaVallée14Java SE 7 Plateform at a Glance (http://docs.oracle.com/javase/7/docs/)

Etienne DURIS © ESIPEMLV Université ParisEst MarnelaVallée15Le langage Java ➢Les variables, les op érateurs, les expressions, instructions, blocs, contr ôle de flot sont très proches de ceux du C➢Les exceptions sont une nouveaut é➢Les types primitifs ont une taille et une repr

ésentation normée➢S'y ajoutent des sp

écificités syntaxiques liées à la programmation objet, aux classes, à l'héritage...➢Un style de nommage (tr ès fortement) conseillé➢Style " chameau » (CamelCase) pour les indentificateurs ➢Premi ère majuscule pour les classes (class HelloWorld) ➢Premi ère minuscule pour les variables/champs et les fonctions/m

éthodes (radius, getRadius())

➢Tout en majuscule pour les constantes (MAX_SIZE) Etienne DURIS © ESIPEMLV Université ParisEst MarnelaVallée16Classes et objets ➢Une classe Toto repr

ésente plusieurs choses:➢Une unit

é de compilation➢La compilation d'un programme qui contient une classe Toto produira un fichier Toto.class ➢La d

éfinition du type Toto

➢Il peut servir

à déclarer des variables comme Toto t;

➢Un moule pour la cr

éation d'objets de type Toto

➢Cela n écessite en général la définition d'un ensemble de champs (fields) d écrivant l'état d'un objet de ce type et d'un ensemble de m

éthodes définissant son comportement ou ses focntionnalités➢Chaque objet de la classe Toto

➢Dispose de son propre

état (la valeur de ses champs)

➢R épond au même comportement (via les méthodes de la classe) Etienne DURIS © ESIPEMLV Université ParisEst MarnelaVallée17Structure d'une classe ➢Une classe est d éfinie par son nom et son package d'appartenance (ex: java.lang.String) ➢En l'absence de directive, les classes sont dans un package dit " par d éfaut » (i.e., pas de packge).➢Une classe peut contenir trois sortes de membres ➢Des champs (fields) ou attributs ➢Des m

éthodes (methods) et constructeurs

➢Des classes internes ➢Les membres statiques (static) sont dits membres de classe ➢Ils sont d

éfinis sur la classe et non sur les objets➢Les membres non statiques (ou d'instance) ne peuvent exister

sans un objet Etienne DURIS © ESIPEMLV Université ParisEst MarnelaVallée18Exemplepublic class Pixel { public final static int ORIGIN = 0; private int x; private int y; public Pixel(int x, int y) { this.x = x; this.y = y; public void reset() { x = ORIGIN; y = ORIGIN; public void printOnScreen() {

System.out.println("("+x+","+y+")");

public static boolean same(Pixel p1, Pixel p2) { return (p1.x==p2.x) && (p1.y==p2.y); public static void main(String[] args) {

Pixel p0 = new Pixel(0,0);

Pixel p1 = new Pixel(1,3);

p1.printOnScreen(); // (1,3)

System.out.println(same(p0,p1)); // false

p1.reset();

System.out.println(same(p0,p1)); // true

}Constructeur M

éthodesd'instancesChampsConstante

M

éthodede classe

Variables locales

la méthode main et objets de la classe Pixel Etienne DURIS © ESIPEMLV Université ParisEst MarnelaVallée19Les objets sont manipul

és via des r

éférences (sortes d'adresses mémoire) public void reset() { #1.x = #s; #1.y = #s; }public void reset() { x = ORIGIN; y = ORIGIN; }p1.reset();Lorsque la m

éthodeest appel

ée, le code de la m

éthode défini dans la classe comme

est ex

écuté sur la pile avec les r

éférences #1 à la place de p1 et #s

à la place de ORIGINCe qui a pour effet de

mettre p1.x et p1.y

à 0y = 0Classe Pixel

constructeur m

éthodesmain

x = 0Pixel p1 y = 3x = 1Pixel p2#1 #2ORIGIN = 0#s 0

0@ class Pixel

@ class Pixel

Chaque objet connait sa classe#1

#2 Etienne DURIS © ESIPEMLV Université ParisEst MarnelaVallée20La nature des variables en Java ➢Les variables locales comme les champs des classes et des objets ne peuvent être que de deux natures➢De type " primitif » ➢Dans ce cas, la d éclaration de la variable réserve la place m émoire pour stocker sa valeur (qui dépend de son type)➢De type " objet », ou r

éférence➢Dans ce cas, la d

éclaration de la variable ne fait que réserver la place d'une r éférence (une sorte de pointeur) qui permettra d'acc éder à l'endroit en mémoire où est effectivement stocké l'objet en luim ême (vaut null si référence inconnue)Pixel p1; y = 3x = 1#1int entier;long entierLong; @ class Pixel p1=new Pixel(1,3);#1 r

éférenceobjet

Etienne DURIS © ESIPEMLV Université ParisEst MarnelaVallée21Les types primitifs ➢Types entiers sign és (représentation en complément à 2)➢byte (octet) sur 8 bits: [128 .. 127] ➢short sur 16 bits [32768 .. 32767] ➢int sur 32 bits [2147483648 .. 2147483647] (d éfaut pour entiers)➢long sur 64 bits [9223372036854775808 .. 9223372036854775807] ➢Type caract ère non signé (unités de code UTF16)➢char sur 16 bits ['\u0000' .. '\uffff'] ➢Types à virgule flottante (représentation IEEE 754)➢float sur 32 bits ➢double sur 64 bits (d

éfaut pour flottants)➢Type bool

éen: boolean (true ou false)

Etienne DURIS © ESIPEMLV Université ParisEst MarnelaVallée22Promotion enti ère et flottants spéciaux➢Pour la plupart des op érations, les valeurs entières sont transform és en des " int » (promotion entière):➢short s = 4; s = s+s; // Type mismatch: cannot convert int to short s = (short) (s+s); // cast n

écessaire➢Les d

ébordements ou cas d'erreurs sont prévus pour les flottants (Infinity et NotaNumber): ➢double d = 1e308;

System.out.println(d*10); // affiche: Infinity

➢d = 0.0/0.0;

System.out.println(d); // affiche: NaN

Etienne DURIS © ESIPEMLV Université ParisEst MarnelaVallée23Attention aux nombres à virgule flottante➢Ils ne sont que des approximation des valeurs ➢Leur égalité au sens de l'opérateur == n'a aucun sens ➢Il faut tester leur " proximit é » modulo un epsilon donnédouble d = 0.0; int nb = 0; double expected = 1.0; while (d != 1.0 /* && nb < 10 */) { // boucle infinie!!! d += 0.1; nb++;

System.out.println("nb: " + nb + " d: " + d);

// Si on décommente, affiche nb: 10 d: 0.9999999999999999 static final double EPSILON = 0.00001; double d = 0.0; double expected = 1.0; while ( Math.abs(expected - d) > EPSILON ) d += 0.1;

System.out.println(d); // 0.9999999999999999

Etienne DURIS © ESIPEMLV Université ParisEst MarnelaVallée24Tous les autres types sont " objets » et

sont manipul és via des références➢soit des types d éfinis dans les APIs➢java.lang.Object, java.lang.String,java.util.Scanner, etc. ➢String chaine = "toto"; ➢Diff érent du C!➢En plus, les String sont constantes ➢soit des types " cach és » ➢Tableau de types primitifs ou d'autres types " objets » ➢int[] tab = {3, 5, 7, 9}; ➢String[] args; ➢Pixel[] array = new Pixel[2]; ➢soit des types d éfinis par l'utilisateur➢Pixel p = new Pixel(0,0);to#2#1@class String#1 to\n#2 length = 4#1@class int[] #1 3 5 7 9... length = 2#2@class Pixel[] #2 null nullnull Etienne DURIS © ESIPEMLV Université ParisEst MarnelaVallée25Types Java et passage de param

ètre➢Lors des appels de m

éthode, les arguments sont toujours

pass és par valeur➢Dans le cas des types primitifs, c'est la valeur de l'argument qui est recopi ée dans le paramètre de la méthode➢Les modifications sur le param ètre de la méthode sont sans effet sur l'argument ➢Dans le cas des types " objet », c'est la valeur de la variable, (la r éférence à l'objet) qui est transmise à la méthode➢Les modifications effectu

ées en suivant cette référence (e.g.

modification d'un champ de l'objet) sont r

épercutés dans la m

émoire et sont donc visibles sur l'argument

➢En revanche, la modification de la r éférence ellemême est sans effet sur l'argument (c'en est une copie) Etienne DURIS © ESIPEMLV Université ParisEst MarnelaVallée26Passage de param ètre: type primitifpublic static void m1(int i) { i++; public static void main(String[] args) { int entier = 5; m1(entier);

System.out.println(entier); // 5

}5entier5i6➢Dans le cas des types primitifs, c'est la valeur de l'argument qui est recopi ée dans le paramètre de la méthode➢Les modifications sur le param ètre de la méthode sont sans effet sur l'argument Etienne DURIS © ESIPEMLV Université ParisEst MarnelaVallée27Passage de param ètre: type référencepublic static void m2(Box b) { b.field++; public static void main(String[] args) {

Box box = new Box();

box.field = 5; m2(box);

System.out.println(box.field); // 6

}class Box { int field; }boxb

6#1@class Box

#1field = 5#1➢Dans le cas des types " objet », c'est la valeur de la variable, (la r éférence à l'objet) qui est transmise à la méthode➢Les modifications effectu

ées en suivant cette référence (e.g.

modification d'un champ de l'objet) sont r

épercutés dans la m

émoire et sont donc visibles sur l'argument

Etienne DURIS © ESIPEMLV Université ParisEst MarnelaVallée28Passage de param ètre: type référencepublic static void m3(Box b) {

Box tmp = new Box();

tmp.field = b.field+1; b = tmp; public static void main(String[] args) {

Box box = new Box();

box.field = 5; m3(box);

System.out.println(box.field); // 5

}class Box { int field; }boxb#1@class Box #1field = 5#1 ➢Dans le cas des types " objet », c'est la valeur de la variable, (la r

éférence à l'objet) qui est transmise à la méthode➢En revanche, la modification de la r

éférence ellemême est sans effet sur l'argument (c'en est une copie) #2@class Box field = 6tmp#2 #2 Etienne DURIS © ESIPEMLV Université ParisEst MarnelaVallée29Type r

éférence et valeur null➢Lorsqu'on d

éclare une variable de type objet, seule la place de la r

éférence est réservée sur la pile d'exécution (registre)➢4 octets, 32 bits, et ce quelque soit le type de l'objet r

éférencé➢Par d

éfaut, cette référence vaut une valeur particulière, null. ➢Il est interdit de tenter d'y acc éder, de la déréférencer➢Le compilateur v érifie ce qu'il peut➢On peut " forcer » pour que ça compile => lève une exceptionpublic static void main(String[] args) {

Box b;

quotesdbs_dbs13.pdfusesText_19
[PDF] résoudre équation produit nul second degré

[PDF] équation algébrique définition

[PDF] passer de l'autre côté expression

[PDF] résoudre équation algébrique en ligne

[PDF] passer de l'autre côté du miroir expression

[PDF] passer de l autre côté du miroir synonyme

[PDF] comment résoudre une équation algébrique avec des fractions

[PDF] quand l'amitié devient amour

[PDF] passer de l'autre côté de la barrière

[PDF] comment transformer l'amitié en amour

[PDF] passer de l'amitié ? l'amour comment

[PDF] séquence passer de l'écriture fractionnaire aux nombres décimaux cm1

[PDF] resoudre identité remarquable en ligne

[PDF] log a log b

[PDF] resoudre systeme avec ln