본문 바로가기

Python/객체지향 프로그래밍

(Python) 객체지향 프로그래밍 - 클래스

728x90

 

객체지향 프로그래밍이란?

 

세계는 사람, 텔레비전, 세탁기, 냉장고 등의 객체로 구성되어 있는데, 이와 비슷하게 소프트웨어도 객체로 구성한다는 의미이다. 

객체들은 객체 나름대로의 속성과 기능을 가지면서 다른 객체들과 상호 작용한다!

 

Java, Python, C++ 등이 객체지향 프로그래밍을 지원한다.

 

 

 

객체지향 프로그래밍의 핵심 단어 : 클래스 Class

 

 

클래스의 구성 인자 : 1. 멤버 변수 ( 필드 )  2. 멤버 함수 ( 메서드 ), 생성자

 

이때, 생성자는 말 그대로 클래스를 생성시켜주므로, 반드시 있어야 한다!

 

클래스는 '현실 세계의 사물을 컴퓨터 안에서 구현하려고 만들어진 개념' 인데, 설계도, 붕어빵 틀 이라고 비유할 수 있다.

 

이러한 클래스를 통해 우리는 객체 ( 인스턴스 )를 여러개 만들 수 있으며, 재사용, 유지 보수가 편리해 진다.

 

이때 인스턴스란 ( instance ) 클래스로 생성한 것이다. 인스턴스는 각각 독립적인 메모리 공간을 가지며, 서로 영향을 주지 않는다. 

 

 

 

인스턴스의 독립적인 메모리를 만들어주는 단어 : self

 

 

self 는 메서드 생성 시 종종 적는 단어인데, 이는 매개변수가 아니다! 

 

self 를 사용하는 이유는 인스턴스 변수 및 인스턴스 메서드에 접근하기 위해서이다. 따라서, 메서드 안에서 멤버 변수에 접근할 일이 없다면 생략 가능하다!

 

이렇게 기재된 self 는 생성자를 통해서 instance가 만들어질  때 같이 만들어지고, 이를 통해 생성된 인스턴스는 독립적인 메모리를 갖게 된다.

 

정리하자면, self 는 자기 자신의 주소를 갖고 있는 단어라고 생각하면 되겠다. 

그리고, 자기 자신의 주소 밑에 필드, 메서드의 메모리 공간이 있다!

 

 

 

출처 : 따즈아 Python 기초부터 실무까지 제대로 배우기 Part.13 객체지향 프로그래밍-1