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의 클래스, 생성 방법 및 유용한 이유에 대해 배웠습니다!
더 많은 사람들이 즐길 수 있도록 이 기사를 공유하는 것을 잊지 마세요.
읽어주셔서 감사합니다.