2011년 6월 2일 목요일

Inheritance and Mixins

Inheritance and Mixins

Song객체의 인스턴스 변수 @name, @artist, @duration은 객체에 private하다. 즉 자신을 제외한 다른 객체는 이객체의 인스턴스 변수에 접근할수 없다. 만일 접근할수 있게 하기위해서는 아래와 같이 접근할수 있는 메서드를 만들어주면된다.
class Song
 def name
   @name
 end
 def artist
   @artist
 end
 def duration
   @duration
 end
end
aSong = Song.new("Bicylops", "Fleck", 260)
aSong.artist»"Fleck"
aSong.name»"Bicylops"
aSong.duration»260



위의 name 메서드는 @name을 반환한다. 이와 같이 관용구 형태처럼 사용되기 때문에 attr_reader를 이용하여 접근 메서드를 자동으로 만들수 있다.
class Song
 attr_reader :name, :artist, :duration
end
aSong = Song.new("Bicylops", "Fleck", 260)
aSong.artist»"Fleck"
aSong.name»"Bicylops"
aSong.duration»260


위에서 :name이라고 쓰면 @name에 접근할수 있는 메서드가 자동으로 만들어진다.

댓글 없음:

댓글 쓰기

시스템 부팅시 도커 컨테이너 자동 실행

Docker 컨테이너를 운용중인 시스템이 Reboot 되버리면 컨테이너가 자동으로 올라오지 않아 불편해서 시스템 리붓시 컨테이너를 자동으로 시작되게 init 데몬에 등록하기로 했습니다. 서버는 Ubuntu 17.10 Docker는 17.0...