質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.47%
Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Q&A

解決済

1回答

853閲覧

humanクラスを定義したい

Shoki0519

総合スコア1

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

0グッド

0クリップ

投稿2020/10/16 15:09

編集2020/10/16 15:38

前提・実現したいこと

$ ruby main.rb

田中 太郎です。25歳です。
私は電車について考えています。
鈴木 次郎です。30歳です。
私は野球について考えています。
佐藤 花子です。20歳です。
私は映画について考えています。

という文を作りたいです。分かりにくいかと思いますがご回答宜しくお願い致します。

発生している問題・エラーメッセージ

animal.rbで書いたものが上に出てきてしまい、実現したい文書が作れない。
具体的には

田中 太郎です。25歳です
鈴木 次郎です。30歳です
佐藤 花子です。20歳です
田中 太郎です。25歳です
私は電車について考えています。
鈴木 次郎です。30歳です
私は野球について考えています。
佐藤 花子です。20歳です
私は映画について考えていま

となります

### 該当のソースコード  rubyです **ここから下はanimal.rb** class Animal attr_accessor :name, :age def initialize(name,age) self.name= name self.age= age end def say puts "#{self.name}です。#{self.age}歳です" end end tanaka=Animal.new("田中 太郎",25) tanaka.say suzuki=Animal.new("鈴木 次郎",30) suzuki.say sato=Animal.new("佐藤 花子" ,20) sato.say **ここから下はthinkable.rb** module Thinkable def think puts "私は#{self.hobby}について考えています。" end end **ここから下はhuman.rb** require './thinkable' require './animal' class Human < Animal attr_accessor :hobby def initialize(name,age,hobby) self.name= name self.age= age self.hobby= hobby end include Thinkable end **ここから下はmain.rb** require "./human" tanaka = Human.new("田中 太郎", 25, "電車") tanaka.say tanaka.think suzuki = Human.new("鈴木 次郎", 30, "野球") suzuki.say suzuki.think sato = Human.new("佐藤 花子", 20, "映画") sato.say sato.think ### 試したこと googleにて調べたり、要所要所を書き換えてみた ### 補足情報(FW/ツールのバージョンなど)

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2020/10/16 15:58

さっとプログラムを拝見した程度で少し申し訳ないのですが、気になった点を指摘させてください。 「animal.rb」ファイルの最後に「new」でAnimalオブジェクトを生成して、更に「say」を実行しているのは何のためでしょうか? この記述があることが原因のような気がしています。
guest

回答1

0

ベストアンサー

diff

1class Animal 2attr_accessor :name, :age 3def initialize(name,age) 4self.name= name 5self.age= age 6end 7 8def say 9puts "#{self.name}です。#{self.age}歳です" 10end 11end 12 13-tanaka=Animal.new("田中 太郎",25) 14-tanaka.say 15-suzuki=Animal.new("鈴木 次郎",30) 16-suzuki.say 17-sato=Animal.new("佐藤 花子" ,20) 18-sato.say

admin.rbの????の赤背景箇所を削除すれば、意図通りの出力が得られるような気がします!

main.rbでrequire './human' していて、
human.rbでrequire './animal' しているため、
requireされた時点で、赤背景の箇所が実行されているためです。

投稿2020/10/18 22:58

ducci

総合スコア191

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.47%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問