同一类中方法的调用问题

同一类中方法的调用问题

有这样的代码:

class Test

    def self.say_hello
        puts 'hello, world!'
    end

    def test
        Test.say_hello
    end

end

代码里通过 Test.say_hello 来调用同一个类的一个“静态方法”,有什么办法可以省略掉前面的类名么?毕竟是在同一个类中。
并不是在同一个“类”中,前者在Class类的实例中,而后者在须在Test类的实例中调用,所以没办法去。
类方法和实例方法的区别,还有一点要提醒楼主的是:以后不要在类中重复书写类名,如果碰到修改类名的情况会很麻烦

[Copy to clipboard] [ - ]
2楼已经说得很清楚了,类方法与实例方法的不同,是不能随便简写的。
谢谢大家的解答!

形式上我就是要达到 Hozaka 给出的代码这样的效果。

> 并不是在同一个“类”中,前者在Class类的实例中,而后者在须在Test类的实例中调用,所以没办法去。

> 2楼已经说得很清楚了,类方法与实例方法的不同,是不能随便简写的。

还是不太明白。希望能再给我解答一下。
看错楼层,误导了,不好意思。
>类方法和实例方法的区别,还有一点要提醒楼主的是:以后不要在类中重复书写类名,如>果碰到修改类名的情况会很麻烦
虽然是在同一个类Test中,self.say_hello定义的一是个类方法,而test则定义的是一个实例方法。对一个特定对象来说,每个对象都会有一个test方法的一份拷贝,他们是相互隔离互不影响的;而类方法则是所有类成员可以共享操作的方法。你经常用的new,实际就是一个类方法,它不依赖于任何特定的对象,而是与类相关,这样说你能明白了吗?
lz是否想写类似如下的代码?我用java来理解的...初学ruby..

[Copy to clipboard] [ - ]
谢谢。

我写过很多 java 的代码,对于 pinemail 所讲的,是明白的(即 class method 与 instance method 的区别)。

因为在 java 代码中,我可以像 sonyfe25cp 所给的代码那样写代码,非常“精简”,所以想问有没有比较精简的写法(即 hozaka 给出的写法)。

再次感谢!