ruby 의 방법 역할 영역
ruby 에 private,proctected 는 모두 하위 클래스 에 의 해 계승 할 수 있 지만 인 스 턴 스 에 의 해 호출 될 수 없습니다.
protected 는 같은 종류의(하위 클래스 포함)다른 대상 에서 호출 할 수 있 습 니 다.
irb(main):001:0> class AccessTest
irb(main):002:1> def test
irb(main):003:2> "test private"
irb(main):004:2> end
irb(main):005:1> def test_other(other)
irb(main):006:2> "other object" + other.test
irb(main):007:2> end
irb(main):008:1> end
=> nil
irb(main):009:0> t1=AccessTest.new
=> #<AccessTest:0xb773e620>
irb(main):010:0> t2=AccessTest.new
=> #<AccessTest:0xb7737334>
irb(main):011:0> t1.test
=> "test private"
irb(main):012:0> t1.test_other(t2)
=> "other objecttest private"
irb(main):013:0> class AccessTest
irb(main):014:1> private :test
irb(main):015:1> end
=> AccessTest
irb(main):016:0> t1.test
NoMethodError: private method `test' called for #<AccessTest:0xb773e620>
from (irb):16
from :0
#private
irb(main):017:0> class AccessTest
irb(main):018:1> def tt
irb(main):019:2> 'tt'
irb(main):020:2> end
irb(main):021:1> protected :tt
irb(main):022:1> end
=> AccessTest
irb(main):023:0> t1.tt
NoMethodError: protected method `tt' called for #<AccessTest:0xb773e620>
from (irb):23
from :0
#protected ( )
irb(main):024:0> class Sun < AccessTest
irb(main):025:1> end
=> nil
irb(main):026:0> s=Sun.new
=> #<Sun:0xb770f564>
irb(main):027:0> class Sun
irb(main):028:1> def tt2
irb(main):029:2> tt
irb(main):030:2> end
irb(main):031:1> end
=> nil
irb(main):032:0> s.tt2
=> "tt"
irb(main):033:0> class Sun
irb(main):034:1> def tt3
irb(main):035:2> test
irb(main):036:2> end
irb(main):037:1> end
=> nil
irb(main):038:0> s.tt3
=> "test private"
#protected
irb(main):039:0> class AccessTest
irb(main):040:1> protected :test
irb(main):041:1> end
=> AccessTest
irb(main):042:0> s.test_other(s)
=> "other objecttest private"
#protected ( )
irb(main):043:0> s.test
NoMethodError: protected method `test' called for #<Sun:0xb770f564>
from (irb):43
from :0
irb(main):047:0> class Sun
irb(main):048:1> public :test
irb(main):049:1> end
=> Sun
irb(main):050:0> s.test
=> "test private"
#
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Ruby의 단일 메소드 및 단일 클래스 상세 정보단일 방법 Ruby는 단일 객체에만 적용되는 단일 객체 추가 방법을 단일 방법이라고 합니다. 또한 위에서 사용한 정의 방법 외에 Object#define_를 통해singleton_method 방법으로 단일 방법 정의...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.