루비에서 인스턴스 변수를 "private"(C++ 또는 Java 정의)로 만들 수있는 방법이 있습니까? 즉, 오류가 발생하는 다음 코드를 원합니다.Ruby에서 인스턴스 변수를 비공개로 설정하는 방법은 무엇입니까?
class Base
def initialize()
@x = 10
end
end
class Derived < Base
def x
@x = 20
end
end
d = Derived.new
약간 특이한 요청 인 것 같습니다. 그런 패턴의 유스 케이스는 무엇입니까? 아마도 당신은 내가하지 못하는 것을 알고 있습니다, 그것은 미래에 유용 할 것입니다. –
C++ 환경에서 파생 된 클래스에서 액세스 할 수없는 기본 클래스의 전용 변수를 가지고 있으며 파생 클래스에서 수정되지 않는다는 확신이 생깁니다. 위의 예에서 @x가 수정 될 유일한 장소는 private 인스턴스 변수로 만들 수있는 경우 "Base"클래스에 있다고 확신 할 수 있습니다. – prasadvk
좀 더 구체적인 사용 사례를 제공해 주시겠습니까? 그것은 복잡하지 않아도됩니다. 나는 객체가 자신의 슬롯에 접근 할 수 있기를 원하지 않는 문제 하나를 이해한다면 토론에 도움이 될 것 같은 기분이 든다. –