Menu
Coddy logo textTech

Riepilogo - Contatore e utility

Fa parte della sezione Programmazione orientata agli oggetti del percorso Java di Coddy. Lezione 19 di 87.

challenge icon

Sfida

Facile

Costruiamo un sistema completo che combina una classe Counter per tenere traccia delle istanze con una classe di utilità MathUtils, mettendo insieme tutto ciò che hai imparato sulle variabili statiche, i metodi statici, i blocchi statici e le costanti.

Creerai tre file per organizzare il codice:

  • Counter.java: crea una classe che tiene traccia del numero di istanze create:
    • Una variabile statica privata per contare il numero totale di istanze
    • Una variabile di istanza privata id che memorizza l'identificatore univoco di ogni contatore
    • Un costruttore che incrementa il conteggio totale e assegna il conteggio corrente come id di questa istanza
    • Un metodo getId() che restituisce l'id univoco di questo contatore
    • Un metodo statico getTotalCount() che restituisce il numero di oggetti Counter creati
  • MathUtils.java: crea una classe di utilità con solo membri statici (non viene mai istanziata):
    • Una costante pubblica PI con valore 3.14159
    • Una costante pubblica HALF con valore 0.5
    • Un metodo statico square(int n) che restituisce n al quadrato
    • Un metodo statico cube(int n) che restituisce n al cubo
    • Un metodo statico circleArea(double radius) che restituisce PI * radius * radius
  • Main.java: mostra come funzionano insieme entrambe le classi. Riceverai due input: un numero per le operazioni matematiche e un conteggio del numero di oggetti Counter da creare. Stampa quanto segue:
    • Square: [value]
    • Cube: [value]
    • Circle area (radius=[number]): [value] (area formattata con 2 cifre decimali)
    • Per ogni Counter creato, stampa: Counter [id] created
    • Infine: Total counters: [count]

Riceverai due input: un numero (int) per i calcoli matematici e un conteggio (int) del numero di oggetti Counter da creare.

Ricorda di accedere ai membri statici tramite il nome della classe (come MathUtils.PI e Counter.getTotalCount()) e di usare String.format("%.2f", value) per formattare i valori decimali.

Provalo tu

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: Usa i metodi statici di MathUtils per calcolare e stampare:
        // - Quadrato: [value]
        // - Cubo: [value]
        // - Circle area (radius=[number]): [value] (formattato con 2 cifre decimali)
        
        // TODO: Crea un numero di oggetti Counter pari a 'count'
        // Per ogni Counter creato, stampa: Counter [id] creato
        
        // TODO: Stampa il numero totale di contatori creati
        // Total counters: [count]
    }
}

Tutte le lezioni di Programmazione orientata agli oggetti

Esercitati da solo: Compilatore Java online