- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:インスタンス変数とローカル変数のスコープの違い)
インスタンス変数とローカル変数のスコープの違い
このQ&Aのポイント
- ローカル変数とはメソッドごとに異なる変数として扱われる。
- インスタンス変数は同じインスタンスの中であればメソッドの定義を越えてその値を参照したり変更したりできる。
- インスタンスとは、オブジェクトとおおよそ同義と捉えている。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
>この認識に間違いはないでしょうか。 合ってます。 class Hoge def initialize(x) @x=x #インスタンス変数@xに初期化パラメータを保存 end def foo puts @x #呼び出したオブジェクトのインスタンス変数に保存されたものを表示 w=@x #ローカル変数wに値を保存 end def bar puts w end end a=Hoge.new(123) a.foo #=> 123 がputされる a.bar #メソッドbarには、wという変数は定義されてないのでエラー インスタンス変数は、個々のオブジェクトがもつ属性のような物と思えば良いです。 図形の色とか、人間の名前とか。
お礼
大変参考になりました。 理解に間違いがなく自信がでました、胸張って前へ進めます! このサンプルプログラム、すっごいわかりやすいです。 貴重な情報を本当にありがとうございます。