ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [프로그래밍 언어] Python Class 객체 지향(Object Oriented)
    Python 2023. 3. 19. 20:36

    객체지향 VS 절차지향

     

    - 절차 지향 ( Procedural Programming ) -> C언어

    Top Down 방식 ( 순차적인 처리 )

    프로그램 전체가 유기적으로 연결

    장점 : 실행속도가 빠름

    단점 : 유지보수가 어려움, 디버깅이 어려움

     

    - 객체 지향 ( Object Oriented Programming ) -> C++, Java, Python

    실제 세계를 모델링하여 개발

    속성(Attribution)과 행동(Method)로 이루어짐

    3대 특성

    1. 추상화 : 공통성과 본질을 모아 추출

    2. 상속 : 상위 클래스의 속성과 method를 재사용할 수 있음

    3. 다형성 : 하나의 객체가 다양한 속성과 method를 가질 수 있음

    4. 캡슐화 : 연관된 속성과 기능을 하나의 캡슐로 만들어 외부로부터 데이터 보호 ( Data Protection, Data Hiding )

    장점 : 코드의 재활용성, 디버깅 쉬움

    단점 : 처리속도가 느림, 설계에 시간 소요

     

     

    - 객체 지향 용어 정리

    Ex) Cookie

    1. Class : Cookie 객체를 만들기 위한 과자 틀

    2. 객체 ( Object ) : 과자 틀에 의해 만들어진 과자

    3. 인스턴스 ( Instance )

    ex) a = Cookie() -> a는 객체, a는 Cookie의 인스턴스

     

    Python 객체 지향 ( Class )

     

    Ex) 계산기 ( Calculator )

     

    1. Class 생성

    Class Calculator:

    2. 생성자 ( __init__)

    생성자 : 객체가 생성될 때 자동으로 호출되는 Method

    Class Calculator:
    	def __init__(self):
        	self.result = 0

    result -> Instance의 속성

    3. 메서드 정의 ( Class의 주요 기능, 함수 )

    import sys
    input = sys.stdin.readlines
    
    class Calculator:
        def __init__(self, num):
            self.result = num
        def add(self, num):
            self.result += num
            return self.result
        def sub(self, num):
            self.result -= num
            return self.result
        def mul(self, num):
            self.result *= num
            return self.result
        def div(self, num):
            self.result /= num
            return self.result
    
    Cal1 = Calculator(0)
    print(Cal1.add(10))
    # 출력 : 10
    print(Cal1.sub(5))
    # 출력 : 5
    print(Cal1.mul(3))
    # 출력 : 15
    print(Cal1.div(5))
    # 출력 : 3.0

     

Designed by Tistory.