유사성
[추가적 기능] [추가적 기능]
[공통적 기능] - [공통적 기능] - [공통적 기능]
A B
객체지향의 개념
→ 객체와 객체 사이의 상호작용으로 프로그램을 구성하는 프로그래밍 패러다임
→ 프로그램을 유연하고 변경을 쉽게 만들어 대규모 소프트웨어 개발에 사용
객체지향 패러다임의 특징
→ 추상화 : 공통의 속성이나 기능을 도출
→ 캡슐화 : 데이터 구조와 데이터의 연산을 결합
→ 상속 : 상위 개념의 특징이 하위 개념에 전달
→ 다형성 : 유사 객체의 사용성을 그대로 유지
객체와 클래스
객체는 추상화와 캡슐화의 결과
실세계의 사물에 대한 상태(데이터)와 연산(메소드)을 표현한 단위
→ 멤버(데이터필드, 메소드)는 클래스에 의해 결정
데이터필드 = 변수
연산(메소드) = 함수
클래스 정의
class 클래스이름 :
초기자 정의
메소드 정의
메소드(method)
→ 객체에 대한 행동(연산)을 정의
→ 함수의 정의 및 사용 방법과 동일
class 클래스 이름 :
def 메소드 이름(self,매개변수) :
코드블럭
self 매개변수
→ 모든 메소드의 첫번째 매개변수
→ 메소드의 구현에 사용되지만 메소드 호출 시 사용X
→ 객체 자신을 참조하여 클래스 정의에 포함된 멤버에 접근 시 사용 (데이터 필드로 지칭)
초기자(initalizer)
→ 객체의 상태를 초기화하는 특수 메소드
→ 항상 init**** 로 명명
클래스 설계
UML 클래스 다이어그램 통해 데이터필드, 생성자, 메소드 표현 방법 표준화
→ 데이터 필드 이름 : 데이터 필드 타입
→ 클래스 이름(매개변수 이름 : 매개변수 타입)
→ 메소드 이름(매개변수 이름 : 매개변수 타입) : 반환 값 타임
UML 클래스 다이어그램
객체와 인스턴스
클래스 이름(초기자 파라미터) # 생성자 호출
→ 클래스의 생성자(constructor) 를 통해 클래스의 인스턴스 생성
→ 객체와 인스턴스는 동일 개념
→ 클래스의 생성자는 클래스의 이름과 동일
→ 클래스의 이름과 초기자의 매개변수를 사용하여 생성자를 호출
객체의 생성 과정
- 클래스에 해당 하는 객체 생성
- __ init __ () 호출 // 초기자
객체의 사용
객체의 데이터 필드 접근 및 메소드 호출
→ 객체 멤버 접근 연산자(.) 사용
객체 접근
→ 객체 참조 변수를 사용하여 객체를 생성
객체참조변수 = 클래스이름(초기화 파라미터) // 생성자를 통해 만들어진 객체
객체참조변수.데이터필드
객체참조변수.메소드(파라미터)
데이터 타입과 객체
str 메소드
메소드 | 설명 |
upper(), lower() | 대/소 문자로 변경 |
title() | 각 단어의 첫 글자를 대문자로 변경 |
strip(),rstrip(),lstrip() | 양쪽/왼쪽/오른쪽 특정 문자 제거 |
replace() | 문자열 특정 부분을 대체 |
split() | 구분자로 분할하여 리스트로 반환 |
데이터 필드 감추기
데이터 은닉(data hiding)
→ 데이터 필드의 직접 변경을 방지하기 위해 사용자의 직접적 접근을 차단
→ public 과 다른 private 데이터 필드로 정의
private 데이터필드
→ 클래스 내부에서만 접근 가능
→ 앞 두 밑줄(__) 로 정의
self.__a
self.__b
접근자와 변경자
private 으로 정의된 데이터 필드는 객체 외부에서 접근 불가능
private 데이터 필드에 접근하는 메소드
- 접근자(accessor) : 데이터 필드 반환
- 변경자(mutator) : 데이터 필드 설정
'KNOU > 요약정리' 카테고리의 다른 글
[python] 파일 (0) | 2023.05.16 |
---|---|
[python] 모듈 (0) | 2023.05.16 |
[python] 함수 (0) | 2023.05.16 |
[python]구조적 프로그래밍 패러다임 (0) | 2023.05.16 |
[python] 파이썬의 이해 (0) | 2023.05.16 |
댓글