과 같이 인스턴스 메서드라고 하는 한 가지 유형이 객체의 클래스에 정의되어 있습니다.
으아악
그러면 Category 인스턴스는 이 메서드를 호출할 수 있지만 Category 자체는 호출할 수 없습니다.
으아악
또 다른 유형은 싱글턴 메서드라고 하는데, 이는 해당 개체의 클래스나 해당 개체와 동일한 클래스에 속하는 다른 개체가 아닌 하나의 개체에서만 호출할 수 있습니다. 싱글턴 방식은 다음과 같이 정의됩니다
으아악
이 정의 이후에는 Category1 객체만 last_updated_at 메소드를 호출할 수 있습니다
으아악
Ruby 클래스도 객체이며
와 같은 자체 싱글톤 메서드를 정의할 수도 있습니다.
으아악
이런 방식으로 Category만 last_updated_at 메서드를 호출할 수 있지만 해당 인스턴스나 다른 클래스, 다른 객체는 호출할 수 없습니다.
으아악
Category 클래스의 정의 내(메서드 외부)에서 self는 Category 자체를 참조하므로
으아악
은
로 대체 가능
으아악
귀하의 질문에 정의된 방법입니다. 이제 이해가 되셨나요? 본질적으로 Category의 싱글턴 메서드이고 Category는 클래스입니다. 클래스의 싱글턴 메서드는 클래스의 클래스 메서드라고도 하며 클래스 자체에서만 호출할 수 있습니다.
클래스 메소드는 싱글톤 메소드이지만, 그 외에는 특별한 것이 없다는 점에 유의해야 합니다. 인스턴스 메소드가 객체가 속한 클래스에 의해 유지되는 것처럼, 싱글톤 메소드도 객체의 고유 클래스에 의해 유지됩니다. 고유클래스에 대해서는 더 많은 지식이 있으므로 여기서는 언급하지 않겠습니다. 기사에서 이에 대해 이야기하겠습니다.
self
은 현재 클래스를 가리키므로 이 정의 메서드는 클래스 메서드를 정의합니다.self.
을 추가하지 않으면 인스턴스 메서드가 정의됩니다.이러한 작성 방법
과 같습니다. 으아악self.
은 귀하의 예에서루비 객체가 호출할 수 있는 메소드에는 두 가지 유형이 있습니다.
과 같이 인스턴스 메서드라고 하는 한 가지 유형이 객체의 클래스에 정의되어 있습니다. 으아악그러면 Category 인스턴스는 이 메서드를 호출할 수 있지만 Category 자체는 호출할 수 없습니다.
으아악또 다른 유형은 싱글턴 메서드라고 하는데, 이는 해당 개체의 클래스나 해당 개체와 동일한 클래스에 속하는 다른 개체가 아닌 하나의 개체에서만 호출할 수 있습니다. 싱글턴 방식은 다음과 같이 정의됩니다
으아악이 정의 이후에는 Category1 객체만 last_updated_at 메소드를 호출할 수 있습니다
으아악Ruby 클래스도 객체이며
와 같은 자체 싱글톤 메서드를 정의할 수도 있습니다. 으아악이런 방식으로 Category만 last_updated_at 메서드를 호출할 수 있지만 해당 인스턴스나 다른 클래스, 다른 객체는 호출할 수 없습니다.
으아악Category 클래스의 정의 내(메서드 외부)에서 self는 Category 자체를 참조하므로
으아악은
로 대체 가능 으아악귀하의 질문에 정의된 방법입니다. 이제 이해가 되셨나요? 본질적으로 Category의 싱글턴 메서드이고 Category는 클래스입니다. 클래스의 싱글턴 메서드는 클래스의 클래스 메서드라고도 하며 클래스 자체에서만 호출할 수 있습니다.
클래스 메소드는 싱글톤 메소드이지만, 그 외에는 특별한 것이 없다는 점에 유의해야 합니다. 인스턴스 메소드가 객체가 속한 클래스에 의해 유지되는 것처럼, 싱글톤 메소드도 객체의 고유 클래스에 의해 유지됩니다. 고유클래스에 대해서는 더 많은 지식이 있으므로 여기서는 언급하지 않겠습니다. 기사에서 이에 대해 이야기하겠습니다.
클래스 메서드를 정의하려면 self를 추가하세요. 그렇지 않으면 인스턴스 메서드가 됩니다
클래스 메소드 정의도
으아악