Récapitulatif - Compteur et utilitaire
Fait partie de la section Programmation Orientée Objet du Journey Java de Coddy — leçon 19 sur 87.
Défi
FacileConstruisons un système complet qui combine une classe Counter pour le suivi des instances avec une classe utilitaire MathUtils - regroupant tout ce que vous avez appris sur les variables statiques, les méthodes statiques, les blocs statiques et les constantes.
Vous allez créer trois fichiers pour organiser votre code :
Counter.java: Créez une classe qui suit le nombre d'instances créées :- Une variable statique privée pour compter le nombre total d'instances
- Une variable d'instance privée
idqui stocke l'identifiant unique de chaque compteur - Un constructeur qui incrémente le compte total et assigne le compte actuel comme identifiant de cette instance
- Une méthode
getId()qui retourne l'identifiant unique de ce compteur - Une méthode statique
getTotalCount()qui retourne le nombre d'objets Counter créés
MathUtils.java: Créez une classe utilitaire avec uniquement des membres statiques (jamais instanciée) :- Une constante publique
PIavec la valeur3.14159 - Une constante publique
HALFavec la valeur0.5 - Une méthode statique
square(int n)qui retourne n au carré - Une méthode statique
cube(int n)qui retourne n au cube - Une méthode statique
circleArea(double radius)qui retourne PI * radius * radius
- Une constante publique
Main.java: Démontrez le fonctionnement conjoint des deux classes. Vous recevrez deux entrées : un nombre pour les opérations mathématiques et un nombre d'objets Counter à créer. Affichez les éléments suivants :Square: [value]Cube: [value]Circle area (radius=[number]): [value](aire formatée à 2 décimales)- Pour chaque Counter créé, affichez :
Counter [id] created - Enfin :
Total counters: [count]
Vous recevrez deux entrées : un nombre (int) pour les calculs mathématiques, et un compte (int) pour le nombre d'objets Counter à créer.
N'oubliez pas d'accéder aux membres statiques via le nom de la classe (comme MathUtils.PI et Counter.getTotalCount()), et utilisez String.format("%.2f", value) pour formater les valeurs décimales.
Essayez vous-même
import java.util.Scanner;
class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int number = scanner.nextInt();
int count = scanner.nextInt();
// TODO: Utiliser les méthodes statiques de MathUtils pour calculer et afficher :
// - Square: [value]
// - Cube: [value]
// - Circle area (radius=[number]): [value] (formaté à 2 décimales)
// TODO: Créer un nombre 'count' d'objets Counter
// Pour chaque Counter créé, afficher : Counter [id] created
// TODO: Afficher le nombre total de compteurs créés
// Total counters: [count]
}
}
Toutes les leçons de Programmation Orientée Objet
1Fondamentaux de la POO
Fichiers externesIntroduction à la POOClasses vs ObjetsLe mot-clé thisMéthodesChamps (Attributs)Méthode constructeurSurcharge de constructeurRécapitulatif - Calculatrice simple4Héritage
Héritage de base (extends)Le mot-clé superRedéfinition de méthode (@Override)Chaînage de constructeursLa classe ObjectHéritage simple et multiniveauPourquoi pas d'héritage multiple de classesRécapitulatif - Hiérarchie des employés7Méthodes spéciales et classe Object
Méthode toString()equals() et hashCode()Méthode clone()compareTo() et ComparableInterface ComparatorRécapitulatif - Tri personnalisé2Modificateurs d'accès et Encapsulation
Aperçu des niveaux d'accèsMéthodes Getter et SetterMasquage d'informationsLe mot-clé finalRécapitulatif - Gestionnaire de compte bancaire5Polymorphisme
Bases de la surcharge de méthodesRedéfinition de méthodes (Run-Time)Upcasting et DowncastingL'opérateur instanceofClasses et méthodes abstraitesRécapitulatif - Calculateur de formes8Concepts avancés de la POO
Composition vs HéritageAgrégation vs CompositionClasses internes, imbriquées et anonymesEnums et méthodes d'EnumRecords (Java 16+)Classes scellées (Java 17+)11Patrons de conception, partie 1
Introduction aux patrons de conceptionPatron SingletonPatron FabriquePatron MonteurPatron ObservateurPatron Stratégie3Propriétés de classe et membres statiques
Variables d'instance vs variables statiquesMéthodes statiquesBlocs statiquesConstantes (static final)Récapitulatif - Compteur et utilitaire6Interfaces et Classes Abstraites
Introduction aux InterfacesImplémentation d'InterfacesImplémentation d'Interfaces MultiplesDefault et Static dans les InterfacesClasses Abstraites vs InterfacesInterfaces FonctionnellesRécapitulatif - Système de Paiement9La généricité
Introduction à la généricitéClasses génériquesMéthodes génériquesParamètres de type bornésWildcards (?, extends, super)Récapitulatif - Conteneur générique12Patrons de conception, partie 2
Patron CommandePatron AdaptateurPatron DécorateurPatron Template MethodPatron ÉtatPatron CompositePatron Itérateur