방송대/파이썬 프로그래밍 기초
10강. 객체지향
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