Computer >> 컴퓨터 >  >> 프로그램 작성 >> Ruby

Ruby에서 자신만의 클래스를 작성하는 방법(명확하게 설명됨)

Ruby에서 클래스란 무엇입니까?

클래스는 객체 지향 프로그래밍(OOP)의 기본 빌딩 블록이며 객체 생성을 위한 청사진을 정의하는 데 도움이 됩니다.

객체는 클래스의 제품입니다. .

그렇다면 개체란 무엇입니까?

개체는 고유한 ID와 데이터가 있는 개별 "사물"입니다.

예를 들어 :

Book 수업은 책을 만들기 위한 청사진이 될 수 있습니다.

이 클래스는 다음과 같이 모든 책의 공통 속성을 정의합니다.

  • 제목
  • 작가
  • 페이지

모든 개별 책은 하나의 개체이며 Book 덕분에 많은 개체를 만들 수 있습니다. 수업. 이것이 바로 클래스를 만드는 요점이며 Ruby 애플리케이션을 위한 재사용 가능한 청사진입니다.

지금 :

오늘, OOP 코드 작성을 시작할 수 있도록 자신의 클래스를 작성하는 방법을 배우게 될 것입니다.

루비 클래스를 만드는 방법

클래스 생성 구문은 다음과 같습니다.

class Orange
end

주의 :

  • 클래스 이름은 대문자로 시작
  • 우리는 class를 사용합니다. 키워드, end 키워드
  • 빈 클래스는 그다지 유용하지 않지만 여전히 개체를 만들 수 있습니다.

클래스를 만드는 다른 방법이 있습니다(예:Class.new ) 하지만 이러한 방법은 특수한 상황에서만 유용합니다.

하나의 클래스, 많은 개체

클래스의 주요 용도는 메서드, 인스턴스 변수 및 상수의 컨테이너가 되어 객체를 생성할 수 있는 청사진을 형성하는 것입니다.

new를 사용하여 개체를 만들 수 있습니다. 방법.

좋아요 :

Orange.new

우리는 객체를 생성하는 과정을 "인스턴스화"라고 알고 있으며, 객체는 클래스의 "인스턴스"라고 말합니다.

개체를 만드는 이유는 무엇입니까?

생성하는 모든 개체는 다르고 고유하기 때문에 .

모든 개체에는 고유한 ID가 있습니다.

예를 들어 :

Orange 클래스, 모든 Orange 생성한 개체에는 고유한 무게가 있으며 원산지, 품질 등이 있습니다.

루비 클래스를 더 유용하게 만들기

클래스에 인스턴스 메소드 및 인스턴스 변수를 추가하기 시작하면 클래스가 더욱 유용해집니다.

메소드는 클래스에서 수행할 수 있는 작업입니다.

예를 들어 :

오렌지를 짜서 주스를 얻을 수 있습니다.

다음은 코드 예입니다. :

class Orange
  def squeeze
    puts "Here's your juice!"
  end
end

orange = Orange.new
orange.squeeze

이 메서드는 개체에 대한 명령이 됩니다!

모든 Orange 생성한 개체는 이 squeeze에 액세스할 수 있습니다. 방법 및 클래스 사용의 이점 중 하나입니다.

인스턴스 변수 반이 알고 있는 것 .

예:

class Orange
  def initialize
    @juice_available = 100
  end

  def squeeze
    @juice_available -= 50
  end
end

인스턴스 변수는 @로 시작하기 때문에 지역 변수와 다릅니다. 상징. attr_accessor를 정의하지 않으면 클래스 외부에서 액세스할 수 없습니다.

어떤 클래스인가요?

Ruby에서 객체로 작업할 때 객체가 어떤 클래스로 만들어졌는지 아는 것이 도움이 됩니다.

이렇게 하면 됩니다 :

"".class
# String

[].class
# Array

orange.class
# Orange (assuming orange = Orange.new)

이것이 유용한 이유는 무엇입니까?

메소드는 Ruby에서 모든 것을 가능하게 하는 작은 엔진입니다.

클래스를 알고 있다면 사용 가능한 메소드를 찾을 수 있습니다(Google, ri 사용 , 또는 pry ), 즉 개체가 당신을 위해 무엇을 할 수 있는지 발견할 수 있습니다!

수업에 대해 자세히 알아보기

이것은 수업에 관한 "빙산의 일각"에 불과합니다.

더 알고 싶다면…

읽기 :

  • 루비 초기화 방법
  • Attr_accessor, attr_reader, attr_writer
  • OOP의 상속
  • 객체 지향 프로그래밍

Btw 클래스 자체도 적어도 Ruby에서는 객체입니다 🙂

요약

Ruby의 클래스, 생성 방법 및 유용한 이유에 대해 배웠습니다!

더 많은 사람들이 즐길 수 있도록 이 기사를 공유하는 것을 잊지 마세요.

읽어주셔서 감사합니다.