Class 와 객체
처음 프로그래밍을 했을 때, 무언가 컴퓨터 세상에만 존재하는 개념인 것 같아 헷갈려서 쉽게 이해되지 않았던 것이 바로 클래스와 객체의 개념이다.. 이 글을 보는 분들은 그러지 않기를 바라며 현실적으로 비유해서 말해보자면, 내가 "차량" 이라는 Class 를 미리 정의했다면, 해당 Class를 활용하여 실제 존재하는 우리 아버지의 차를 객체로 정의할 수 있다. Class 정의를 통해서 추상화가 가능한데, Class를 활용한 추상화란 해당 Class에 해당할 수 있는 모든 실체가 있는 존재가 가진 특성 (= 속성, attribute) 과 기능 (method) 을 정의하는 것이다. 이를 통해, 해당 Class에 속하고, 실체가 있는 존재에 대하여, "객체"를 효율적으로 정의할 수 있다.
Class 설계를 통한 객체 생성 예시 (python)
- 아래 코드에서는
_company
와 _details
이라는 특성을 가지고, 있는 Car
라는 Class 를 정의하고, 실제 존재하는 차량 3대를 해당 Class를 활용하여 객체로 정의한 코드이다.
class Car():
"""
Car Class
Author : Kim
Date : 2019.11.08
"""
# 클래스 변수
car_count = 0
def __init__(self, company, details):
self._company = company
self._details = details
Car.car_count += 1
def detail_info(self):
print('Current Id : {}'.format(id(self)))
print('Car Detail Info : {} {}'.format(self._company, self._details.get('price')))
car1 = Car('Ferrari', {'color' : 'White', 'horsepower': 400, 'price': 8000})
car2 = Car('Bmw', {'color' : 'Black', 'horsepower': 270, 'price': 5000})
car3 = Car('Audi', {'color' : 'Silver', 'horsepower': 300, 'price': 6000})
객체 정의 시 메모리 작동 방식
<Reference>
우리를 위한 프로그래밍 : 파이썬 중급 (인프런)
댓글 영역