클래스, 객체, 인스턴스의 개념

 

 

 

 

 

클래스는 객체를 만들어

내기 위한 틀, 혹은 설계도를

뜻한다고 할 수 있고

 

 

 

내부에 있는 객체들은 해당

클래스의 성질이나 모양, 행동 등을

나타내는 클래스의 실체라 할 수 있으며

 

 

 

이러한 객체를 구체화시켜 의미를

부여한 것을 인스턴스(instance)

라고 부른다.

 

 

 

객체는 모든 인스턴스를 대표하는 포괄적

의미를 가지며 인스턴스는 객체에 포함된다고도

볼 수 있고 객체가 메모리에 할당되어 실제

사용될 때 인스턴스라고 부른다.

 

 

 

 

 


 

 

 

 

클래스 선언

 

 

 

 

 

클래스를 선언할 때는

class 키워드를 사용하고

이어 클래스 명을 입력하는데

 

 

 

클래스 명은 반드시 첫 글자가

대문자인 캐멀 케이스 형태로

만들어 주어야 한다.

 

 

 

 

class Singer:

 

 

 

 

이렇게 선언한 클래스 내부에는

해당 클래스의 기능을 나타내는

함수라는 객체를 생성할 수 있는데

 

 

 

가장 먼저 만들게 되는 기본 함수로는

클래스명과 이름이 똑같은 함수

생성자라는 함수가 있고

 

 

 

그 밖에 추가적으로 클래스의 의미를

정의해 줄 다른 여러 이름의 함수를

만들어 줄 수 있다.

 

 

 

생성자라는 함수를 제외한

클래스 내부에 생성된 함수들은

메서드(method)라고 부르며

 

 

 

 

class Singer :

 

def sing ( )

 

 

 

 

이와 같이 생성된 객체들에

의미를 더해줘 호출이 될 때

해당 객체들은 실체가 되고

 

 

 

그렇게 실체화된 객체를

인스턴스(instance)라고

부른다.

 

 

 

 


 

 

 

 

 

생성자(constructer)

 

 

 

 

 

클래스의 이름과 똑같은 이름의

함수를 클래스의 기본 함수인

생성자라고 부르고

 

 

 

자기 자신을 호출하고 있기

때문에 모든 클래스의 생성자는

매개변수로 반드시 self, 즉

자기 자신을 첫 번째

넣어야 한다.

 

 

 

 생성자

언더 스코어 두 개로 시작되는

유닛이라는 함수를 사용해

선언을 한다.

 

 

 

 

class Singer:

def __init__(self):

 

sing = Singer ( )

 

 

 

 

생성자 Singer라는 함수

객체에 sing이라는 이름을

붙여주니 실체, 인스턴스가

되었다.

 

 

 

혹은

 

 

 

class Singer:

def __init__(self):

print ("객체가 실체가 되었습니다.")

 

sing = Singer ( )

 

 

 

 

객체를 호출해 줌으로

실체(instance)가 되었다!

 

 

 

 

 

 

 

 

 


 

 

 

 

 

소멸자

 

 

 

 

 

생성자가 있다면 반대로

소멸자라는것 또한 있다.

 

 

 

이닛과 비슷한 형태로 사용.

def __del__ (self):

 

 

 

C 언어나 C++ 같은 경우에

개발자가 특정 대상을 직접

소멸시켜줘야 하기 때문에

소멸 시점이 굉장히 명확하다고

할 수 있는데

 

 

 

그에 비해 자바나 C#, 파이썬과

같이 가비지 컬렉터라는 내부 구조가

자동적으로 변수를 소멸시키는

프로그래밍 언어에서는 소멸자의

소멸 시점을 명확하게 알기가 힘들다고

한다.

 

 

 

프로그램이 종료되기 전에는

사용한 메모리를 정리하게 되며

전에 선언한 변수들이 모두 정리가

되는데

 

 

 

그럴 때 사용하는 키워드로

많이 사용하지는 않는다고 하나

그냥 알아두자.

 

 

 

 

 

 

 

 

 


 

 

 

 

 

class의 사용 방법과 이유

 

 

 

 

 

클래스를 사용하는 가장 큰 이유는

어떠한 객체의 속성과 행위를 한 번에

관리하고 사용하기 위함이라고 할 수

있다.

 

 

 

그렇다면 객체의 속성과 행위를

관리하는 방법을 알아보자.

 

 

 

 

 

 

 

1. 속성 만들기

 

 

 

 

속성을 만들 때는 항상

속성의 주인인 자기 자신,

self를 가져와 'self.원하는것'

의 형태로 사용을 하면 되고

 

 

 

self.원하는것에 해당되는 키워드들은

매개 변수에 들어있는 것과 동일한

키워드이며 각 값들에 전달할 인자

값들을 생성자에 넣어주는 것까지 가

속성을 만드는 과정이다.

 

 

 

이제 원하는 것을 호출할 때는

생성자를 담은 변수명에

각 매개 변수명을 더해

호출해 주면 된다.

 

 

 

 

 

 

 

 

 

 

 

 

2. 행위(함수) 선언하기

 

 

 

 

위에서 class의 기본 함수를 생성자,

그 외 나머지 함수들을 method라고

부른다고 했었다. 하지만 파이썬에서는

이 두 가지를 구분하지 않고 그냥 다

함수로 부르는 경우가 많다고 한다.

 

 

 

생성자와 마찬가지로 클래스 내에

생성된 모든 함수들은 첫 번째

매개변수로 self를 받고

 

 

 

생성자를 담은

변수명.새함수

형태로 사용을 한다.

 

 

 

 

 

 

 

728x90
반응형

+ Recent posts