Kes kelas ruby


Yang berikut akan mencipta kelas Ruby bernama Pelanggan dan mengisytiharkan dua kaedah:

  • display_details: Kaedah ini digunakan untuk memaparkan maklumat butiran pelanggan.

  • total_no_of_customers: Kaedah ini digunakan untuk memaparkan jumlah bilangan pelanggan yang dibuat dalam sistem. Kaedah

#!/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 mengandungi tiga penyata puts untuk memaparkan ID pelanggan, nama pelanggan dan alamat pelanggan. Antaranya, pernyataan puts:

puts "Customer id #@cust_id"

akan memaparkan teks id Pelanggan dan nilai pembolehubah @cust_id pada satu baris.

Apabila anda ingin memaparkan teks dan nilai pembolehubah contoh pada satu baris, anda perlu meletakkan simbol (#) di hadapan nama pembolehubah dalam pernyataan puts. Pembolehubah teks dan contoh dengan tanda (#) hendaklah ditandakan dengan petikan berganda.

Kaedah kedua, jumlah_tiada_pelanggan, mengandungi pembolehubah kelas @@no_pelanggan. Ungkapan @@no_of_ pelanggan+=1 meningkatkan pembolehubah no_pelanggan sebanyak 1 setiap kali kaedah jumlah_no_pelanggan dipanggil. Dengan cara ini anda akan mendapat jumlah bilangan pelanggan dalam pembolehubah kelas.

Sekarang cipta dua pelanggan seperti yang ditunjukkan di bawah:

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

Di sini kami telah mencipta dua objek kelas Pelanggan, cust1 dan cust2 dan menyerahkan parameter yang diperlukan kepada kaedah baharu. Apabila kaedah permulaan dipanggil, sifat-sifat yang diperlukan bagi objek akan dimulakan.

Setelah objek dibuat, anda perlu menggunakan dua objek untuk memanggil kaedah kelas. Jika anda ingin memanggil kaedah atau mana-mana ahli data, anda boleh menulis kod seperti ini:

cust1.display_details()
cust1.total_no_of_customers()

Nama objek sentiasa diikuti dengan noktah, diikuti dengan nama kaedah atau ahli data. Kami telah melihat cara memanggil dua kaedah menggunakan objek cust1. Menggunakan objek cust2, anda juga boleh memanggil dua kaedah seperti yang ditunjukkan di bawah:

cust2.display_details()
cust2.total_no_of_customers()

Simpan dan laksanakan kod

Sekarang, letakkan semua kod sumber dalam fail main.rb seperti yang ditunjukkan di bawah Paparan:

#!/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()


Seterusnya, jalankan program seperti yang ditunjukkan di bawah:

$ ruby main.rb

Ini akan menghasilkan keputusan berikut:

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