Python

(16)Python_객체지향과 클래스

빠스무 2023. 3. 10. 13:08
728x90

1. 객체지향 프로그래밍

  • 문제를 여러개의 객체 단위로 나눠 작업하는 방식

1-1. 객체(Object)란?

  • 물리적으로 존재하거나 추상적으로 생각할 수 있는 것 중에서 자신의 속성을 가지고 있고 다른 것과 식별 가능한 것을 말함

1-2. 클래스(Class)란?

  • 객체를 생성하기 위한 일종의 설계도와 같음
  • 클래스는 프로퍼티(필드), 메소드(함수)로 구성되어 있음
    • 프로퍼티(Property): 데이터가 저장되는 곳
    • 메소드(method): 객체의 동작에 해당하는 실행 블록

1-3. 클래스와 객체

  • 건축 설계도가 클래스라면, 실제로 지어진 집은 객체
  • 객체는 클래스로 구성되어 구체화된 인스턴스
  • 실제로 클래스가 인스턴스화 되어 메모리에 상주하는 형태를 객체라고 부름
  • 파이썬의 모든 변수와 함수는 객체로 저장

2. 클래스 만들기

class 클래스명:
  프로퍼티명1 = 값1
  프로퍼티명2 = 값2
  ...

  def 메소드명1(변수1, 변수2 ..):
    메소드가 호출되면 실행할 문장
    ...
  def 메소드명2(변수2, 변수2 ..):
    메소드가 호출되면 실행할 문장
    ...
  • 클래스를 통해 호출되는 변수를 프로퍼티(필드)라고 부름
  • 클래스를 통해 호출되는 함수를 메소드라고 부름
  • 객체생성을 하려 사용한다.

  • 클래스안에 메소드를 넣어 동작을 시킬 수 있다.

3. 생성자(Construtor)

  • 클래스를 객체화 시킬 때 가장 먼저 자동으로 실행되는 메소드
  • __ init__(self)
  • 생성자에서는 해당 클래스가 다루는 데이터를 정의하고 초기화 함

  • 클래스 안의 메소드에서 생성하는것은 지역변수로 사용할 수 있다.

4. 메소드

  • 해당 클래스의 객체에서만 호출가능한 함수
  • 해당 객체의 속성에 대한 연산을 행함
  • 객체이름.메소드명() 형태로 호출

4-1. 메소드 정의하기

  • 메소드를 통해서 각 동작을 정의할 수 있다.

4-2. 메소드 타입

  • instance method: 객체 형태로 호출되기 때문에 해당 메소드를 호출한 객체에만 영향을 미침
  • class method: 클래스 이름으로 호출하는 메소드(메소스 선언 위에 @staticmethod라고 표기)