Чем отличается private_class_method от private?

Чем отличается private_class_method от private?
если заменить 10 строку на private :new то выдает ошибку `private': undefined method `new' for class `Point3D'
class Point3D < Point
	def initialize(x, y, z)
		super(x, y)
		@z = z
	end
	def self.fabric(x,y,z)
		new(x,y,z)
	end
	private_class_method :new  # если заменить на  private :new
end

po1 = Point3D.fabric 4,6,5
p po1
  • Вопрос задан
  • 2609 просмотров
Пригласить эксперта
Ответы на вопрос 1
@j_wayne
apidock.com/ruby/Module/private_class_method

private_class_method делает приватным метод класса (странно, не правда ли?)
private с аргументом - метод объекта (instance method)

Ошибка вполне резонна - в классе Point3D нет такого instance метода, только метод класса.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы