間違っている点もあるかもしれませんが、理解が進めば幸いです。
1.クラス型の変数とは何かを
そのままなのですが、Classで定義されているものを変数として定義していることなのではないでしょうか。
何をクラスと言うかによりますけど、例えば、
int型の変数
Person クラスの変数
java
1class Person {
2 int name;
3 int age;
4};
5
6Person Tom;
とかを比較すると、Person クラスのTomが、クラス型の変数な気がしますよね。
2.フィールドにインスタンスを持つこと!とは何か?
java
1Class Man {
2Person owner;
3
4}
と定義すると、Manクラスの中に、Person クラスのownerを持つことになります。Class Manを使った時点で、Person クラスのownerがインスタンス化されると思えばいいと思います。
3.クラス型のフィールドは、なんのため、何に使うためににあるのでしょうか?
例えば、Personクラスを定義したとして、
Person クラスの変数
java
1class Person {
2 int name;
3 int age;
4};
Manクラスのフィールドとして、Personクラスを含めるとします。
そうすると、
class Man {
bool is_man;
Person owner;
};
と、こんな感じで定義しますが、フィールドにクラスを含めないと、
class Man {
bool is_man;
int name;
int age;
};
と、こんな感じになります。ただ、この実装の中で、Personクラスが定義されていると、Manクラスと、Personクラスが似ているので、あまりよろしくない感じがすると思います。
似たものをまとめという点で、Manクラス内に、Personクラスを定義したほうがすっきります。すっきりさせるために使うのだと思います。