![]() |
[1999 年 2 月号] |
[Happy Squeaking!!]
2.Squeak演習:クラスの継承関係作成
2.2 Humanクラスの作成
今回は、Human、Employeeの二つのクラスを作成しますので、クラスブラウザではなく、システムブラウザを起動します。
(メインのポップアップメニューから、"open.."
-> "browser"で立ち上がります。)
システムブラウザの起動
基本的な操作なクラスブラウザと同じです。
左上には、クラスカテゴリがリストされています。今回はリストの最後尾に、CompanyApplicationというクラスカテゴリを追加することにします。
左上の部分でカテゴリリストを何も選択していない状態のままポップアップメニューを出し、"add item…"を選択します。カテゴリ名を聞かれるので、CompanyApplicationと入力すると、新たなクラスカテゴリが追加できます。
追加されたCompanyApplicationカテゴリ
カテゴリリストを選択した状態で上記の操作を行ってしまった場合には、リストの最後ではなくリストの選択した位置にカテゴリが追加されてしまいます。
途中に追加されてしまったComapanyApplicationカテゴリ
これでは見栄えが悪いので、その場合にはカテゴリリストのポップアップメニューから "reorganize"を選択して位置を調節してください。
"reorganize"によるクラスカテゴリ位置の調節
間に入ってしまっている"CompanyApplication"の部分を選択し、最後尾にカット・ペーストして、"accept"します。
reorganize"によるクラスカテゴリ位置の調節(2)
クラスカテゴリの並びかえは、今後、Squeakを使い込んで自分で定義したカテゴリが増えてきた場合、必ず必要になりますので覚えておきましょう。
次にCompanyApplicationクラスカテゴリ下にHumanクラスを作成することにします。
クラスカテゴリを新規作成すると、ブラウザの下部には、クラス作成用のテンプレートか表示されています。
Object subclass: #NameOfClass instanceVariableNames: 'instVarName1 instVarName2' classVariableNames: 'ClassVarName1 ClassVarName2' poolDictionaries: '' category: 'CompanyApplication'
このテンプレートを以下のように書き換えます。
Object subclass: #Human instanceVariableNames: 'name ' classVariableNames: '' poolDictionaries: '' category: 'CompanyApplication'
ブラウザ下部のポップアップメニューの"acept"で、Humanクラスが実際にシステムに登録されます。
作成されたHumanクラス
あとは前回と同様に、メッセージカテゴリ "accessing"を追加して、getName、setName: aNewName の二つのメソッドを追加してください。
それぞれの実装は以下のようになります。
HumanクラスのgetNameメソッド getName ^name
HumanクラスのsetName: メソッド setName: aNewName name := aNewName
© 1999-2001 OGIS-RI Co., Ltd. |
|