Chapitre d’ouvrage

3. Le modèle objet de Java

Pages 47 à 67

Citer ce chapitre


  • Granet, V.
  • et Regourd, J.-P.
(2019). 3. Le modèle objet de Java. Java (5e éditio, p. 47-67). Dunod. https://stm.cairn.info/aide-memoire-java--9782100790388-page-47?lang=fr.

  • Granet, Vincent.
  • et al.
« 3. Le modèle objet de Java ». Java, Dunod, 2019. p.47-67. CAIRN.INFO, stm.cairn.info/aide-memoire-java--9782100790388-page-47?lang=fr.

  • GRANET, Vincent
  • et REGOURD, Jean-Pierre,
2019. 3. Le modèle objet de Java. In : Java. Paris : Dunod. Aide-Mémoire, p.47-67. URL : https://stm.cairn.info/aide-memoire-java--9782100790388-page-47?lang=fr.

Notes

  • [1]
    L’intégralité du code des deux versions de Azertyuiop est disponible sur le site web de l’ouvrage, http://users.polytech.unice.fr/~vg/index-aidememoire.html.
  • [2]
    La terminologie pour désigner ces informations est très variée. Elle va de champ, traduction littérale de l’anglais field, au peut-être trop algorithmique donnée, en passant par le classique variable que nous avons retenu.
  • [3]
    Certains auteurs parlent aussi de modificateurs, considérant que leur usage modifie le comportement usuel, i.e. en leur absence.
  • [4]
    Ce qualificateur ne s’utilise que pour des classes internes (cf. chapitre 4).
  • [5]
    Ce qualificateur indique que tout réel (expression, méthode) dans la classe est FP-strict, cf. IEEE 754.
  • [6]
    Cf. chapitre 4.
  • [7]
    Cf. chapitre 4.
  • [8]
    Cf. chapitre 6.
  • [9]
    Java c’est fou !
  • [10]
    Cf. chapitre 6.
  • [11]
    Cf. chapitre 4.
  • [12]
    Cf. chapitre 4.
  • [13]
    Certes, il est tout à fait possible de donner un nom différent au paramètre formel…
  • [14]
    La terminologie accesseur et mutateur (getters/setters en anglais) est souvent employée pour ce couple de méthodes.
  • [15]
    En fait, il est aussi possible de procéder à une instanciation via la méthode newlnstance () de la classe java.lang.Class (cf. 4.7) ou encore via la méthode instanciate () de la classe java.beans.Beans.
  • [16]
    Avant même de parler d’héritage, il faut noter que le compilateur Java indiquera une erreur s’il doit définir un constructeur par défaut et que la super-classe de la classe ne possède pas de constructeur sans paramètre.
  • [17]
    Voire plus, par appels en cascade.
  • [18]
    Cest avec Lisp en I960 que fut inventé ce mécanisme et cest principalement pour Lisp que de nombreuses études ont été faites sur l’art et la manière de récupérer la place rendue inaccessible tout au long de l’histoire du calcul.
  • [19]
    Cf. chapitre 9.
  • [20]
    Ces éléments sont des classes, mais aussi des interfaces, que nous étudierons dans le chapitre 4.
  • [21]
    De nombreux développements ont donné naissance à d’autres racines comme javax et org.
  • [22]
    Nous utiliserons ce terme de préférence à celui de visibilité que nous réserverons au champ lexical.
  • [23]
    Notez bien que nous ne sommes pas au niveau de la compilation, qui nécessite la gestion de la variable d’environnement CLASSPATH, cf. chapitre 11, pour que les paquetages soient accessibles.
  • [24]
    Certains auteurs rapprochent cette sémantique du friendly de C++.
  • [25]
    Cf. chapitre 4.

Guidés par les besoins d’évolution d’un exemple, ce chapitre et le suivant couvrent l’essentiel des mécanismes objets de Java. Nous commencerons par les bases du modèle classe-instance, qui trouvent en Java une mise en œuvre claire et très bien intégrée dans les préoccupations actuelles du développement de logiciels.
Nous nous appuierons, tout au long de ce chapitre et du suivant, sur une seule et même application Java, qui nous servira en quelque sorte de fil rouge. Il s’agit d’un programme simple dont l’origine se perd dans les méandres des exemples et exercices traditionnels de l’apprentissage d’un autre langage, Lisp, dans quelque université parisienne…
L’objectif est l’implémentation d’un jeu qui consiste en l’utilisation d’un robot manipulateur de cubes posés sur une table. Notre robot, appelons-le Azertyuiop, évolue dans un monde très simple qui comprend une table (de taille infinie) et un ensemble de cubes posés sur la table. Il dispose d’une main pour manipuler les cubes. Le nombre de cubes doit être déterminé au début du jeu. Notre robot obéit aux ordres donnés par l’utilisateur. Il peut répondre à quatre requêtes différentes :raconte : pour décrire l’état du monde. Ceci permet de savoir très clairement où sont les cubesaide : pour afficher une aide sur les possibilités d’action.pose cube sur objet : pour poser le cube désigné sur l’objet indiqué. Cet objet peut être un autre cube ou la table.quitte : pour arrêter le jeu.Le cœur du problème consiste bien entendu en la réalisation de la manipulation des cubes…


Date de mise en ligne : 20/08/2024

Ce chapitre est en accès conditionnel

Acheter cet ouvrage

17,98 €

320 pages, format électronique (HTML et feuilletage, par chapitre)
Membre d'une institution cliente ?