Python OOP(Object Oriented Programming)
day4
목차
- OOP 개념
- 특징
- 상속(Inheritance)
- 다형성(Polymorphism)
- 가시성(Visibility)
OOP 개념
- 우리가 사는 세상을 프로그램적으로 표현하기 위해 고안해낸 개념.
- 객체 : 어떤 사물 혹은 동물을 지칭한다고 보면 되는데 프로그램은 이를
속성
과행동
으로 구분해서 바라본다. - 속성은
변수(Variable)
로, 행동은함수(Method)
로 표현된다.
OOP를 실현하기 위해서는 몇가지 도구가 필요하다. 바로 클래스(Class)와 인스턴스(Instance)이다. 이 두가지는 무엇인가?
흔히 붕어빵틀(class)와 붕어빵(instance)로 비유를 하는데, 나는 샴푸공장(class)에서 생산되는 샴푸(instance)가 더 이해가 쉬웠다. 마트에 가보면 샴푸는 여러가지가 있다. 하지만 각 회사마다 특별한 레시피를 갖는 비법이 각양 각색일 것이다. 그러한 레시피를 기반으로 샴푸를 대량 만들어 낸다. 하나의 레시피로 대량생산을 할 수 있다.
여기서 더 나아가서 생산된 샴푸가 마트에 진열되어 있으면 내가 그 중 하나를 사서 쓰더라도 마트에 진열된 샴푸가 함께 줄어들진 않는다. 이는 OOP의 특징인 캡슐화와 정보은닉과 연관지어 생각해 볼 수 잇을꺼 같다.생산된 인스턴스는 서로 영향을 주지 않는다는 것이다. 인스턴스(샴푸)에는 비밀 레시피는 숨겨둔채 서로 독립적으로 생산되지만, 사용자는 용도에 맞에 적절하게 사용할 수 있다.
특징
상속(Inheritance)
- 부모클래스로 부터 속성과 메소드를 물려받은 자식 클래스를 생성하는 것.
다형성(Polymorphism)
- 같은 메소드지만 내부 로직을 다르게 작성.
가시성(Visibility)
- 정보에 접근을 조절하는것.
- 관리자만이 중요정보에 접근하고 사용자는 제한되게 하는것.
사용법
추후에 올리겠음.