클래스 설계
1. is a
- A is a B로 상속을 이용해서 클래스를 설계(상속)
2. has a
- A has a B로 객체를 객체에 넣어서 클래스를 설계(합성)
간단하게 is a를 사용해서 클래스를 만들어 보자!
이름과 이메일을 출력해주는 클래스이다.
class Info:
def __init__(self, name, email):
self.name = name
self.email = email
class Person(Info):
def show(self):
print(self.name, self.email)
아래와 같이 객체를 생성해주고 이름과 이메일을 보면...
person = Person('peter', 'peter@gmail.com')
person.name, person.email
이렇게 나온다.
이것이 is a(상속)을 이용한 클래스 설계이다.
이번에는 has a를 사용해서 같은 클래스를 만들어 보자.
class Name:
def __init__(self, name):
self.name_str = name
class Email:
def __init__(self, email):
self.email_str = email
class Person:
def __init__(self, name_obj, email_obj):
self.name = name_obj
self.email = email_obj
def show(self):
print(self.name.name_str, self.email.email_str)
이렇게 has a(합성)을 사용한 클래스 설계를 하고
name_obj = Name('peter')
email_obj = Email('peter@gmail.com')
아래와 같이 name_obj, email_obj객체를 생성해 준 뒤
name_obj = Name('peter')
email_obj = Email('peter@gmail.com')
한번 더 person객체를 생성하는데... name_obj, email_obj객체를 넣어서(합성) 생성하고...
show메서드를 통해 결과를 확인해보면
person = Person(name_obj, email_obj)
person.show()
이렇게 결과가 나온다.
이것이 has a(합성)을 사용한 클래스 설계이다.
이번 시간에는 짧게 is a, has a 개념에 대해 알아봤는데여...
완벽하게 이해하지는 못한것 같네여...
주말에 복습해봐야겠네요...
그럼 안녕!
![](https://t1.daumcdn.net/keditor/emoticon/friends1/large/008.gif)
'멋쟁이사자처럼 AI스쿨' 카테고리의 다른 글
모듈과 패키지(파이썬 강의 Day5) (0) | 2023.01.08 |
---|---|
입력과 출력(파이썬 강의 Day5) (0) | 2023.01.06 |
메서드의 종류, 메서드 맹글링(파이썬 강의 Day5) (0) | 2023.01.06 |
getter, setter, mangling(파이썬 강의 Day5) (2) | 2023.01.06 |
클래스로 마린과 메딕 구현하기(파이썬 강의 Day4 Quiz) (0) | 2023.01.06 |
댓글