객체지향 프로그래밍이란?
세계는 사람, 텔레비전, 세탁기, 냉장고 등의 객체로 구성되어 있는데, 이와 비슷하게 소프트웨어도 객체로 구성한다는 의미이다.
객체들은 객체 나름대로의 속성과 기능을 가지면서 다른 객체들과 상호 작용한다!
Java, Python, C++ 등이 객체지향 프로그래밍을 지원한다.
객체지향 프로그래밍의 핵심 단어 : 클래스 Class
클래스의 구성 인자 : 1. 멤버 변수 ( 필드 ) 2. 멤버 함수 ( 메서드 ), 생성자
이때, 생성자는 말 그대로 클래스를 생성시켜주므로, 반드시 있어야 한다!
클래스는 '현실 세계의 사물을 컴퓨터 안에서 구현하려고 만들어진 개념' 인데, 설계도, 붕어빵 틀 이라고 비유할 수 있다.
이러한 클래스를 통해 우리는 객체 ( 인스턴스 )를 여러개 만들 수 있으며, 재사용, 유지 보수가 편리해 진다.
이때 인스턴스란 ( instance ) 클래스로 생성한 것이다. 인스턴스는 각각 독립적인 메모리 공간을 가지며, 서로 영향을 주지 않는다.
인스턴스의 독립적인 메모리를 만들어주는 단어 : self
self 는 메서드 생성 시 종종 적는 단어인데, 이는 매개변수가 아니다!
self 를 사용하는 이유는 인스턴스 변수 및 인스턴스 메서드에 접근하기 위해서이다. 따라서, 메서드 안에서 멤버 변수에 접근할 일이 없다면 생략 가능하다!
이렇게 기재된 self 는 생성자를 통해서 instance가 만들어질 때 같이 만들어지고, 이를 통해 생성된 인스턴스는 독립적인 메모리를 갖게 된다.
정리하자면, self 는 자기 자신의 주소를 갖고 있는 단어라고 생각하면 되겠다.
그리고, 자기 자신의 주소 밑에 필드, 메서드의 메모리 공간이 있다!
출처 : 따즈아 Python 기초부터 실무까지 제대로 배우기 Part.13 객체지향 프로그래밍-1
'Python > 객체지향 프로그래밍' 카테고리의 다른 글
(Python) 객체지향 프로그래밍 - 인스턴스 변수와 클래스 변수 (1) | 2024.01.15 |
---|---|
(Python) 객체지향 프로그래밍 - self (0) | 2024.01.10 |
(Python) 객체지향 프로그래밍 - 매개변수가 있는 생성자 (0) | 2024.01.10 |
(Python) 객체지향 프로그래밍 - 은닉화, 캡슐화 (0) | 2024.01.06 |
(Python) 객체지향 프로그래밍 - 생성자 (0) | 2024.01.06 |