
객체지향
: 객체와 객체 사이의 상호작용으로 프로그램을 구성하는 프로그래밍 패러다임
: 프로그램을 유연하고 변경을 쉽게 만들어 대규모 소프트웨어 개발에 사용
객체지향 패러다임의 특징
-추상화 : 공통의 속성이나 기능을 도출
-캡슐화 : 데이터 구조와 데이터의 연산을 결합
-상속 : 상위 개념의 특징이 하위 개념에 전달
-다형성 : 유사 객체의 사용성을 그대로 유지
객체와 클래스
: 객체는 추상화와 캡슐화의 결과
: 실세계의 사물에 대한 상태(데이터)와 연산(메소드)을 표현한 단위
-> 멤버(데이터 필드, 메소드)는 클래스에 의해 결정

클래스 정의
-구문형식
class 클래스 이름:
초기자 정의
메소드 정의
-메소드
: 객체에 대한 행동(연산)을 정의
: 함수의 정의 및 사용 방법과 동일
-초기자
: 객체의 상태를 초기화하는 특수 메소드
: 항상 __int__으로 명명
메소드의 정의
-구문형식
class 클래스 이름:
def 메소드 이름(self, 매개변수 리스트):
코드 블럭
-self 매개변수
: 모든 메소드의 첫번째 매개변수
: 메소드의 구현에 사용되지만 메소드 호출 시 사용되지 않음
: 객체 자신을 참조하여 클래스 정의에 포함된 멤버에 접근 시 사용
원뿔 예제)
#self.r과 self.h의 스코프(시작)
class Cone :
def __init__(self, radius = 20, height = 30):
#변수 r과 h 앞에 self.를 붙이지 않는다면 범위가 한정됨.
#변수 r와 h의 스코프(시작)
self.r = radius
self.h = height
#변수 r와 h의 스코프(끝)
def get_vol(self) :
return 1/3 * 3.14 * self.r ** 2 * self.h
def get_surf(self) :
return 3.14 * self.r ** 2 + 3.14 * self.r * self.h
#self.r과 self.h의 스코프(끝)
클래스 설계
: UML 클래스 다이어그램 통해 데이터필드, 생성자, 메소드 표현 방법 표준화
-> 데이터 필드 이름 : 데이터 필드 타입
-> 클래스 이름(매개변수 이름 : 매개변수 타입)
-> 메소드 이름(매개변수 이름 : 매개변수 타입) : 반환값 타입
원뿔 클래스의 표현
: UML 클래스 다이어그램



BMI 계산 프로그램
: 이름, 나이, 몸무게 키를 사용하여 BMI 수치 및 상태를 반환하는 BMI 클래스를 정의

class BMI :
def __init__(self, name, age, weight, height) :
self.name = name:
self.age = age
self.weight = weight
self.height = height
def get_BMI(self) :
return self.weight / (self.height / 100) ** 2
def get_status(self) :
#위에서 반환된 BMI값을 가지고 판정하는 부분
#get_BMI에서 반환된 값을 부르는 방법
# 1. 내부의 메소드를 직접 호출
if self.get_BMI() >= 25 :
return "비만"
elif self.get_BMI() >= 23 and self.get_BMI < 25 :
return "과체중"
elif self.get_BMI() >= 18.5 and self.get_BMI < 23 :
return "정상"
else :
return "저체중"
# 2. 변수에 메소드 바환값을 저장해 놓고 해당 변수를 호출
BMI = self.get_BMI()
if BMI >= 25 :
return "비만"
elif BMI >= 23 and BMI < 25 :
return "과체중"
elif BMI >= 18.5 and BMI < 23 :
return "정상"
else :
return "저체중"
'방통대 > 파이썬' 카테고리의 다른 글
[파이썬] 10-3 객체지향의 활용 (2) | 2024.04.25 |
---|---|
[파이썬] 10-2 클래스와 인스턴스 (0) | 2024.04.25 |
[파이썬] 9강. 함수 연습 문제 (0) | 2024.04.18 |
[파이썬] 9-2 함수의 확장 (2) | 2024.04.18 |
[파이썬] 9-1 함수 (2) | 2024.04.18 |