방통대/파이썬
[파이썬] 10-3 객체지향의 활용
꿈꾸는 몽나
2024. 4. 25. 23:19
728x90
str 메소드
데이터 필드 감추기
-데이터 은닉
: 데이터 필드의 직접 변경을 방지하기 위해 사용자의 직접적 접근을 차단
: public과 다른 private 데이터 필드로 정의
-private 데이터 필드
: 클래스 내부에서만 접근 가능
: 앞 두 밑줄(__)로 정의
self.__r
접근자와 변경자
: private으로 정의된 데이터 필드는 객체 외부에서 접근 불가능
: private 데이터 필드에 접근하는 메소드
-> 접근자 : 데이터 필드 반환
-> 변경자 : 데이터 필드 설정
원뿔 클래스 개선
: 멤버 __r과 __h에 대한 접근자와 변경자 정의
class pCone :
def __init__(self, radius = 20, height = 30):
if radius > 0 and height > 0:
#__를 앞에 붙여서 private한 데이터 필드 지정
#객체 외부에서는 반지름값과 높이값에 접근이 불가능하다.
self.__r = radius
self.__h = height
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
#접근자와 변경자 통한 private 데이터 필드 접근
#접근자를 통한 데이터 필드 반환
def get_radius(self) :
return self.__r
#변경자를 통한 데이터 필드 설정
def set_radius(slef. radius) :
#음수값이 입력되지 않도록 if문으로 제어
if radius > 0 :
self.__r = radius
perfect_cone = pCone(100, 200)
perfect_cone.get_surf()
728x90