Ruby 클래스 및 객체
Ruby는 완벽한 객체 지향 프로그래밍 언어입니다. 객체지향 프로그래밍 언어의 특징은 다음과 같습니다:
데이터 캡슐화
데이터 추상화
다형성
상속
이러한 기능은 객체- 지향하는 루비.
객체 지향 프로그램에는 클래스와 객체가 포함됩니다. 클래스는 개별 객체 생성을 위한 청사진입니다. 객체 지향 측면에서 자전거는 Bicycle 클래스의 인스턴스입니다.
차량을 예로 들면 바퀴, 마력, 연료 또는 가스 탱크 용량이 포함됩니다. 이러한 속성은 Vehicle 클래스의 데이터 멤버를 구성합니다. 이러한 속성의 도움으로 한 차량을 다른 차량과 구별할 수 있습니다.
차량에는 정지, 운전, 과속과 같은 특정 기능이 포함될 수도 있습니다. 이러한 함수는 Vehicle 클래스의 데이터 멤버를 구성합니다. 따라서 속성과 함수의 조합으로 클래스를 정의할 수 있습니다.
차량 클래스는 다음과 같이 정의됩니다.
Class Vehicle { Number no_of_wheels Number horsepower Characters type_of_tank Number Capacity Function speeding { } Function driving { } Function halting { } }
이러한 데이터 멤버에 서로 다른 값을 할당하여 차량 클래스의 다양한 인스턴스를 생성할 수 있습니다. 예를 들어, 비행기에는 바퀴가 세 개 있고 출력이 1,000마력이며 연료 탱크 용량이 100리터입니다. 마찬가지로 자동차에는 바퀴가 4개 있고 출력이 200마력이며 연료 탱크 용량이 25리터입니다.
Ruby에서 클래스 정의
Ruby를 사용하여 객체 지향 프로그래밍을 구현하려면 먼저 Ruby에서 객체와 클래스를 만드는 방법을 배워야 합니다.
Ruby에서 클래스는 항상 class 키워드로 시작하고 그 뒤에 클래스 이름이 옵니다. 클래스 이름의 첫 글자는 대문자로 표기해야 합니다. Customer 클래스는 다음과 같습니다.
class Customer end
end 키워드를 사용하여 클래스를 종료할 수 있습니다. class의 모든 데이터 멤버는 클래스 정의와 end 키워드 사이에 있습니다.
Ruby 클래스의 변수
Ruby는 네 가지 유형의 변수를 제공합니다.
로컬 변수: 로컬 변수는 메서드에 정의된 변수입니다. 지역 변수는 메소드 외부에서 사용할 수 없습니다. 다음 장에서는 이 방법에 대한 자세한 내용을 볼 수 있습니다. 지역변수는 소문자나 _로 시작합니다.
인스턴스 변수: 인스턴스 변수는 객체의 특정 인스턴스나 메서드에서 사용할 수 있습니다. 이는 인스턴스 변수가 객체마다 변경될 수 있음을 의미합니다. 인스턴스 변수는 변수 이름 앞에 기호(@)를 배치합니다.
클래스 변수: 클래스 변수는 다양한 객체에 걸쳐 사용될 수 있습니다. 클래스 변수는 클래스에 속하며 클래스의 속성입니다. 클래스 변수는 변수 이름 앞에 기호(@@)를 배치합니다.
전역 변수: 클래스 변수는 클래스 간에 사용할 수 없습니다. 클래스 전체에서 사용할 수 있는 변수를 갖고 싶다면 전역 변수를 정의해야 합니다. 전역 변수는 항상 달러 기호($)로 시작합니다.
Instance
클래스 변수 @@no_of_customers를 이용하면 생성된 객체의 개수를 확인할 수 있으므로 고객의 개수를 확인할 수 있습니다.
class Customer @@no_of_customers=0 end
new 메소드
를 사용하여 Ruby에서 객체를 생성하세요. 객체는 클래스의 인스턴스입니다. 이제 Ruby에서 클래스 객체를 생성하는 방법을 배웁니다. Ruby에서는 클래스의 new 메서드를 사용하여 객체를 만듭니다.
메서드 new는 Ruby 라이브러리에 미리 정의된 고유한 메서드입니다. 새로운 메소드는 class 메소드에 속합니다.
다음 예에서는 Customer 클래스의 두 개체 cust1과 cust2를 만듭니다.
cust1 = Customer. new cust2 = Customer. new
여기에서 cust1과 cust2는 두 개체의 이름입니다. 객체 이름 뒤에는 등호(=), 클래스 이름, 도트 연산자 및 키워드 new가 옵니다.
Ruby 객체를 생성하는 사용자 정의 메서드
클래스 변수를 초기화하는 데 사용할 수 있는 new 메서드에 매개변수를 전달할 수 있습니다.
매개변수가 포함된 new 메소드를 선언하려면 클래스를 생성하는 동안 initialize 메소드를 선언해야 합니다.
initialize 메소드는 매개변수가 있는 클래스의 new 메소드가 호출될 때 실행되는 특별한 유형의 메소드입니다.
다음 예제에서는 초기화 메서드를 만듭니다.
class Customer @@no_of_customers=0 def initialize(id, name, addr) @cust_id=id @cust_name=name @cust_addr=addr end end
이 예제에서는 id, name, addr을 지역 변수로 사용하여 initialize 메서드를 선언할 수 있습니다. 여기서 def 및 end는 Ruby 메서드 initialize를 정의하는 데 사용됩니다. 다음 장에서는 이 방법에 대한 자세한 내용을 배우게 됩니다.
initialize 메소드에서 이러한 지역 변수의 값을 인스턴스 변수 @cust_id, @cust_name 및 @cust_addr에 전달합니다. 여기서는 지역 변수의 값이 새 메서드와 함께 전달됩니다.
이제 다음과 같은 개체를 만들 수 있습니다.
cust1=Customer.new("1", "John", "Wisdom Apartments, Ludhiya") cust2=Customer.new("2", "Poul", "New Empire road, Khandala")
Ruby 클래스의 멤버 함수
Ruby에서는 함수를 메서드라고 합니다. class의 각 메소드는 def 키워드로 시작하고 그 뒤에 메소드 이름이 옵니다.
메서드 이름은 항상 소문자로 시작합니다. Ruby에서는 end 키워드를 사용하여 메소드를 종료할 수 있습니다.
다음 예제에서는 Ruby 메서드를 정의합니다.
class Sample def function statement 1 statement 2 end end
여기에서 statement 1 및 statement 2는 Sample 클래스 내부의 function 메서드 본문의 일부입니다. 이러한 문은 유효한 Ruby 문일 수 있습니다. 예를 들어 puts 메소드를 사용하여 다음과 같이 Hello Ruby를 출력할 수 있습니다.
class Sample def hello puts "Hello Ruby!" end end
다음 예에서는 Sample 클래스의 객체를 생성하고 hello 메소드를 호출합니다.
#!/usr/bin/ruby class Sample def hello puts "Hello Ruby!" end end # 使用上面的类来创建对象 object = Sample. new object.hello
이 결과는 다음과 같습니다. :
Hello Ruby!
간단한 사례 연구
클래스와 객체를 사용하여 더 많은 연습을 하고 싶다면 다음 사례 연구를 참조하세요.
Ruby 클래스 사례