
以下のURLの質問で、
https://oshiete.goo.ne.jp/qa/14031406.html
で、p1やp2に格納されているものは、Foo.newの引数でしょうか?それと、インスタンスの初期化を行っているのは、年齢と名前ですよね?教えて頂けると幸いです。
No.9ベストアンサー
- 回答日時:
>話をまとめると、p1とp2に格納されているのは、class Foo〜endまでと、状況によって、Foo.newの引数が格納されている(Foo.newの引数が全て格納されない場合もある)と言う事でしょうか?
回答:はい、そうです。
No.8
- 回答日時:
>追記
>なぜ、クラス内のメソッドも含まれるのでしょうか?これについても教えて頂けると幸いです。
なぜ、クラス内のメソッドもp1、p2に含まれるのかと理解しました。
クラス内のメソッドとは、
def initialize(name,age)
省略
end
def say()
省略
end
のことでしょうか。
上記は
calss Foo
end
内に含まれているので、
p1,p2にはクラスFoo全体の実体が格納されるので、
initializeとsayが含まれるのは自明かと思いますが、
そのような意味の質問ではないのでしょうか。
No.7
- 回答日時:
>つまり、p1とp2に格納されるのは、
>class Foo
>def initialize(name,age)
>@name = name #名前
>@age = age #年齢
>end
>def say()
>puts("My name is " + @name)
>puts("I am " + @age.to_s + "years old")
>end
>end
>は、確実にp1とp2に格納されているのですよね?
回答:はい、含まれています。
>後、p1とp2にclass Fooの実体が格納されると書かれていますが、
>そのclass Fooの実体が、class Fooからendまでだからでしょうか?
回答:はい、そうです。
>なぜ、それ以外のメソッドも含まれるのでしょうか?
回答:それ以外のメソッドとは、具体的にどのメソッドのことでしょうか。
質問の意味がよくわかりませんでした。
No.6
- 回答日時:
>No.3のプログラムの実行結果を教えて頂けると幸いです。
失礼ですが、あなたのパソコンにrubyはインストールされてないのでしょうか。
もし、そうでしたら、まず、rubyをインストールすることをお勧めします。
rubyを勉強する場合、まずrubyをインストールして、rubyを実行できる環境を作ることが第一番に行うべきことです。
そして、自分でいろいろと試してみることが、上達の近道になります。
ちなみに
---------------------------------
class Foo
def initialize(name,age)
@name = name #名前
@age = 999 #ageを使用していないことに注意
end
def say()
puts("My name is " + @name)
puts("I am " + @age.to_s + "years old")
end
end
p1 = Foo.new("yamada",18)
p2 = Foo.new("satou",20)
p1.say()
p2.say()
---------------------------------
の実行結果は、
My name is yamada
I am 999years old
My name is satou
I am 999years old
になります。
No.4
- 回答日時:
>インスタンスの初期化は、No.12のプログラム中のどこで、行っているのでしょうか?
インスタンスの初期化は、
p1=Foo.new("yamada",18)
を行ったとき、newメソッドで行われます。
しかしながら、そのnewメソッドで行われている具体的な内容を私たちruby
の利用者は知ることができません。
利用者がわかっているのは、「newメソッドでインスタンスの生成及び初期化が行われ、initializeメソッドが定義されていれば、それが実行される」
ということだけです。
従って、initializeメソッドの内容だけは知ることができます。
以下の個所が実行されるということになります。
def initialize(name,age)
@name = name #名前
@age = age #年齢
end
No.3
- 回答日時:
>つまり、p1とp2に格納されるのは、
>・・・省略・・・
>と、"yamada",18や、"satou",20が格納されているという解釈で合っていますでしょうか?
はい、そうです。
あなたの「"yamada",18や、"satou",20が格納されている」という意味は、
「今回のケースだけでなく、ほかのケースでも無条件にnewに引数で渡した値が、常に、インスタンスに格納されるか」ということであれば、回答はNOになります。今回のケースでは、格納されますが、以下のようなケースでは格納されません。
class Foo
def initialize(name,age)
@name = name #名前
@age = 999 #ageを使用していないことに注意
end
def say()
puts("My name is " + @name)
puts("I am " + @age.to_s + "years old")
end
end
p1 = Foo.new("yamada",18)
の場合、
Foo.new("yamada",18)の18は、p1には格納されません。
"yamada"だけが格納されます。
No.2
- 回答日時:
>とすると、p1やp2のFoo.newの2つの引数のことではないと言うことでしょうか?
p1,p2に格納されるのは、Foo.newの2つの引数の内容ですが、
それ以外のもの(クラス内のメソッド)も含まれます。
Foo.newの2つの引数の内容だけが格納されているわけではありません。
No.1
- 回答日時:
>p1やp2に格納されているものは、Foo.newの引数でしょうか?
質問は
https://oshiete.goo.ne.jp/qa/14031406.htmlの
No12のスクリプトについてと解釈すると、
p1やp2に格納されているものは、class Fooの実体です。
イメージとしては、p1,p2に
class Foo
def initialize(name,age)
@name = name #名前
@age = age #年齢
end
def say()
puts("My name is " + @name)
puts("I am " + @age.to_s + "years old")
end
end
の個所が格納されると考えてください。
但し、@nameと@ageの内容はp1とp2とで異なります。
>インスタンスの初期化を行っているのは、年齢と名前ですよね?
はい。@nameと@ageを初期化(値を設定)しています。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(プログラミング・Web制作) Pythonについて。 5 2024/01/04 19:20
- Excel(エクセル) excelVBAについて。 4 2024/11/22 21:03
- その他(恋愛相談) 前回?将来的な考えの違いにより彼女から別れ話をされた件で質問をした者です。 ↓↓↓ http://o 3 2023/10/24 07:24
- 失恋・別れ 前回?将来的な考えの違いにより彼女から別れ話をされた件で質問をした者です。 ↓↓↓ http://o 3 2023/10/23 18:16
- 写真 麺ヘラです。やっぱり写真写り悪いです。アドバイス下さい。 3 2023/11/23 15:35
- Excel(エクセル) ファイルパスについて。 3 2024/12/03 19:48
- Excel(エクセル) excelVBAについて。 1 2024/11/25 11:02
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 1 2023/09/21 13:01
- その他(プログラミング・Web制作) VBAでパワーシェルを実行したいのですが、なかなかうまく出来ず、有識者の知識をお借りさせてください。 2 2024/05/11 00:25
- Excel(エクセル) 実務の処理について。 6 2024/12/07 05:34
このQ&Aを見た人はこんなQ&Aも見ています
-
Ruby newメソッド
Ruby
-
Ruby 変数 用途と違い
Ruby
-
ルビー言語 csvファイル part2
Ruby
-
-
4
ruby loopメソッド 変数
Ruby
-
5
ruby loopメソッド 変数(再喝)
Ruby
-
6
ルビー言語 ライブラリー
Ruby
-
7
Ruby 引数
Ruby
-
8
Ruby require ライブラリー
Ruby
-
9
ruby raise句
Ruby
-
10
ruby begin句
Ruby
-
11
ruby while式
Ruby
-
12
ruby クラス・オブジェクト・インスタンス
Ruby
-
13
ルビー言語 ライブラリー(再々渇)
Ruby
-
14
ruby 配列
Ruby
-
15
excelVBAについて。
Excel(エクセル)
-
16
excelVBAについて。
Excel(エクセル)
-
17
HTML &CSSとHTML5&CSS3 違い
HTML・CSS
-
18
プログラミング言語のバージョン確認について。
その他(プログラミング・Web制作)
-
19
pythonでhtmlファイルの指定文字列間を取得したいです
その他(プログラミング・Web制作)
-
20
趣味がプログラミングだと言ってもいい?
その他(プログラミング・Web制作)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Ruby require ライブラリー
-
ruby loopメソッド 変数
-
ruby loopメソッド 変数(再喝)
-
ルビー言語 csvファイル 続き
-
Ruby newメソッド
-
(再質問)エクセルのマクロボ...
-
パソコンのスクリーンセーバー...
-
ruby OpenURI::Meta
-
ルビー言語 csvファイル part2
-
VBA メモ帳の上書き保存がしたい
-
ruby while式
-
ruby クラス・オブジェクト・イ...
-
ruby begin句
-
ビーリアルのユーザー名を変え...
-
c言語でランタイムエラーの処理...
-
ruby 配列
-
ruby raise句
-
Ruby 格納
-
WinSCPで画像のように puttyを...
-
パイソンエラーについて
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Ruby require ライブラリー
-
(再質問)エクセルのマクロボ...
-
ruby loopメソッド 変数(再喝)
-
ruby loopメソッド 変数
-
ルビー言語 ライブラリー(再々...
-
ruby while式
-
ルビー言語 ライブラリー 追記
-
ビーリアルのユーザー名を変え...
-
ruby OpenURI::Meta
-
ruby クラス・オブジェクト・イ...
-
ruby begin句
-
ruby raise句
-
ruby ensure句
-
ruby 配列
-
ルビー言語 csvファイル part2
-
ルビー言語 csvファイル 続き(...
-
ルビー言語 csvファイル 続き
-
ルビー言語 ライブラリー
-
パソコンのスクリーンセーバー...
-
ルビー言語 ライブラリー
おすすめ情報
とすると、p1やp2のFoo.newの2つの引数のことではないと言うことでしょうか?教えていただけると幸いです。"yamada",18や、"satou",20の事です。
つまり、p1とp2に格納されるのは、
class Foo
def initialize(name,age)
@name = name #名前
@age = age #年齢
end
def say()
puts("My name is " + @name)
puts("I am " + @age.to_s + "years old")
end
end
と、"yamada",18や、"satou",20が格納されているという解釈で合っていますでしょうか?
後、インスタンスの初期化は、No.12のプログラム中のどこで、行っているのでしょうか?教えて頂けると幸いです。
つまり、インスタンスの初期化は、newメソッドで行っている事しか分からないという事でしょうか?教えて頂けると幸いです。
No.3のプログラムの実行結果を教えて頂けると幸いです。
No.3のプログラムの実行結果を教えて頂けると幸いです。
つまり、p1とp2に格納されるのは、
class Foo
def initialize(name,age)
@name = name #名前
@age = age #年齢
end
def say()
puts("My name is " + @name)
puts("I am " + @age.to_s + "years old")
end
end
は、確実にp1とp2に格納されているのですよね?
後、p1とp2にclass Fooの実体が格納されると書かれていますが、そのclass Fooの実体が、class Fooからendまでだからでしょうか?なぜ、それ以外のメソッドも含まれるのでしょうか?迅速な回答と、返信遅くなりすみませんでした。
迅速な回答ありがとうございます。話をまとめると、p1とp2に格納されているのは、class Foo〜endまでと、状況によって、Foo.newの引数が格納されている(Foo.newの引数が全て格納されない場合もある)と言う事でしょうか?教えて頂けると幸いです。