##本記事の目的
タイトル通り、Rubyにおけるオブジェクト、クラス、インスタンス、メソッド、インスタンス変数という言葉がどのような意味を持つのかを記述していきます。プログラミングにおいては何かが何かを包含してピラミッド構造のようなものを構成している点が特徴的だと感じたので、それに着目し、より高次の概念を表す用語が上に来るように書きました。
##オブジェクト
Rubyではあらゆる「データ」がオブジェクトです。Rubyのなかでオブジェクトではないものはないと思い込んでいたのですがそれは誤りで、「データ」でないメソッドなどはオブジェクトではありません。
##クラス
クラスはオブジェクトを生み出し、オブジェクトの振る舞いを規定するものです。
##インスタンス
全てのオブジェクトは何らかのクラスに属します。その際に「所属先」のクラスに対し「所属するオブジェクト」がインスタンスと呼ばれます。
##メソッド
メソッドとはオブジェクトについての一連の処理を定義したものです。例として文字列オブジェクトの文字数を返すlengthメソッドなどがあります。メソッドはデータではないため、必然的にオブジェクトではないということになります。
また、メソッドが呼び出されたオブジェクトをそのメソッドのレシーバといいます。
##インスタンス変数
メソッド内で定義された変数は通常メソッドの外では機能しませんが、@から始まるインスタンス変数なら、クラス内のインスタンスの中でならどこでも使えます。
##では結局オブジェクトとは何なのか?
オブジェクトとは何かを理解するには、理屈だけでなく感覚的にオブジェクトを理解することが必要だそうです。自分がその域に達するのはまだ先のように思えますが、今のところオブジェクトとは、自然言語における主語と述語のような相互補完関係をメソッドと築いているものなのかなと思います。(メソッドは繋げられるが自然言語で述語が連続したら文法的におかしいという違いはありますが)
More than 3 years have passed since last update.
Register as a new user and use Qiita more conveniently
- You get articles that match your needs
- You can efficiently read back useful information
- You can use dark theme