Я не понимаю, что это должно делать ООП. ООП - это отправка сообщений, а puts "Goodbye!"
- это отправка сообщения. Он отправляет сообщение :puts
с единственным аргументом "Goodbye!"
на self
.
Действительно, не ООП - это строка 2, с которой у вас, похоже, нет проблем, поскольку строка 2 не является отправкой сообщения.
Давайте посмотрим на это с противоположной точки зрения: если бы содержимое тела класса было не выполнено, то как бы вы определили методы? Вы, очевидно, не удивлены тем, что строка 2 выполняется, так почему строка 6 должна трактоваться иначе? Это было бы ужасно противоречиво!