[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[jfriends:00503] Perl のクラスメソッドとインスタンスメソッドの違い (Re: Java プログラマーのための Perl 入門 ?)



えんどうです。

> sub new() { # コンストラクタ
> (my $class, my @args) = @_; # @_ はこの new() に渡された引数が格納されている
> my $self = {"_weight"=>$args[0], "_height"=>$args[1] };
> bless $self, $class; # $class に $self を結びつける
> }
> 
> sub run() {
> print "This is running\n";
> }
> 
> sub eat() {
> print "This is eating\n";
> }

Perl におけるクラスメソッドとインスタンスメソッドの違いは、
「第1引数にクラス名が渡されることを期待するメソッド」と、
「第1引数にインスタンスの参照が渡されることを期待するメソッド」の
違いということで良いのでしょうか。

間違って(インスタンスメソッドにクラス名を渡したりして)呼び出しても
動作しちゃう、ということですよね?

間違って呼び出さないためには、
ドキュメントに書いておく?
それともネーミングルール? でしょうか。