monimoni 2025. 5. 7. 21:59

1. 객체지향의 개념

  • 객체와 객체 사이의 상호작용으로 프로그램을 구성하는 프로그래밍 패러다임
  • 프로그램을 유연하고 변경을 쉽게 만들어 대규모 소프트웨어 개발에 사용
  • 객체지향 패러다임의 특징
    • 추상화 : 공통의 속성이나 기능을 도출
    • 캡슐화 : 데이터 구조와 데이터의 연산을 결합
    • 상속 : 상위 개념의 특징이 하위 개념에 전달
    • 다형성 : 유사 객체의 사용성을 그대로 유지

2. 객체와 클래스

  • 객체는 추상화와 캡슐화의 결과
  • 실세계의 사물에 대한 상태( 데이터 )와 연산( 메소드 )을 표현한 단위
    • 멤버( 데이터 필드, 메소드 )는 클래스에 의해 결정

3. 클래스 정의

  • 구문형식
class 클래스 이름:
	[Tab] 초기자 정의
	[Tab] 메소드 정의
  • 메소드( method )
    • 객체에 대한 행동( 연산 )을 정의
    • 함수의 정의 및 사용 방법과 동일
  • 초기자( initializer )
    • 객체의 상태를 초기화하는 특수 메소드
    • 항상 __init__ 으로 명명

4. 메소드의 정의

  • 구문형식
class 클래스 이름:
	[Tab] def 메소드 이름(self, 매개변수 리스트):
	[Tab][Tab]코드 블록
  • self 매개변수
    • 모든 메소드의 첫번째 매개변수( 필수 )
    • 메소드의 구현에 사용되지만 메소드 호출 시 사용되지는 않음
    • 객체 자신을 참조하여 클래스 정의에 포함된 멤버에 접근 시 사용
    • 클래스 내부의 변수에 접근할 때, ‘데이터 필드’임을 알려줌

5. 클래스 설계

  • UML 클래스 다이어그램 통해 데이터필드, 생성자, 메소드 표현 방법 표준화
    • 데이터 필드 이름 : 데이터 필드 타입
    • 클래스 이름( 매개변수 이름 : 매개변수 타입 )
    • 메소드 이름( 매개변수 이름 : 매개변수 타입 ) : 반환값 타입

6. 객체와 인스턴스

  • 구문형식
    • 클래스 이름 ( 초기자 파라미터 )
  • 클래스의 생성자( constructor )를 통해 클래스의 인스턴스 생성
  • 객체와 인스턴스는 동일 개념
    • 사실상 변수는 객체다.
  • 클래스의 생성자는 클래스의 이름과 동일
  • 클래스의 이름과 초기자의 매개변수를 사용하여 생성자를 호출

7. 객체의 사용

  • 객체의 데이터 필드 접근 및 메소드 호출
    • 객체 멤버 접근 연산자( . ) 사용
  • 객체 접근
    • 구문형식
      • 객체 참조변수 . 데이터 필드
      • 객체 참조변수 . 메소드( 파라미터 )
    • 객체 참조변수를 사용하여 객체를 생성
      • 객체 참조변수 = 클래스 이름 ( 초기자 파라미터 )
        • ex. big_cone = Cone(50, 100), unit_cone = Cone( )

8. str 메소드

  • upper( ) : 대문자로 변경
  • lower( ) : 소문자로 변경
  • title( ) : 각 단어의 첫 글자를 대문자로 변경
  • strip( ) : 양쪽의 특정 문자를 제거
  • rstrip( ) : 왼쪽의 특정 문자를 제거
  • lstrip( ) : 오른쪽의 특정 문자를 제거
  • replace( ) : 문자열 특정 부분을 대체
  • split( ) : 구분자로 분할하여 리스트로 반환

9. 데이터 필드 감추기

  • 데이터 은닉( data hiding )
    • 데이터 필드의 직접 변경을 방지하기 위해 사용자의 직접적 접근을 차단
    • public과 다른 private 데이터 필드로 정의
  • private 데이터 필드
    • 클래스 내부에서만 접근 가능
    • 앞 두 밑줄( __ )로 정의
      • ex. self.__r, self.__h

10. 접근자와 변경자

  • private으로 정의된 데이터 필드는 객체 외부에서 접근 불가능
  • private 데이터 필드에 접근하는 메소드
    • 접근자( accessor ) : 데이터 필드 반환
    • 변경자( mutator ) : 데이터 필드 설정
728x90