インスタンスメソッド - クラスの概念 - Ruby入門
広告
クラスは何かを行うための設計図です。そこで具体的に何をさせたいのかをクラスの中に記述していく必要があります。その処理を記述するのがメソッドとなります。
メソッドは『メソッド』で見たとおり実行する一連の処理をまとめたものです。ただし通常のメソッドがプログラム中からいつでも呼び出せるのに対してクラス内に記述されたメソッドはクラスから作成されたオブジェクトしか呼び出すことが出来ません。このようなメソッドをインスタンスメソッドと呼びます。
class クラス名 def メソッド名(引数1, 引数2, ...) 処理 end end
例えばクラス名について表示するだけの簡単なインスタンスメソッドは次のようになります。
Strutsのvalidation.xmlを記述する手順は何ですか
class Car def dispString(str) print(str, "¥n") end end
なお、引数が無いメソッドの場合は括弧を省略しても構いません。
class Car def dispClassname print("Car class¥n") end def dispString(str, "¥n") print(str) end end
インスタンスメソッドの呼び出し
定義されたインスタンスメソッドはクラスのオブジェクトから呼び出すことができます。
基本的なマイクロコントローラ、 LEDランプ、なぜ470オームの抵抗
class Car def dispClassname print("Car class¥n") end def dispString(str, "¥n") print(str) end end car = Car.new car.dispClassname car.dispString("crown")
オブジェクトからメソッドを呼び出すにはオブジェクトの後にドット「.」を付けてメソッドを名を記述します。引数がある場合は括弧の後に引数をカンマで列挙して記述して下さい。引数が無い場合はメソッド名だけで結構です。
オブジェクト名.メソッド名(引数1, 引数2, ...) オブジェクト名.メソッド名
またドット「.」の代わりにコロン(:)を2つ続けて次のように記述することも出来ます。
オブジェクト名::メソッド名(引数1, 引数2, ...) オブジェクト名::メソッド名
どちらの形式も違いはありませんので、どちらかに統一して利用すればいいと思います。
JDOMを使用してXMLタグを削除する方法
オブジェクトを作成する為に使用した「new」メソッドはクラスに対して実行しました。例えば「Car.new()」のようにです。このようなメソッドはクラスに対して実行するクラスメソッドと呼ばされます。今回のようにクラス内に定義したインスタンスメソッドはクラスから作成したオブジェクトに対して実行する点が異なっていることに注意して下さい。
サンプルプログラム
では実際に試してみます。
ClassTest3.rb
class Car def dispClassname print("Car class¥n") end def dispString(str) print(str, "¥n") end end car = Car.new() car.dispClassname car.dispString("crown")
上記を実行すると次のように表示されます。
0 コメント:
コメントを投稿