2016-10-23 2 views
1

인스턴스 메소드에서 클래스 메소드를 호출하기위한 구문은 무엇입니까? 나는이 코드를 실행하면인스턴스 메소드의 루비 호출 클래스 메소드

class Class1 
    def initialize 
     #instance method 
     self.class.edit 
     puts "hello" 
    end 

    def self.edit 
     #class method 
     "ha" 
    end 
end 

c= Class1 

을 다음과 내가 가진 가정 , 나는 어떤 출력을 얻을 수 없습니다.

+0

'Class1.new'을 사용해보십시오. 'initialize'는 인스턴스 메소드이므로 Class1 인스턴스에서 호출해야합니다. 'Class1.new'는 인스턴스를 생성하고 인스턴스를 초기화 한 다음 인스턴스를 반환합니다. –

답변

3

그 결과로 아무 것도하지 않고 실제로 new으로 인스턴스를 만들지 않으므로 아무 출력도 얻지 못하면 c을 해당 클래스의 별칭으로 만 설정하면됩니다. 조금 변경하면 다음과 같이 표시됩니다.

class Class1 
    def initialize 
     #instance method 
     puts self.class.edit 
    end 

    def self.edit 
     #class method 
     "ha" 
    end 
end 

c= Class1.new 
관련 문제