자바 자동차 상속 챌린지

JavaBeginner
지금 연습하기

소개

프로그래밍 세계에서 가장 혁신적인 가상 자동차 제조업체인 JavaMotors 에 오신 것을 환영합니다! 새로 채용된 신입 개발자로서 여러분의 첫 번째 임무는 회사의 차량 관리 시스템을 위한 핵심 기능을 구현하는 것입니다.

수석 개발자가 이미 차량 클래스의 기본 구조를 설정해 두었지만, 상속 계층 구조를 완성하기 위해 여러분의 도움이 필요합니다. 여러분의 임무는 Vehicle 클래스를 상속받고 자동차 전용 메서드를 추가한 Car 클래스를 완성하는 것입니다.

이 챌린지에 도전하여 JavaMotors 가 차량 관리 시스템을 혁신하도록 도울 준비가 되셨나요? 이제 코딩을 시작해 봅시다!

Car 클래스 구현 완성하기

이번 연습을 통해 자바의 객체 지향 프로그래밍과 상속의 세계를 탐험하게 됩니다. Vehicle 클래스를 확장하여 Car 클래스를 생성함으로써 OOP 의 근간이 되는 핵심 개념을 직접 경험해 볼 수 있습니다. 이 챌린지는 일반적인 클래스를 바탕으로 특화된 클래스를 만드는 방법을 이해하는 데 도움을 주며, 이는 유지보수가 용이한 대규모 소프트웨어 시스템을 설계할 때 필수적인 기술입니다. 자, 엔진을 예열하고 가상 차량의 세계로 들어가 봅시다!

과제

  • ~/project 디렉토리에 미리 생성된 Car.java 파일을 엽니다.
  • 코드 내의 TODO 주석을 찾습니다.
  • Car 클래스 안에 honk 메서드를 구현합니다.

요구 사항

  • Car.java 파일은 ~/project 디렉토리에 이미 존재해야 합니다.
  • Car 클래스는 Vehicle 클래스를 상속 (extend) 해야 합니다.
  • honk 메서드를 완성하세요:
    • "[car name] goes beep beep!"이라는 메시지를 출력해야 하며, 여기서 [car name]은 해당 자동차의 이름입니다.
  • 코드의 다른 부분은 수정하지 마십시오.

예시

정상적으로 완료된 후 VehicleDemo.javamain 메서드를 실행하면 다음과 같은 결과가 출력되어야 합니다:

cd ~/project
javac VehicleDemo.java
java VehicleDemo

출력 예시:

Vehicle details:
Name: Generic Vehicle
Speed: 0

Car details:
Name: My Car
Speed: 0
My Car goes beep beep!

요약

이 챌린지에서 여러분은 자바의 상속을 사용하여 차량 관리 시스템의 핵심 기능을 구현했습니다. 이 연습을 통해 자바 상속 및 다형성 학습에서 다룬 주요 개념들을 다시 한번 확인했습니다:

  1. 상속: Vehicle 클래스를 확장하는 Car 클래스를 다루며, 상속을 통해 일반적인 클래스를 기반으로 특화된 클래스를 만드는 방법을 확인했습니다.
  2. 메서드 구현: Car 클래스에 특정 메서드 (honk) 를 추가하여, 하위 클래스가 상위 클래스로부터 상속받은 기능 외에 추가적인 기능을 가질 수 있음을 배웠습니다.
  3. 상속된 메서드 사용: honk 메서드 내에서 Vehicle 클래스로부터 상속받았을 getName() 메서드를 호출함으로써, 하위 클래스가 상위 클래스의 메서드를 활용하는 방법을 실습했습니다.

이 챌린지를 완료함으로써 여러분은 기본적인 자바 기술을 연습했을 뿐만 아니라, 실제 객체 지향 시스템에서 흔히 볼 수 있는 실용적인 기능을 만들어 보았습니다. 차량 계층 구조는 상속을 가르칠 때 사용되는 전형적인 예시이며, 여러분은 방금 그 시스템의 일부를 성공적으로 구현했습니다!

상속은 코드의 재사용성을 높이고 논리적인 구조를 만드는 데 매우 강력한 도구입니다. JavaMotors 에서의 여정을 이어가며 다음과 같은 방식으로 시스템을 더욱 발전시켜 볼 수 있습니다:

  • 더 다양한 차량 유형 추가 (예: Motorcycle 또는 Truck)
  • 각 차량 유형에 맞는 더 구체적인 메서드 구현
  • Vehicle 클래스의 메서드를 오버라이딩하여 각 하위 클래스에 맞는 고유한 동작 정의

계속해서 코드를 연습하고 실험해 보세요. 상속과 다른 객체 지향 원칙들을 더 많이 다룰수록 자바 프로그램의 구조를 설계하는 것이 훨씬 익숙해질 것입니다. JavaMotors 의 가상 차량 제조 세계에 합류하신 것을 환영합니다!

✨ 솔루션 확인 및 연습