[Lecture/Python] 10강 - 객체지향

김찬미·2025년 5월 26일

[Lecture] Python

목록 보기
9/13

10강 - 객체지향

  • 객체지향의 이해
  • 클래스와 인스턴스
  • 객체지향의 활용

✅ 객체지향의 이해

객체지향이란?

객체와 객체 사이의 상호작용으로 프로그램을 구성하는 프로그래밍 패러다임

  • 프로그래밍을 유연하고 변경을 쉽게 만듦
    대규모 소프트웨어 개발에 사용

🔹객체지향 패러다임의 특징

  • 추상화: 공통의 속성이나 기능을 도출
  • 캡슐화: 데이터 구조와 데이터의 연산을 결합
  • 상속: 상위 개념의 특징이 하위 개념에 전달
  • 다형성: 동일한 이름의 메서드나 함수가 다양한 방식으로 동작

객체와 클래스

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

🔹클래스 정의

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

🔹메소드 정의

class 클래스 이름:
	def 메소드 이름(self, 매개변수 리스트):
    		코드 블럭

💡 self 매개변수란?
모든 메소드의 첫 번째 매개변수
→ 사용범위: 메소드 구현⭕ 메소드 호출❌
객체 자신을 참조하여 클래스 정의에 포함된 멤버에 접근 시 사용


클래스 설계

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

UML 클래스 다이어그램


✅ 클래스와 인스턴스

객체와 인스턴스

구문 형식

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

🔹객체의 생성 과정


🔹객체의 사용

객체의 데이터 필드 접근 및 메서드 호출
→ 객체 멤버 접근 연산자(.) 사용

객체 접근

객체 참조변수.데이터 필드
객체 참조변수.메소드(파라미터)

→ 객체 참조변수를 사용하여 객체를 생성

객체 참조변수 = 클래스 이름(초기자 파라미터)

✅ 객체지향의 활용

데이터 타입과 객체

"Korea National Open University".lower()


str 메소드

메소드설명
upper(), lower()대/소 문자로 변경
title()각 단어의 첫 글자를 대문자로 변경
strip(), rstrip(), lstrip()양쪽/왼쪽/오른쪽의 특정 문자를 제거
replace()문자열 특정 부분을 대체
split()구분자로 분할하여 리스트로 반환
"I love python".upper()
"I love python".replace("o", "i")
isymbol = "I love python".replace("o", "i")
dir(str)

데이터 필드 감추기

💡 데이터 은닉 data hiding
데이터 필드의 직접 변경을 방지하기 위해 사용자의 직접적 접근 차단
public과 다른 private 데이터 필드로 정의

private 데이터 필드
→ 클래스 내부에서만 접근 가능
→ 앞 두 밑줄(__)로 정의

self.__r
self.__h

접근자와 변경자

private으로 정의된 데이터 필드는 객체 외부에서 접근 불가능

private 데이터 필드에 접근하는 메서드

  • 접근자(accessor): 데이터 필드 반환
  • 변경자(mutator): 데이터 필드 설정

profile
백엔드 지망 학부생

0개의 댓글