Diseño
Planifique la jerarquía: elija la base abstracta, enumere las formas concretas, seleccione campos y métodos y defina operaciones polimórficas sencillas.
Diseño es una lección gratuita de Java Academy en CoddyKit. Esta es la lección 1 de 3. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de Java Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Java Academy incluye 3 lecciones en total.
Objetivo y alcance
Objetivo: Construir una pequeña jerarquía de formas con una base abstracta (Shape) y un par de formas concretas (Circle, Rectangle). Primero diseñaremos las operaciones comunes y después confirmaremos el plan con pequeños prototipos de código.
Formas y campos
Formas: Circle (radius), Rectangle (width, height). Mantenga los campos solo donde corresponda: radius en Circle y width/height en Rectangle. La clase base contiene contratos de comportamiento, no todos los campos.
Operaciones y polimorfismo
Operaciones comunes: area() y perimeter(). Las declaramos en Shape para que cualquier Shape pueda responder a estas llamadas. Después, una lista de Shape puede contener objetos combinados de Circle y Rectangle y procesarlos de manera uniforme.
Código: esquema de la API
Prototipo 1: Defina Shape con area y perimeter, y un Circle sencillo. Esto comprueba que la API compartida funciona para 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());
}
}
Colecciones e informes
Más adelante almacenaremos las formas en una lista e imprimiremos resúmenes como el tipo, el área y el perímetro. Un pequeño formateador mantiene la salida legible en dispositivos móviles: una forma por línea, redondeada a dos decimales.
Código: lista de formas
Prototipo 2: Combine Circle y Rectangle en un mismo array de Shape e imprima cada elemento. Los métodos de la clase base permiten un tratamiento 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]);
}
}
}
Comprobación del diseño base
Comprobación rápida: ¿Qué elementos deben pertenecer a la clase base abstracta Shape en este proyecto?
Repaso
Repaso: La clase base declara area y perimeter. Las subclases almacenan los datos específicos de cada forma e implementan los cálculos. Las listas de Shape permiten imprimir formas combinadas con un solo bucle.
Preguntas frecuentes
¿La lección «Diseño» es gratis?
Sí — el texto completo de «Diseño» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de Java Academy, actualiza a CoddyKit PRO. El curso de Java Academy incluye 3 lecciones en total.
¿Qué aprenderé en «Diseño»?
Planifique la jerarquía: elija la base abstracta, enumere las formas concretas, seleccione campos y métodos y defina operaciones polimórficas sencillas. Practicas Java Academy con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.
¿Necesito experiencia previa para empezar Java Academy?
No se requiere experiencia previa. Java Academy en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 1 de 3.
¿Cuánto tiempo toma la lección «Diseño»?
La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.
¿Puedo escribir y ejecutar código en esta lección de Java Academy?
Sí. Cada lección de Java Academy incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.