2.1. Java 2 et la programmation
orientée objet ( POO )



Plan de ce chapitre:   ...........retour au plan général
Rappels des fondements de  la POO
 

1. Les classes Java : des nouveaux types

    1.1 Déclaration d'une classe
    1.2 Une classe est un type Java
    1.3 Toutes les classes ont le même ancêtre - héritage
    1.4 Encapsulation des classes
    1.5 Exemple de classe intégrée dans une autre classe
    1.6 Exemple de classe inclue dans un package
    1.7 Méthodes abstraites
    1.8 Classe abstraite,  Interface


2. Les objets : des références

    2.1 Modèle de la référence et machine Java

    2.2 Les constructeurs d'objets
    2.3 Utilisation du constructeur d'objet par défaut
    2.4 Utilisation d'un constructeur d'objet personnalisé
    2.5 Le mot clef this


3. Variables et méthodes

    3.1 Variables dans une classe en général
    3.2 Variables et méthodes d'instance
    3.3 Variables et méthodes de classe - static
    3.4 Surcharge et polymorphisme
    3.5 Le mot clef super
    3.6 Modification de visibilité
    3.7 Interfaces Java




Nous proposons des comparaisons entre les syntaxes Delphi et Java lorsque les définitions sont semblables.

1. Les classes : des nouveaux types
 

•    Une classe abstraite est une classe qui ne peut pas être instanciée.
•    Une classe abstraite peut contenir des méthodes déjà implémentées.
•    Une classe abstraite peut contenir des méthodes non implémentées.
•    Une classe abstraite est héritable.
•    On peut contsruire une hiérarchie de classes abstraites.
•    Pour pouvoir construire un objet à partir d'une classe abstraite, il faut dériver une classe non abstraite en une classe implémentant toutes les méthodes non implémentées.
Delphi
Java
Vehicule = class
  public

      procedure Demarrer; virtual; abstract;
      procedure RépartirPassagers; virtual;
      procedure PériodicitéMaintenance; virtual;
 end;

abstract class ClasseA  {
  public abstract void Demarrer( );
  public void RépartirPassagers( );
  public void PériodicitéMaintenance( );
  }

Une classe abstract ne peut pas être instanciée directement, seule une classe dérivée (sous-classe) qui redéfinit obligatoirement toutes les méthodes abstract de la classe mère peut être instanciée. 


  •    La classe Véhicule est abstraite, car la méthode Démarrer est abstraite et sert de "modèle" aux futurs classes dérivant de Véhicule, c'est dans les classes voiture, voilier et croiseur que l'on implémente le comportement précis du genre de démarrage.

•    Notons au passage que dans la hiérarchie précédente, les classes vehicule Terrestre et Marin héritent de la classe Véhicule, mais n'implémentent pas la méthode abstraite Démarrer, ce sont donc par construction des classes abstraites elles aussi.

class  Croiseur  extends  Marin 

 public void  Demarrer ( )  {   …   
 public void  RépartirPassagers ( )  {   …    }
}


Code Java
Explication

La classe ManyConstr possède 2 constructeurs :

Le premier :  ManyConstr (String s)

Le second : ManyConstr (char c, String s)

Grâce à l’instruction this(s), le second constructeur appelle le premier sur la variable s, puis concatène le caractère char c au champ String ch.



La méthode main instancie un objet de classe ManyConstr avec le second constructeur et affiche le contenu du champ String ch. De l’objet ;

Résultat de l’exécution :

   chaine//x