Python OOP(Object Oriented Programming)

day4

목차

  1. OOP 개념
  2. 특징
    • 상속(Inheritance)
    • 다형성(Polymorphism)
    • 가시성(Visibility)

OOP 개념

  • 우리가 사는 세상을 프로그램적으로 표현하기 위해 고안해낸 개념.
  • 객체 : 어떤 사물 혹은 동물을 지칭한다고 보면 되는데 프로그램은 이를 속성행동으로 구분해서 바라본다.
  • 속성은 변수(Variable)로, 행동은 함수(Method)로 표현된다.

OOP를 실현하기 위해서는 몇가지 도구가 필요하다. 바로 클래스(Class)와 인스턴스(Instance)이다. 이 두가지는 무엇인가?

흔히 붕어빵틀(class)와 붕어빵(instance)로 비유를 하는데, 나는 샴푸공장(class)에서 생산되는 샴푸(instance)가 더 이해가 쉬웠다. 마트에 가보면 샴푸는 여러가지가 있다. 하지만 각 회사마다 특별한 레시피를 갖는 비법이 각양 각색일 것이다. 그러한 레시피를 기반으로 샴푸를 대량 만들어 낸다. 하나의 레시피로 대량생산을 할 수 있다.

여기서 더 나아가서 생산된 샴푸가 마트에 진열되어 있으면 내가 그 중 하나를 사서 쓰더라도 마트에 진열된 샴푸가 함께 줄어들진 않는다. 이는 OOP의 특징인 캡슐화와 정보은닉과 연관지어 생각해 볼 수 잇을꺼 같다.생산된 인스턴스는 서로 영향을 주지 않는다는 것이다. 인스턴스(샴푸)에는 비밀 레시피는 숨겨둔채 서로 독립적으로 생산되지만, 사용자는 용도에 맞에 적절하게 사용할 수 있다.


특징

  • 상속(Inheritance)
    • 부모클래스로 부터 속성과 메소드를 물려받은 자식 클래스를 생성하는 것.
  • 다형성(Polymorphism)
    • 같은 메소드지만 내부 로직을 다르게 작성.
  • 가시성(Visibility)
    • 정보에 접근을 조절하는것.
    • 관리자만이 중요정보에 접근하고 사용자는 제한되게 하는것.

사용법

추후에 올리겠음.