オブジェクト指向とは何か?

一言で言うと、データとメソッドの集合をクラスでモデル化したものになります。
それを具体的に書くと...

クラス
[
データ
データ2
  メソッド
  メソッド2
  メソッド3
]

インスタンス

こうなります。
これらをまとめたものがオブジェクトです。

いきなりデータ、メソッド、クラス、インスタンスが出てきたので、これらについて解説します。

データ
データとは、クラスで使える変数や配列のことです。
データ構造編でも変数などを解説しましたが、これと似た様なものだと思ってください。

また、Rubyではクラスで使うデータは、クラス変数やインスタンス変数と呼ばれていて、
クラス変数 : @@変数名
インスタンス変数:@変数名
というふうに使います。

インスタンス変数作成例(rubyコードのクラス内の変数の書き方使用)
計算機で使用するデータ
@n
@n1
@n2

また、クラスのデータの値を保持したい場合には、Initializeというメソッドを使います。
これは、クラスの初期状態を設定する特別なメソッドです。これについてはメソッドおまけで後述します。

メソッド
メソッドとは、今までやってきた、変数や繰り返し文、分岐文などの処理をまとめたものになります。

メソッド作成例(メソッド内部はrubyコード使用)
表示するメソッド
[
print @n1,"+",@n2,"=",@n
]

計算するメソッド
[
@n=@n1+@n2
]

おまけ
Initializeメソッド(n1,n2)
[
@n = 0
@n1 = n1
@n2 = n2
]

クラス
クラスとは、データやメソッドをまとめたものになります。

クラス作成例
class 計算機
[
計算機で使用するデータ
Initializeメソッド(n1,n2)
表示するメソッド

計算するメソッド
]

これまで、データ、メソッド、クラスについて解説してきました。
今度は、先ほど作ったクラスを使ってみます。
クラスを使うには、インスタンスをいうものを作る必要があります。

インスタンス
インスタンスとは実体です。

Rubyでの作り方は、以下になります。

計算=計算機.new(1,1)

newを使ってインスタンスというものを作ります。
インスタンスとは、クラスを使えるようにしたもののことです。
またインスタンスは幾つでも作ることができます。
計算=計算機.new(1,1)
計算2=計算機.new(3,5)

newの横についている(1,1)などの数字については、
Initializeメソッド(n1,n2)
の(n1,n2)の部分に代入されます。

これについては、そういう風になっているとだけ説明させていただきます。

では、こちらのクラスを

class 計算機
[
計算機で使用するデータ
Initializeメソッド(n1,n2)
表示するメソッド

計算するメソッド
]

インスタンス

ソースコードに落としこんでみます。

#クラス
class Calc
def initialize(n1,n2)
@n1 = n1
@n2 = n2
@n = 0
end

def ans
keisan
print @n1,"+",@n2,"=",@n,"\n"
end

def keisan
@n = @n1+@n2
end
end

#インスタンス生成
comp = Calc.new(1,1)
comp2 = Calc.new(3,5)

#インスタンス使用
comp.ans
comp2.ans

以上でオブジェクト指向の説明を終わります。