다음 코드는 NoMethodError
을 인쇄합니다. 이유를 모르겠다. 비록 내가 전화하는 방법은 비공개이지만 클래스에서 호출하고 있습니다. 클래스 변수는 개인 변수/함수에 액세스 할 수 없습니까? Java에서이 작업을 수행 할 수 있습니다.왜 수업 내에서 개인 기능에 액세스 할 수 없습니까?
class Tester
private
def func_pri
puts("From a private function")
end
protected
def func_prot
puts("From a protected function")
end
public
def func_pub
puts("From a public function")
end
public
def caller(object)
object.func_pub
object.func_pri # This statement causes error
object.func_prot
end
end
o = Tester.new
o.caller(o)
개체를 매개 변수로 사용하면이 메서드를 범위 외부에서 호출 할 수 있습니다. send를 사용하거나 호출자 메소드에서 self.fun_pri을 수행하십시오. – texasbruce
어떤 언어입니까 (오, 루비였습니까)? 그리고 왜