🏗️

클래스와 객체 개념

객체 지향 프로그래밍으로 MechDog을 더 체계적으로 설계하기

🎯 학습 목표

  • • 클래스와 객체의 개념 이해하기
  • • MechDog 클래스 설계 방법 배우기
  • • 생성자와 메서드 활용하기
  • • 특수 메서드로 클래스 기능 확장하기

📖 클래스와 객체 배우기

🤔 클래스란 무엇일까요?

클래스는 객체를 만들기 위한 설계도입니다. 마치 로봇 제작을 위한 도면처럼, MechDog의 특성과 행동을 체계적으로 정의할 수 있습니다.

🏠 실생활 비유
  • • 설계도: 집을 짓기 위한 도면
  • • 붕어빵 틀: 붕어빵을 만드는 틀
  • • 쿠키 커터: 쿠키 모양을 만드는 틀
  • • 로봇 설계서: MechDog를 만들기 위한 명세서

🤖 객체란 무엇일까요?

객체는 클래스를 바탕으로 실제로 만들어진 실체입니다. 하나의 MechDog 클래스로 여러 개의 MechDog 객체를 만들 수 있습니다.

📝 클래스 vs 객체
  • • 클래스: MechDog 설계도 (1개)
  • • 객체: 실제 MechDog들 (여러 개)
  • • 속성: 이름, 배터리, 위치
  • • 메서드: 움직이기, 짖기, 앉기
🐕 MechDog 예시
class MechDog:           # 클래스 (설계도)
    def __init__(self, name):
        self.name = name     # 속성

buddy = MechDog("Buddy")     # 객체 (실체)
max = MechDog("Max")         # 또 다른 객체

🏗️ 나만의 MechDog 클래스 만들기

✨ 마우스 클릭만으로 MechDog 클래스를 만들고 바로 테스트해보세요!

1️⃣ MechDog 정보

🔵

2️⃣ 속성 설정

🔋 100%
⚡ 5

3️⃣ 기능 선택

🐕 실시간 MechDog 시뮬레이터

🐕

Buddy

Basic Model
🔋
100%
📍 위치: (0, 0)
💭 상태: 대기

📋 액션 로그

> MechDog 시뮬레이터 시작됨...
> 클래스를 생성하고 테스트해보세요!

💻 고급 클래스 실습

✨ 직접 코드를 수정하고 실시간으로 결과를 확인해보세요!

실행 버튼을 눌러 클래스 코드를 실행해보세요! 💡 코드 에디터에서 다음 기능들을 확인해보세요: • class 키워드가 파란색으로 표시됩니다 • 메서드와 함수가 자동으로 색칠됩니다 • 문자열과 주석이 초록색으로 표시됩니다 • 라인 번호가 표시됩니다

🤖 실제 MechDog 클래스 예제들

📝 MechDog 클래스 구조

실제 MechDog는 이런 구조로 설계됩니다:

class MechDog:
    """MechDog 클래스 - 로봇강아지의 설계도"""
    
    def __init__(self, name):
        """생성자 - MechDog 초기화"""
        self.name = name         # 속성: 이름
        self.battery = 100       # 속성: 배터리
        self.status = "대기"     # 속성: 상태
        print(f"🤖 {self.name} MechDog 생성됨!")
    
    def bark(self):
        """메서드: 짖기 기능"""
        if self.battery > 5:
            print(f"{self.name}: 멍멍! 🐕")
            self.battery -= 5
        else:
            print(f"{self.name}: 배터리 부족... 😴")
    
    def move(self, direction):
        """메서드: 이동 기능"""
        if self.battery > 10:
            print(f"{self.name}이 {direction}으로 이동합니다! 🚶")
            self.battery -= 10
        else:
            print(f"{self.name}: 배터리 부족으로 이동 불가 ❌")

# 객체 생성과 사용
buddy = MechDog("Buddy")    # 첫 번째 MechDog 객체
max_dog = MechDog("Max")    # 두 번째 MechDog 객체

🔧 속성과 메서드 심화

🎯 MechDog의 속성과 메서드

클래스의 속성(변수)과 메서드(함수)를 통해 MechDog의 상태와 행동을 정의합니다.

📊 MechDog 속성들
  • • self.name: MechDog의 이름
  • • self.battery: 배터리 잔량 (0-100)
  • • self.status: 현재 상태 (대기/이동/짖기)
  • • self.position: 현재 위치 좌표
🎭 MechDog 메서드들
  • • __init__(): 초기화/생성자
  • • bark(): 짖기 동작
  • • move(): 이동 동작
  • • sit(): 앉기 동작

🎯 도전 과제

배운 클래스 개념을 활용해서 나만의 MechDog를 설계해보세요:

  1. 1. 🤖 기본 MechDog 클래스: 이름, 배터리, 기본 동작들
  2. 2. 🚀 고급 MechDog 클래스: 센서, 위치, 특수 동작들
  3. 3. ⚙️ 특수 메서드: __str__, __eq__ 등으로 기능 확장
  4. 4. 🎮 MechDog 게임: 여러 MechDog가 상호작용하는 시스템

💡 힌트: 위의 예제 버튼들을 활용해서 단계별로 도전해보세요!

📝 정리

✅ 핵심 내용

  • • 클래스(Class): 객체를 만들기 위한 설계도
  • • 객체(Object): 클래스를 바탕으로 만든 실체
  • • 속성(Attribute): 객체의 특성 (변수)
  • • 메서드(Method): 객체의 행동 (함수)
  • • 생성자(__init__): 객체 초기화 메서드
  • • 특수 메서드: __str__, __eq__ 등으로 기능 확장
← 이전 다음 →