- 締切済み
Ruby
class CDPlayer def playDisk(disk) puts "playing a "+disk+".\n"; end end class CDRadioCaset < CDPlayer def playRadio(channel) puts "playing a"+channel+"\n"; end def playCaset(tape) puts "playing a "+tape+"\n"; end end class DVDRPlayer < CDPlayer def playDisk(disk) puts "playing a"+disk+"\n" end def recoredDisk(disk) puts "recording to a "+ disk+". \n" end end cd=CDPlayer.new puts "CDPlayer. \n" cd.playDisk("CD") radio=CDRadioCaset.new puts "\n CDRadioCaset. \n" radio.playRadio("Radio") radio.playCaset("Caset") dvd=DVDRPlayer.new puts "\n DVDRPlayer.\n" dvd.playDisk(" CD or DVD") dvd.recoredDisk("disk") の意味わかる方、教えてください
- gerrad
- お礼率18% (10/53)
- Ruby
- 回答数1
- ありがとう数24
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- koko_u_u
- ベストアンサー率18% (216/1139)
>の意味わかる方、教えてください 意味はありません。
関連するQ&A
- Ruby の 文法に困ってます。
以下のようなソースの場合、to_sメソッドは何時呼ばれているのでしょうか。またどういう意味を成しているのでしょうか。 Ruby初心者のためご教授頂けないでしょうか。 よろしくお願いします。 class Vector attr_accessor :x, :y def initialize(x=0, y=0) @x = x @y = y end def length Math::sqrt(@x ** 2 + @y ** 2) end def to_s "(#{@x},#{@y})" end def <=> other length <=> other.length end end arr =[] arr << Vector.new(2,2) arr << Vector.new(3,2) arr << Vector.new arr.sort.each do |item| puts item end 結果は以下になります。 (0,0) (2,2) (3,2)
- ベストアンサー
- Ruby
- 【ruby】 『クラスの生成に失敗』を表現したい
『クラスの生成に失敗』を表現したいのです。 newの戻り値にnilやfalseを返せばよいと考え、 以下の様に書いてみました。(行頭は全角スペースです。) class Hoge def initialize(arg) return arg end end h = Hoge.new(false) STDERR.puts 'err' unless(h) errはputsされませんでした。(グーグルで調べるとinitializeのreturnは、返ってこないそうでした。) そこで以下の様に書きました。(行頭は全角スペースです。) class Hoge attr_reader :stat def initialize(arg) @stat = arg end end h = Hoge.new(false) STDERR.puts 'err' unless(h.stat) なんか、ものすごく我流になってる気がします。。。 アドバイスをお願いいたします。
- ベストアンサー
- Ruby
- rubyで変数から指定したバイト読むには?
たとえば、 Class Hoge initialize(arg) @data=arg end def read(size) @dataからsize分読んで返す。 end end みたいなクラスを hoge=Hoge.new(aaa) puts hoge.read(1024) puts hoge.read(1024) みたいに使いたいです。 指定したバイト分読むってどうするんですか? ご教授の程、宜しくお願いいたします。
- ベストアンサー
- Ruby
- ruby undefined method
class Hoge def body "aaa" end end def up(arg) arg.upcase end res=Hoge.new res.body = up(res.body) puts res.body 上記を実行すると、undefined method `body=' for #<Hoge:0x2b36454> (NoMethodError) になります。 最後の2行を以下のように変えるとうまく動作します。 tmp=res.body tmp = up(tmp) puts tmp この理由が理解できません。 説明して頂けませんか?
- ベストアンサー
- その他(プログラミング・開発)
- Ruby
#!/usr/local/bin/ruby class Foo def []=(x,y) print "Hello,",x,y,"!\n" end end bar = Foo.new bar["wor"] = "ld" 上記実行結果は Hello world! になるのですが、これが理解できません。 上手く説明してくれませんか?
- ベストアンサー
- その他(プログラミング・開発)
- Rubyのプログラム
今、サンプルとしてこれがあるんですけど、これは交点を出力するものなんですが、線を出力するにはどこを変えればよいですか?? Xみたいに線を描きたいです。 class Ten def initialize(x, y) @x = x # インスタンス(@がついているもの)変数に代 入 @y = y # インスタンス(@がついているもの)変数に代入 end attr_accessor :x, :y end class Sen def initialize(p1, p2) @p1 = p1 @p2 = p2 @a = (p2.y - p1.y)/(p2.x - p1.x) @b = -@a * p1.x p1.y end attr_accessor :p1 # 始点 attr_accessor :p2 # 終点 attr_accessor :a # 傾き attr_accessor :b # Y軸との交点 end def koten(l1, l2) x = (l1.b - l2.b)/(l2.a - l1.a) y = (l1.a * l2.b - l1.b * l2.a)/(l1.a - l2.a) puts x, y end p1 = Ten.new(0.0, 0.0) p2 = Ten.new(6.0, 4.0) p3 = Ten.new(0.0, 4.0) p4 = Ten.new(6.0, 0.0) l1 = Sen.new(p1, p2) l2 = Sen.new(p3, p4) koten(l1, l2)
- 締切済み
- Ruby
- 【ruby】特異クラスを使って,File.statをカスタムしたい
File.statに、nameというメソッドを追加したいです。 st=File.stat('hoge.txt') puts st.name #=> hoge.txt 上記のように使いたいのです。 そこで、以下の様に書いてみました。(行頭のスペースは全角です) class File class << self def stat(file) st=File::Stat.new(file) class << st def name @file end end st end end end st=File.stat('./hoge.txt') puts st.name #=> nil 上記実行結果はnilが出力され、期待した結果は得られませんでした。 上記の様に書いた理由を以下に記します。 クラスメソッドstatは、file.rbのclass Fileの中に定義されていて、 stat.rbのFile::Stat.new(file)を戻り値としていました。 stat.rbのclass File::Statのinitializeでは、 def initialize(file) @file = file (略) end となっていたので、上記の様に書いてみたのですが、何が悪いのでしょうか? ご指導のほど、宜しくお願いいたします。
- ベストアンサー
- Ruby
- Ruby について質問です
Rubyについて質問です class Document include Enumerable attr_accessor :title, :author, :content def initialize(title, author, content) @title = title @author = author @content = content end def words @content.split end def each words.each { |word| yield(word) } end end doc = Document.new('Advice', 'Harry', 'Go ahead make my day') doc.each { |word| puts word } このようなコードがすでに出来上がったおり、 これをアルファベットの早い順に並び変えて(sort)出力させるには どのようにコードを追加すればよいですか? どうやら、sort メソッドと <=> 演算子を使って記述するようですが、 よくわかりません 回答お願いいたします。
- ベストアンサー
- その他(学問・教育)
- Rubyのsuperclassメソッドについて
Rubyについての質問です。処理系は1.8.7です。 class Foo def initialize(a) @a = a end end のようなクラスを作成し、そのインスタンスを foo = Foo.new(1) のように作成します。 このとき、 foo.superclassを呼び出すと NoMethodError: undefined method `ancestors' for #<Foo:0x2b691220cc88 @a=1> とエラーになります。 一方で class FooExt < Foo def initialize (a,b) @b = b super a end end のようにFooを継承したクラスを作り、 fooext = FooExt.new(1,2) fooext.superclass とすると => Foo とsuperclassメソッドが動作します。 このsuperclassメソッドはどこで追加されたものなのでしょうか?
- 締切済み
- Ruby