読み込み中...Now loading...

このサイトではCSS, JavaScriptを有効にする必要があります。
推奨ブラウザ: Safari 2.0以上。
動作確認ブラウザ: FireFox 2.0, Opera 9.01 (どれもMac OS X上)
読み込みが完了しても、このメッセージが表示されている場合は、CSSとJavaScriptを有効にしてリロードして下さい。
・
ようこそ「ひあるび日記 - 20041218」へ
・
・
ひあるび日記

翌年|
前月|翌月|
前日|翌日
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を呼ぶことができる。
────────────────────

コメント
現在この日記へのコメントはありません。一番乗りしますか?

お名前
メールアドレス(※メールアドレスは公開されません)
URL
コメント

トラックバック
トラックバックURL:
http://yockow.net/-/trackback/20041218

現在この日記へのトラックバックはありません。一番乗りしますか?
「来たよ。」ボタン
?
close
管理人に空メールを送るためのボタン。
つまりはデジタルピンポンダッシュ。
管理人にメールを送るまでではないが、
サイトに訪問した足跡を残したい時に使えます。
・
ロールちゃん
・
PR
・
close
・
Google Searchは、JavaScriptを有効にする必要があります。
x!
警告
警告文