オブジェクト指向とは何か?
一言で言うと、データとメソッドの集合をクラスでモデル化したものになります。
それを具体的に書くと...
クラス
[
データ
データ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
以上でオブジェクト指向の説明を終わります。
一言で言うと、データとメソッドの集合をクラスでモデル化したものになります。
それを具体的に書くと...
クラス
[
データ
データ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
以上でオブジェクト指向の説明を終わります。