Ruby クラスの例

次に、Customer という名前の Ruby クラスを作成し、2つのメソッドを宣言します:

  • display_details:このメソッドは、顧客の詳細情報を表示するために使用されます。
  • total_no_of_customers:このメソッドは、システム内で作成された顧客の総数を表示するために使用されます。

例

#!/usr/bin/ruby class Customer @@no_of_customers=0 def initialize(id, name, addr) @cust_id=id @cust_name=name @cust_addr=addr end def display_details() puts "Customer id #@cust_id" puts "Customer name #@cust_name" puts "Customer address #@cust_addr" end def total_no_of_customers() @@no_of_customers += 1 puts "Total number of customers: #@@no_of_customers" end end

display_detailsこのメソッドには3つの puts ステートメントが含まれており、顧客 ID、顧客名、顧客アドレスを表示します。そのうち、puts ステートメントは:

puts "Customer id #@cust_id"

1行にテキスト Customer id と変数 @cust_id の値を表示します。

1行にインスタンス変数のテキストと値を表示したい場合は、puts ステートメントの変数名の前に記号(#)を置く必要があります。テキストと記号(#)付きのインスタンス変数は、二重引用符で囲む必要があります。

2番目のメソッド total_no_of_customers には、クラス変数 @@no_of_customers が含まれています。式 @@no_of_customers+=1 は、メソッド total_no_of_customers が呼び出されるたびに、変数 no_of_customers を 1 加算します。このようにして、クラス変数内の顧客の総数を取得できます。

次に、2つの顧客を作成します。以下のようになります:

cust1=Customer.new("1", "John", "Wisdom Apartments, Ludhiya") cust2=Customer.new("2", "Poul", "New Empire road, Khandala")

ここでは、Customer クラスの2つのオブジェクト cust1 と cust2 を作成し、new メソッドに必要なパラメータを渡します。initialize メソッドが呼び出されると、オブジェクトの必要な属性が初期化されます。

オブジェクトが作成されたら、2つのオブジェクトを使用してクラスのメソッドを呼び出す必要があります。メソッドやデータメンバーを呼び出したい場合は、次のようにコードを記述できます:

cust1.display_details() cust1.total_no_of_customers()

オブジェクト名の後には常にドットが続き、その後にメソッド名またはデータメンバーが続きます。cust1 オブジェクトを使用して2つのメソッドを呼び出す方法を確認しました。cust2 オブジェクトを使用しても、次のように2つのメソッドを呼び出すことができます:

cust2.display_details() cust2.total_no_of_customers()

コードを保存して実行

次に、すべてのソースコードを main.rb ファイルに配置します。以下のようになります:

例

#!/usr/bin/ruby class Customer @@no_of_customers=0 def initialize(id, name, addr) @cust_id=id @cust_name=name @cust_addr=addr end def display_details() puts "Customer id #@cust_id" puts "Customer name #@cust_name" puts "Customer address #@cust_addr" end def total_no_of_customers() @@no_of_customers += 1 puts "Total number of customers: #@@no_of_customers" end end #オブジェクトを作成 cust1=Customer.new("1", "John", "Wisdom Apartments, Ludhiya") cust2=Customer.new("2", "Poul", "New Empire road, Khandala") #メソッドを呼び出し cust1.display_details() cust1.total_no_of_customers() cust2.display_details() cust2.total_no_of_customers()

試してみる »

次に、プログラムを実行します。以下のようになります:

$ ruby main.rb

これにより、次の結果が生成されます:

Customer id 1
Customer name John
Customer address Wisdom Apartments, Ludhiya
Total number of customers: 1
Customer id 2
Customer name Poul
Customer address New Empire road, Khandala
Total number of customers: 2
その他の拡張