0Pricing
Java Academy · Lezione

Progettazione

Pianificare la gerarchia: scegliere la base astratta, elencare le forme concrete, selezionare campi e metodi e definire semplici operazioni polimorfiche.

Progettazione è una lezione Java Academy gratuita su CoddyKit. Questa è la lezione 1 di 3. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento Java Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso Java Academy include 3 lezioni in totale.

Obiettivo e ambito

Obiettivo: creare una piccola gerarchia di forme con una base astratta (Shape) e un paio di forme concrete (Circle, Rectangle). Prima progetteremo le operazioni comuni, poi confermeremo il piano con piccoli prototipi di codice.

Forme e campi

Forme: Circle (radius), Rectangle (width, height). Mantenete i campi solo dove servono: radius in Circle, width/height in Rectangle. La classe base contiene i contratti di comportamento, non tutti i campi.

Operazioni e polimorfismo

Operazioni comuni: area() e perimeter(). Le dichiariamo in Shape, così ogni Shape può rispondere a queste chiamate. In questo modo un elenco di Shape può contenere oggetti Circle e Rectangle misti ed elaborarli uniformemente.

Codice: schema dell'API

Prototipo 1: definite Shape con area e perimeter e una semplice Circle. In questo modo si verifica che l'API condivisa funzioni per un tipo concreto.

public class Main {
  // Minimal API sketch to validate the design
  static abstract class Shape {
    abstract double area();
    abstract double perimeter();
  }

  static class Circle extends Shape {
    double radius;
    Circle(double r) { radius = r; }
    double area() { return Math.PI * radius * radius; }
    double perimeter() { return 2 * Math.PI * radius; }
  }

  public static void main(String[] args) {
    Shape s = new Circle(2.0);
    System.out.println("area=" + s.area());
    System.out.println("perimeter=" + s.perimeter());
  }
}

Collezioni e report

In seguito memorizzeremo le forme in un elenco e stamperemo riepiloghi come tipo, area e perimetro. Un piccolo formattatore mantiene l'output leggibile su mobile: una forma per riga, con valori arrotondati a due cifre decimali.

Codice: elenco di forme

Prototipo 2: combinate Circle e Rectangle in un unico array di Shape e stampate ogni elemento. I metodi della classe base consentono una gestione uniforme (polimorfismo).

public class Main {
  static abstract class Shape {
    abstract double area();
    abstract double perimeter();
    String info() {
      // default helper for neat printing
      return String.format("area=%.2f, per=%.2f", area(), perimeter());
    }
  }
  static class Circle extends Shape {
    double radius;
    Circle(double r) { radius = r; }
    double area() { return Math.PI * radius * radius; }
    double perimeter() { return 2 * Math.PI * radius; }
    public String toString() { return "Circle " + info(); }
  }
  static class Rectangle extends Shape {
    double w, h;
    Rectangle(double w, double h) { this.w = w; this.h = h; }
    double area() { return w * h; }
    double perimeter() { return 2 * (w + h); }
    public String toString() { return "Rectangle " + info(); }
  }

  public static void main(String[] args) {
    Shape[] arr = { new Circle(2.0), new Rectangle(3.0, 4.0) };
    for (int i = 0; i < arr.length; i = i + 1) {
      System.out.println(arr[i]);
    }
  }
}

Verifica del progetto di base

Verifica rapida: quali elementi appartengono alla classe base astratta Shape per questo progetto?

Riepilogo

Riepilogo: la classe base dichiara area e perimeter. Le sottoclassi memorizzano i dati specifici della forma e implementano i calcoli. Gli elenchi di Shape consentono di stampare forme miste con un unico ciclo.

Domande Frequenti

La lezione «Progettazione» è gratuita?

Sì — il testo completo di «Progettazione» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso Java Academy, passa a CoddyKit PRO. Il corso Java Academy include 3 lezioni in totale.

Cosa imparerò in «Progettazione»?

Pianificare la gerarchia: scegliere la base astratta, elencare le forme concrete, selezionare campi e metodi e definire semplici operazioni polimorfiche. Eserciti Java Academy con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.

Ho bisogno di esperienza per iniziare Java Academy?

Non è richiesta alcuna esperienza precedente. Java Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 1 di 3.

Quanto tempo richiede la lezione «Progettazione»?

La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.

Posso scrivere ed eseguire codice in questa lezione Java Academy?

Sì. Ogni lezione Java Academy include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.

Tutte le lezioni di questo corso

  1. Progettazione
  2. Implementazione
  3. Comportamenti polimorfici
← Torna a Java Academy