Salve a tutti!
Vi scrivo il codice che ho preso dal libro Programming Ruby - The
Pragmatic Programmers guide - 2nd,studiando il capitolo OBJECTS AND
ATTRIBUTES.
… Inizio codice
class Song
Inizializzazione
def initialize (name,artist,duration)
@name = name
@artist = artist
@duration = duration
@name si chiama VARIABILE DI ISTANZA
end
Fine inizializzazione
Inizio blocco definizione dei metodi
def mostra
“Song: #@name – #@artist – (#@duration)”
end
end
Costruzione dell’oggetto
Definiamo una nuova classe figlia della precedente
class KaraokeSong < Song
def initialize (name,artist,duration,lyrics)
@lyrics = lyrics
end
def mostra
super + " [#@lyrics]"
end
end
song = Song.new(“Non c’e’”,“Pausini”,“180”)
puts song.mostra
puts “…”
kara = KaraokeSong.new(“pippo”,“pluto”,“100”,“1234567”)
puts kara.mostra
kara1 = KaraokeSong.new(“Azzurro”,“Celentano”,“200”,“Azzurro…il cielo
e’…”)
puts kara1.mostra
…Fine codice
Contrariamente a quello che mostra il libro,mandando in esecuzione il
programmino ottengo questo:
Song: Non c’e’ – Pausini – (180)
…
Song: – – () [1234567]
Song: – – () [Azzurro…il cielo e’…]
Domandona…
Perche’ stampa solamente la parte finale e non stampa i campi name
,artist e duration?
Grazie per le eventuali risposte!!!