使い方は、だいたい以下のようになる。typedef struct { char *FirstName, *LastName, *PresentAddress; int BirthYear, BirthMonth, BirthDay, } Person;
ここで、名簿のデータから年齢を計算するような手続きはデータに何をどのように 入れるかによって決まってくるものであることに気づくと、Person の定義の 中にその手続きを入れた方がよいことがわかる。さらに、データのセットや 変更にもそれぞれ手続きを使うようにする。データとその操作法を記述した プログラムをひとまとめにしたものを、オブジェクトと呼び、オブジェクトの定義 を Class と呼ぶ。... Person Tsutomu = {"Tsutomu","Kikuchi","Akebono-cho, Kochi",1981,2,16}, Mariko = {"Mariko","Kikuchi","Akebono-cho, Kochi",1983,10,28}, Takashi = {"Takashi","Nakamura","Shobuzawa, Fujisawa",1978,8,18}; ... main() { ... printf("Age of %s is %d\n",Tsutomu.FirstName,AgeOf(&Tsutomu)) ... } ... int AgeOf(Person *person) { ... age=...- (person->BirthYear)... }
例:名簿(C++)
class Person { char FirstName[20], LastName[20], PresentAddress[40]; int BirthYear, BirthMonth, BirthDay; public: viod setFirstName(char aName[]); void setLastName(char aName[]); ... char* getFirstName(); int age(void); }; void Person::setFirstName(char *aName) { strcpy(FirstName,aName); } ... char* Person::getFirstName(void) { return ((char*)FirstName); } int Person::age(void) { int a; a = ... - BirthYear ...; return(a); } main() { Person Tsutomu,Mariko,Takashi; Tsutomu.setFirstName("Tsutomu"); ... cout << "Age of " << Tsutomu.getFirstName() << "is" << Tsutomu.age(); }
class で指定した名前の .class ファイルができることに注意。F:\home\papa\java>javac ex01.java F:\home\papa\java>java Hello Hello!
Applet プログラミングの例 (class の名前は .java ファイルの名前にする必要がある...らしい。)コンパイルと実行は、
Netscape でみることもできる。F:\home\papa\java>javac HelloApplet.java F:\home\papa\java>appletviewer Hello.html
CLASSPATH=.;g:\java\lib\classes.zip;c:\Program Files\Netscape\Navigator\Program\Java\classes PATH=G:\NETPBM\BIN;G:\JAVA\BIN;C:\PTEX\BIN;C:\DJGPP\BIN;C:\WINDOWS;C:\WINDOWS\COMMAND;C:\MWW\DLL;C:\MWD\MANAGER;C:\THINKPAD;のように PATH, CLASSPATH の設定をしておく必要があります。
その他の applet もさがして見よう。 プログラムの理解は必ずしもたやすくは 無いが、どこをどう変えると何が起こるか試してみると、Applet Programming の理解が進むであろう。