[심화 실습] 철저한 보안의 Car 클래스 완성하기
목표: 비공개 속성(__)을 선언하고, Getter와 Setter를 구현하되, 잘못된 데이터(예: 음수 연식)를 걸러내는 조건문까지 직접 작성합니다.
요구사항:
- 캡슐화: name, year, color 세 가지 속성을 외부에서 직접 접근할 수 없도록 비공개로 만드세요.
- Getter: 전체 정보를 한 번에 반환하는 get_info를 만드세요.
- Setter (조건부 수정): * 색상을 변경하는 set_color를 만드세요.
- 연식을 변경하는 set_year를 만드세요. 단, 자동차 연식은 1900년보다 커야만 수정이 가능하도록 if문을 사용하세요. (잘못된 연식 입력 시 "유효하지 않은 연식입니다" 출력)
[심화 미션] 빈칸을 채워 완성도 높은 코드를 작성하세요!
Python
class Car:
def __init__(self, name, year, color):
# [빈칸 1] 세 개의 속성을 모두 비공개로 초기화하세요.
____________________
____________________
____________________
# [빈칸 2] 전체 차량 정보를 문자열로 반환하는 Getter를 만드세요.
def get_info(self):
return ________________________________________________
# [빈칸 3] 색상을 변경하는 Setter를 만드세요.
def set_color(self, new_color):
____________________
print(f"색상이 {new_color}(으)로 변경되었습니다.")
# [빈칸 4] 연식을 변경하는 Setter를 만드세요. (조건문 활용!)
def set_year(self, new_year):
if new_year > 1900:
____________________
print(f"연식이 {new_year}년으로 업데이트되었습니다.")
else:
print("오류: 유효하지 않은 연식입니다!")
# --- 테스트 코드 ---
# 1. 초기 객체 생성
my_car = Car("테슬라", 2023, "레드")
# 2. 정보 출력 (Getter 호출)
print(my_car.________())
# 3. 색상 수정 (Setter 호출)
my_car.________("화이트")
# 4. 잘못된 연식 수정 시도 (Setter의 조건문 작동 확인)
my_car.________(1850)
# 5. 올바른 연식 수정 시도
my_car.________(2025)
# 6. 최종 결과 확인
print("최종 정보:", my_car.________())
출력 예시 (정답일 경우)
Plaintext
이름: 테슬라, 연식: 2023, 색상: 레드
색상이 화이트(으)로 변경되었습니다.
오류: 유효하지 않은 연식입니다!
연식이 2025년으로 업데이트되었습니다.
최종 정보: 이름: 테슬라, 연식: 2025, 색상: 화이트
'Python' 카테고리의 다른 글
| 실습 과제: 수강생 관리 엑셀 만들기 (0) | 2026.01.05 |
|---|---|
| 추상화 동물들의 공통 기능: "소리 내기" (0) | 2025.12.29 |
| [실습 문제] 나만의 학생 관리 시스템 만들기(상속) (0) | 2025.12.29 |
| 파이썬 다형성 우리 집 작은 음악회 (0) | 2025.12.29 |
| 주소록 만들기 (0) | 2025.12.24 |