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
- Progettazione
- Implementazione
- Comportamenti polimorfici