객체 지향 프로그래밍이란 말 그대로 객체를 우선으로 생각해서 프로그래밍 한다는 의미입니다. python을 포함해 대부분의 프로그래밍 언어는 객체 지향 프로그래밍 언어 입니다. 그중에서도 클래스를 기반으로 하고 있습니다.
이게 무슨말이냐고요..? 저도 너무 어려워서 차근차근 정리해보려고 합니다^^
우선 클래스, 객체 그리고 인스턴스에 대해 알아봅시다.
클래스(class) 란 틀이라고 생각하면 쉽습니다. 객체를 만들고 정의하기 위한 변수와 메소드의 집합이죠.(메소드는 다음에 정리하겠습니다..)
객체(object)란 속성을 가질 수 있는 모든 대상을 말합니다. 프로그램에서 저장되는 모든 데이터라고 할 수 있죠. 클래스를 사용하여 사용자 정의 객체를 만들 수도 있습니다.
와플을 예시로 들어보겠습니다!
와플을 만들기 위해선 틀이 필요하겠죠? 그 틀을 클래스라고 생각하면 됩니다. 그리고 그 틀로 만들어 낸 와플을 객체라고 생각하면 되겠습니다.
객체는 서로 영향을 끼치지 않습니다. 마치 우리가 와플을 여러 개 만들고 하나를 먹어버린다고 해도 다른 와플에는 영향을 끼치지 않는 것 처럼 말이죠.
그럼 인스턴스란 뭘까요?
인스턴스(instance)란 예시라고 생각하면 되는데, 클래스를 기반으로 만들어진 객체를 인스턴스라고 부릅니다.
python에서 클래스를 선언하는 방법은 다음과 같습니다.
class 클래스이름:
클래스내용
# 클래스 이름은 각 단어의 첫 글자를 대문자로 합니다.
# 이렇게 지어야 이를 보고 클래스라고 구분하기 쉽습니다.
다음은 객체를 인스턴스화 하는 방법 입니다.
객체 = 클래스이름()
# 객체가 어떤 클래스를 기반으로 만들어졌는지 보여줍니다.
간단한 예시를 들어보겠습니다.
class Dog():
pass
poodle = Dog()
poddle은 객체(object) 입니다.
동시에 poddle 객체(object)는 Dog 클래스(class)의 인스턴스(instance) 입니다.
즉 인스턴스는 클래스와 객체의 관계를 설명할 때 사용된다고 생각하면 되겠습니다.
인스턴스(instance)라는 표현은 주로 특정 객체가 어떤 클래스의 객체인지 관계를 중점으로 표현할 때 사용합니다.
아까 와플을 예시로 들어보면 와플 틀로 만든 초코 와플을 인스턴스라고 할 수 있겠죠?
클래스 기반의 객체 지향 프로그래밍 언어는 클래스(class)를 기반으로 객체(object)를 만들고 객체를 우선으로 생각해서 프로그래밍 하는 것을 말합니다. 인스턴스(instance)는 어떤 클래스로부터 생성된 객체이며 주로 클래스와 객체의 관계를 설명할 때 사용됩니다.
글로벌소프트웨어캠퍼스와 교보DTS가 함께 진행하는 챌린지입니다.
#내맘대로TIL챌린지 #교보DTS #클라우드교육 #글로벌소프트웨어캠퍼스 #GSC신촌
퍼가요 퍼가요~~