F450

2004年12月18日の日記 ‣ Perlでオブジェクト指向

古いデータが多く含まれているため、デッドリンクがあったり記事等を正しく表示できなかったりする可能性があります。また、これらの日記に対する新たなコメントやトラックバックは受け付けていません。予めご了承下さい。
2004年12月18日(土)の日記

Perlでオブジェクト指向

Perlでオブジェクト指向〜メモ〜
────────────────────
Perlで親クラスを指定しないクラスを宣言した場合は、それはUNIVERSALというクラスの子クラスとなる。
UNIVERSALにおいては、isa()という関数が定義されていて、CocoaのNSObjectでいう-(BOOL)isKindOfClass:(Class)aClassと同じ。
-(BOOL)isMemberOfClass:(Class)aClassは自分で実装する必要がある(?)。
─────
あるクラスのインスタンスにあるメソッドが送信されても、そのクラスにそのメソッドが定義されていないとき、
親クラスにメソッドを渡す前にそのインスタンスにAUTOLOADというメソッドがコールされる。
これによって簡易アクセッサメソッドを構築可能。
例:

package OneClass;
use strict;
sub new {
my $self = shift;
my $variable0 = shift;
my $variable1 = shift;
bless {'key0' => $variable0, 'key1' => $variable1}, $self;
}
sub AUTOLOAD {
my $self = shift;
my $method = $AUTOLOAD;
$method =~ s/.*://;
return if ($method eq 'DESTROY');
return $self->{$method};
}
1;

これで例えば、$obj = OneClass->new(0, 1); $obj->key0;で、インスタンス変数key0を呼ぶことができる。
────────────────────
2004/12/19(日) 10:48:36 (JST)

この日記へのコメント

この日記へのコメントはありません。

この日記へのトラックバック

この日記へのトラックバックはありません。