객체지향 프로그래밍(OOP) 이란 프로그램을 여러 객체로 만들고 객체 간의 상호작용을 통해 로직을 구현하는 방법이다.
객체지향 프로그래밍을 사용하면 사용자는 각자의 메소드와 속성을사용하여 자신만의 객체를 만들 수 있다
객체란 속성과 행동으로이루어진 것 변수와 함수로 나타낸다
객체지향 프로그래밍이 가지는 장점으로는
상속을 통해서 코드 재사용이 용이
일일이 찾을 필요 없이 클래스 내부의 메서드나 변수를 수정하면 되기에 유지보수에 있어 수월함
클래스로 모듈화를 시켜 개발할수 있어서 대형 프로젝트에 유리함
단점으로는
설계시 시간이 많이 들고 객체가 많아질 경우 용량이 커진다고 한다
객체 지향 프로그래밍 특징
1) 클래스 + 인스턴스(객체)
Class 는 객체를 만들기위한 청사진
인스턴스는 클래스에서 정의 한것을 토대로 메모리에 할당 된것입니다
2) 추상화
데이터나 프로세스를 의미, 수행과정이 비슷한 개념으로 묶어 정의(선언)하는 것을 추상화라고 합니다.
3) 캡슐화
캡슐화를 통해 public으로 제공되는 정보를 underscore(_), doubleunderscore(__) 를 사용하여
캡슐 안 정보들을 밖에서 접근이 불가능하게 은닉할 수 있습니다
4) 상속
부모 클래스의 속성과 기능을 그대로 이어받아 사용할수 있으며 일부 기능을 수정해야할 경우
자식클래스에서 해당 기능만 수정을 가능하게 할 수 있습니다
5) 다형성
하나의 변수명, 함수명 등이 상황에 따라 다른 의미로 해석될 수 있는 것이다.
오버라이딩(Overriding), 오버로딩(Overloading)이 가능하다는 얘기다.
오버라이딩 : 부모클래스의 메서드와 같은 이름, 매개변수를 재정의 하는것.
오버로딩 : 같은 이름의 함수를 여러개 정의하고, 매개변수의 타입과 개수를 다르게 하여 매개변수에 따라 다르게 호출할 수 있게 하는 것.
파이썬에서는 오버로딩을 지원하지 않지만 *args 와 같은 방법으로 구현 할 수는 있다고한다
'Python' 카테고리의 다른 글
Class 예제(2) - 두 점 사이의 거리, 기울기 (0) | 2022.05.17 |
---|---|
Class 예제 (1) - 은행 계정 클래스 (0) | 2022.05.17 |
Python - iterator , generator (0) | 2022.05.16 |
Python-Decorator(데코레이터) (0) | 2022.05.16 |
[21.05.03] *args 와 **kwargs (0) | 2022.05.03 |