0Pricing
Java Academy · 강의

설계

계층 구조를 계획합니다. 추상 기반 클래스를 선택하고, 구체적인 도형을 나열하며, 필드와 메서드를 정하고 간단한 다형성 연산을 정의합니다.

설계은(는) CoddyKit의 무료 Java Academy 강의입니다. 이것은 3개 중 1번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 Java Academy 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. Java Academy 강의에는 총 3개의 강의가 포함되어 있습니다.

목표와 범위

목표: 추상 기반 클래스인 Shape와 두 개의 구체 도형인 Circle, Rectangle로 작은 도형 계층을 만듭니다. 먼저 공통 연산을 설계한 다음 작은 코드 프로토타입으로 계획을 확인합니다.

도형과 필드

도형: Circle(반지름), Rectangle(너비, 높이). 필드는 해당 도형에 필요한 곳에만 두세요. 반지름은 Circle에, 너비와 높이는 Rectangle에 둡니다. 기반 클래스에는 모든 필드가 아니라 동작 계약을 둡니다.

연산과 다형성

공통 연산은 area()와 perimeter()입니다. 어떤 Shape든 이 호출에 응답할 수 있도록 Shape에 선언합니다. 그러면 Shape 목록 하나에 Circle과 Rectangle 객체를 섞어 담고 동일한 방식으로 처리할 수 있습니다.

코드: 공통 인터페이스 설계

첫 번째 프로토타입: area와 perimeter를 포함하는 Shape와 간단한 Circle을 정의합니다. 이를 통해 하나의 구체 유형에서 공통 인터페이스가 작동하는지 확인합니다.

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());
  }
}

컬렉션과 보고서

나중에 도형을 목록에 저장하고 유형, 면적, 둘레와 같은 요약을 출력합니다. 간단한 서식 지정 도구를 사용하면 모바일에서 출력 내용을 읽기 쉽습니다. 도형 하나를 한 줄에 표시하고 소수점 이하 두 자리로 반올림합니다.

코드: 도형 목록

두 번째 프로토타입: 하나의 Shape 배열에 Circle과 Rectangle을 섞어 담고 각각 출력합니다. 기반 메서드 덕분에 모든 도형을 동일하게 처리할 수 있습니다(다형성).

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]);
    }
  }
}

기반 설계 확인

빠른 확인: 이 프로젝트에서 추상 Shape 기반 클래스에 포함해야 하는 항목은 무엇인가요?

복습

복습: 기반 클래스는 area와 perimeter를 선언합니다. 하위 클래스는 도형별 데이터를 저장하고 계산을 구현합니다. Shape 목록을 사용하면 하나의 반복문으로 여러 도형을 섞어 출력할 수 있습니다.

자주 묻는 질문

“설계” 강의는 무료인가요?

네 — “설계” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 Java Academy 강의 전체를 잠금 해제할 수 있습니다. Java Academy 강의에는 총 3개의 강의가 포함되어 있습니다.

“설계”에서 뭘 배우나요?

계층 구조를 계획합니다. 추상 기반 클래스를 선택하고, 구체적인 도형을 나열하며, 필드와 메서드를 정하고 간단한 다형성 연산을 정의합니다. 브라우저에서 직접 실행하는 실습 코드로 Java Academy을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.

Java Academy을(를) 시작하는 데 경험이 필요한가요?

사전 경험은 필요하지 않습니다. CoddyKit의 Java Academy은(는) 초급자부터 고급 학습자까지를 위해 구성되어 있으므로, 여기서 시작하거나 처음부터 시작할 수 있으며 자신의 속도대로 진행할 수 있습니다. 이것은 3개 중 1번째 강의입니다.

“설계” 강의는 얼마나 걸리나요?

대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.

이 Java Academy 강의에서 코드를 작성하고 실행할 수 있나요?

네. 모든 Java Academy 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.

이 강의의 모든 강의

  1. 설계
  2. 구현
  3. 다형성 동작
← Java Academy(으)로 돌아가기