|
|||
|
|
1. 인스턴스 변수의 값을 반환하는 메소드 만들기class Song
def initialize(name, artist, duration)
@name = name
@artist = artist
@duration = duration
end
def name
@name
end
def artist
@artist
end
def duration
@duration
end
def to_s
"Song: #@name -- #@artist (#@duration)"
end
end
song = Song.new("Foo", "Fleck", 300)
puts song.name
- 실행결과 -- name() 메소드는 @name 의 값을 반환한다.Foo 위와 같은 name(), artist(), duration() 메소드는 아래와 같이 attr_reader :name, :artist, :duration 한 줄로 간단히 만들 수 있다. class Song
attr_reader :name, :artist, :duration
def initialize(name, artist, duration)
@name = name
@artist = artist
@duration = duration
end
def to_s
"Song: #@name -- #@artist (#@duration)"
end
end
song = Song.new("Foo", "Fleck", 300)
puts song.name
- 실행결과 -- attr_reader는 접근메소드는 만들어 준다. 그리고 :name (콜론 + 인스턴스변수명) 이라고 쓰면 name변수의 이름을 의미한다.Foo 2. 속성의 값을 바꾸는 메소드 만들기duration 속성을 쓰기 가능하게 만들기 class Song
attr_reader :name, :artist, :duration
def initialize(name, artist, duration)
@name = name
@artist = artist
@duration = duration
end
def duration=(new_duration)
@duration = new_duration
end
end
song = Song.new("Foo", "Fleck", 300)
song.duration = 500
puts song.duration
- 실행결과 -- 500 attr_writer :duration 는 위와 같이 set 역할을 하는 메소드를 간단히 만들어 준다. class Song
attr_reader :name, :artist, :duration
attr_writer :duration
def initialize(name, artist, duration)
@name = name
@artist = artist
@duration = duration
end
end
song = Song.new("Foo", "Fleck", 300)
song.duration = 500
puts song.duration
- 실행결과 -- 500 ※ 위 내용은 데이브토머스 차드파울러 앤디헌트 지음, 강문식, 박지인, 양석호 옮김 『Programming Ruby』 책의 내용을 바탕으로 정리한 것입니다. |
||
최근 댓글