typedef struct {
char *FirstName,
*LastName,
*PresentAddress;
int BirthYear,
BirthMonth,
BirthDay,
} Person;
使い方は、だいたい以下のようになる。
...
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)...
}
ここで、名簿のデータから年齢を計算するような手続きはデータに何をどのように
入れるかによって決まってくるものであることに気づくと、Person の定義の
中にその手続きを入れた方がよいことがわかる。さらに、データのセットや
変更にもそれぞれ手続きを使うようにする。データとその操作法を記述した
プログラムをひとまとめにしたものを、オブジェクトと呼び、オブジェクトの定義
を Class と呼ぶ。
例:名簿(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 の理解が進むであろう。