ntro.ca

        • Contrats de classe
        • Liens utiles
        • Calendrier
        • Calendrier groupe 2
        • Calendrier groupes 1, 3
        • Structure du cours
        • Évaluations
        • Matériel à se procurer
        • Les profs
          • Marc-Olivier Tremblay
          • Mathieu Bergeron
        • Module 1.1: installation + trier des cartes
        • Module 1.2: rappels POO
        • Module 1.3: tableau d'objets
        • Examen 1
        • Module 2.1: données JSON
        • Module 2.2: données en Java
        • Module 2.3: récursivité
        • Examen 2
        • Module 3.1: structure générique
        • Module 3.2: efficacité (1)
        • Module 3.3: efficacité (2)
        • Examen 3
        • Module 4.1: liste naïve
        • Module 4.2: liste par tableau
        • Module 4.3: liste chaînée
        • Examen 4
        • Module 5.1: mappage naïf
        • Module 5.2: mappage par hachage
        • Module 5.3: mappage par arbre
        • Examen 5
        • Équipes
          • Horaire groupe 1
          • Horaire groupe 2
          • Horaire groupe 3
          • Groupe 1
          • Groupe 2
          • Groupe 3
        • Projets vedettes 2022
        • Projets vedettes 2023
        • Projets vedettes 2024
        • Survol
        • Structure
        • Calendrier
        • Calendrier des séances
        • Évaluations
        • Exemples de jeu
        • Exemples de pages
        • Réponses à vos questions
        • Module 1: créer le projet
        • Module 2: concevoir l'application
        • Module 3: vues NtroFx
        • Module 4: modèle et navigation
        • Module 5: ajouter le dorsal, modifier le modèle
        • Module 7: améliorer l'affichage
        • Module 8: jeu en 2d
        • Module 9: client/serveur
        • Module 10: plusieurs instances du même modèle
        • TP1
        • Examen 1
        • TP2
        • Examen 2
        • Projet de fin de session
      • Ajout Format JSON
        • Calendrier
        • Évaluations
        • Structure du cours
        • Contrat de classe
        • Le prof
        • 01: Windows et Word
          • Astuces et raccourcis
        • 02: Word
        • 03: Word
          • Exercice Word: insertion d'éléments spéciaux
          • Exercice Word: tableaux
        • 04: Word
          • Exercice Word: références
          • TP01: Word (15%)
        • 05: PowerPoint
          • TP02: PowerPoint (10%)
        • 06: Examen Word (20%)
        • 07: Excel
        • 08: Excel
        • 09: Excel
          • TP03: Excel (15%)
        • 10: Excel
        • 11: Examen Excel (20%)
        • 12: Access
        • 13: Access
        • 14: Access
        • 15: Examen Access
      • Sondage H2023 (dept. info)
      • Vision H2023 (dept. info)
      • P1) exercices interactifs de lecture
      • P2) transition Excel vers Python
        • Atelier 2: un exemple
      • Index
      • Point de vue sur l'IA
    Atelier 1.2 exercie 4: interface et classe abstraite
    • Atelier 1.2 exercie 4: interface et classe abstraite
      • Objectifs
      • Réalisation
        • Étape 01: créer la classe MonAtelier1_2_D
        • Étape 02: hériter de Atelier1_2_D
        • Étape 03: créer les interfaces
        • Étape 04: copier les classes à partir de atelier1_2_C
        • Étape 05: réparer les import
        • Étape 06: remplir les interfaces
        • Étape 07: transformer Vehicule en classe abstraite
        • Étape 08: transformer les méthodes “vides” en méthodes abstraites
        • Étape 09: ajouter la méthode main
        • Étape 10: exécuter pour valider

    Atelier 1.2 exercie 4: interface et classe abstraite #

    Objectifs #

    1. Je crée la classe MonAtelier1_2_D qui hérite de la classe Atelier1_2_D

    2. Je crée moi-même les interfaces Rouleur et Formateur

    3. Je recopie les classes suivantes de l’atelier1_2_C:

      • Vehicule
      • Auto
      • Camion
      • Mobilette
      • Moto
    4. J’ajoute les bonnes méthodes dans les interfaces

    5. Je transforme la classe Vehicule en classe abstraite

    6. Je transforme les méthodes “vides” en méthodes abstraites

    7. Je corrige les erreurs de compilation

    8. J’ajoute une méthode main à la classe MonAtelier1_2_D:

      public static void main(String[] args) {
      
              new MonAtelier1_2_D().valider();
          }
      
    9. J’implante les méthodes pour remplir le contrat du Atelier1_2_D, p.ex:

      @Override
          public Object fournirMoto() {
              return new Moto();
          }
      
          @Override
          public Object fournirMobilette() {
              return new Mobilette();
          }
      
          @Override
          public Object fournirAuto() {
              return new Auto();
          }
      
          @Override
          public Object fournirCamion() {
              return new Camion();
          }
      
    10. J’exécute mon projet et je valide mes classes et mes interfaces

    11. J’ajoute les fichiers du projet dans Git

    12. Je fais un commit et un push

    Réalisation #

    Étape 01: créer la classe MonAtelier1_2_D #

    1. Je crée une nouvelle classe nommée MonAtelier1_2_D
      • Clique-droit sur le projet => New => Class
        • Name: MonAtelier1_2_D

    Étape 02: hériter de Atelier1_2_D #

    1. J’ouvre MonAtelier1_2_D et j’ajoute extends Atelier1_2_D

    2. J’utilise Ctrl+.Eclipse: Ctrl+1 pour ajouter le import de Atelier1_2_D

    3. J’utilise Ctrl+.Eclipse: Ctrl+1 pour générer les méthodes manquantes

      • option add unimplemented methods

    Étape 03: créer les interfaces #

    1. Je crée une nouvelle interface nommée Rouleur

      • Clique-droit sur le projet => New => Interface
        • Name: Rouleur
    2. Je crée une nouvelle interface nommée Formateur

      • Clique-droit sur le projet => New => Interface
        • Name: Formateur

    Étape 04: copier les classes à partir de atelier1_2_C #

    1. Pour les classes Auto, Camion, Mobilette, Moto et Vehicule
      • je fais un copier-coller:
        • à partir de la classe située dans le paquet atelier1_2_C
        • vers le paquet atelier1_2_D

    Étape 05: réparer les import #

    1. Dans Vehicule, j’efface les import de Rouleur et Formateur

    Étape 06: remplir les interfaces #

    • Dans Rouleur, j’ajoute la méthode rouler:
    public interface Rouleur {
        	
        	void rouler(double kilometres);
        }
    
    1. Dans Formateur, j’ajoute la méthode formter:
    public interface Formateur {
        	
        	String formater();
        }
    

    Étape 07: transformer Vehicule en classe abstraite #

    1. Dans Vehicule, j’ajoute le mot clé abstract:
    public abstract class Vehicule implements Rouleur, Formateur {
    

    Étape 08: transformer les méthodes “vides” en méthodes abstraites #

    1. Dans Vehicule, je considère les méthodes:

      • consommationLitresParKilometre
      • nomVehicule
      • siNomFeminin
    2. Pour chaque, méthode ci-haut:

      • j’ajoute le mot clé abstract
      • j’efface le corps de la méthode (le code)
    3. Voici le résultat:

    	protected abstract double consommationLitresParKilometre();
    
        	protected abstract String nomVehicule();
    
        	protected abstract boolean siNomFeminin();
    

    Étape 09: ajouter la méthode main #

    1. J’ouvre MonAtelier1_2_D et j’ajoute la méthode main
    public class MonAtelier1_2_D extends Atelier1_2_D {
            
            public static void main(String[] args) {
                
                new MonAtelier1_2_D().valider();
            }
    

    Étape 10: exécuter pour valider #

    1. J’exécute mon programme

    2. Je vérifie que la validation est réussie:

    Creative Commons License Creative Commons Attribution Creative Commons ShareAlike
    • Atelier 1.2 exercie 4: interface et classe abstraite
      • Objectifs
      • Réalisation
        • Étape 01: créer la classe MonAtelier1_2_D
        • Étape 02: hériter de Atelier1_2_D
        • Étape 03: créer les interfaces
        • Étape 04: copier les classes à partir de atelier1_2_C
        • Étape 05: réparer les import
        • Étape 06: remplir les interfaces
        • Étape 07: transformer Vehicule en classe abstraite
        • Étape 08: transformer les méthodes “vides” en méthodes abstraites
        • Étape 09: ajouter la méthode main
        • Étape 10: exécuter pour valider