나의 공부 일기

Python) 객체지향프로그래밍 OOP(Class)란? 본문

파이썬/파이썬 정리

Python) 객체지향프로그래밍 OOP(Class)란?

곽병권 2023. 10. 18. 10:20
728x90

OOP는 Object Oriented Programing 의 약자로 객체지향 프로그래밍 이라고 불립니다.

 

객체지향 프로그래밍이란 현실세계를 모델링 하기 위한 기법이고 Class를 사용합니다.

Class는 객체지향의 핵심이며 객체를 정의해 놓은 설계도 라고 볼 수있습니다.

 

모델링이란?

실체를 그대로 모형으로 만든다는 개념입니다. 

 

예시로는 모델링하우스가 있습니다.

실제로 건축되지는 않았지만 건축 구조를 그대로 만들어 놓은 모형이 바로 모델링하우스이고

여기서 건축설계도는 Class로 볼 수 있고, 완공 후 는 바로 객체입니다.

 

OOP라고 하면 추상화, 캡슐화,상속성,다형성

 

추상화

추상화는 객체로 정의할 대상에 대한 파악하는것이고,

상속 시 공통 특성을 하나로 묶어 상위 타입을 정의 하는것입니다.

 

쉽게 말하면 큰 틀을 잡는다고 보면됩니다.

건물을 지을때 설계도를 작성하는데 설계도에서 정확한 길이 내부는 어떻게 만들것인가를 설계하기 전에

모양만 잡아놓는다 라고 생각하시면 편합니다.

 

 

캡슐화

관련 있는 속성과 행위를 하나로 묶어 정의(클래스) 합니다.

공개할 것과 은닉할 것을 분류합니다(private, publice, setter,getter등)

 

클래스는 함수들로 이루어져있는데, 이때 클래스에 맞는 함수들로 채워넣는것.

이게 바로 캡슐화 입니다.

 

 

상속성

기존 클래스를 확장하여 추가 특성을 정의하는겁니다.

 

기존에 클래스가 정의되어 있을때 그 클래스에서 필요한부분이 있으면 클래스 옆에 상속 받을 클래스를 입력하여 사용합니다.

super() 나 상속받을 클래스 안에 상속 클래스를 입력하여 사용합니다.

 

다형성

하나의 타입으로 다양한 타입을 다룰 수  있는 특성입니다.

추상화와 상속의 개념을 활요하는것이 바로 다형성 입니다.

 

이를 사용하여 코드의 길이를 비약적으로 줄여주고 효율성 있는 코드를 짤 수 있게 해줍니다.

 

 

 


다음에는 클래스(Class)가 무엇인지 더 자세하게 정리해보겠습니다.

 

728x90

'파이썬 > 파이썬 정리' 카테고리의 다른 글

Python) 함수 / 메서드  (0) 2023.10.19
Python) Class(클래스)  (1) 2023.10.18
Python) FILE I/O(파일 입출력)  (0) 2023.10.17
Python) 정렬 알고리즘  (0) 2023.10.16
Python) random(난수) 랜덤한값을 가져온다  (0) 2023.10.16