방통대/파이썬

[파이썬] 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