루비 클래스 케이스


다음은 Customer라는 Ruby 클래스를 생성하고 두 가지 메서드를 선언합니다.

  • 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, 고객 이름 및 고객 주소를 표시하는 세 개의 puts 문이 포함되어 있습니다. 그 중 puts 문:

puts "Customer id #@cust_id"

은 Customer id라는 텍스트와 @cust_id 변수의 값을 한 줄에 표시합니다.

인스턴스 변수의 텍스트와 값을 한 줄에 표시하려면 puts 문에서 변수 이름 앞에 기호(#)를 넣어야 합니다. 기호(#)가 있는 텍스트 및 인스턴스 변수는 큰따옴표로 표시해야 합니다.

두 번째 메소드인 total_no_of_customers에는 @@no_of_customers 클래스 변수가 포함되어 있습니다. 표현식 @@no_of_ customer+=1은 total_no_of_customers 메소드가 호출될 때마다 변수 no_of_customers를 1씩 증가시킵니다. 이런 방식으로 클래스 변수의 총 고객 수를 얻을 수 있습니다.

이제 아래와 같이 두 명의 고객을 생성합니다.

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

여기서 Customer 클래스의 두 객체인 cust1과 cust2를 생성하고 필요한 매개변수를 새 메소드에 전달했습니다. 초기화 메소드가 호출되면 객체의 필수 속성이 초기화됩니다.

객체가 생성되면 두 객체를 사용하여 클래스의 메서드를 호출해야 합니다. 메서드나 데이터 멤버를 호출하려면 다음과 같이 코드를 작성할 수 있습니다.

cust1.display_details()
cust1.total_no_of_customers()

객체 이름 뒤에는 항상 마침표가 오고 그 뒤에 메서드 이름이나 데이터 멤버가 옵니다. 우리는 cust1 개체를 사용하여 두 가지 메서드를 호출하는 방법을 살펴보았습니다. cust2 객체를 사용하면 다음과 같이 두 가지 메서드를 호출할 수도 있습니다.

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