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 メソッドには、顧客 ID、顧客名、顧客住所を表示する 3 つの put ステートメントが含まれています。その中で、puts ステートメント:

puts "Customer id #@cust_id"

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

インスタンス変数のテキストと値を 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 を作成し、必要なパラメーターを新しいメソッドに渡しています。初期化メソッドが呼び出されると、オブジェクトの必要なプロパティが初期化されます。

オブジェクトが作成されたら、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