クラスとオブジェクトは、同義的に使用されることがありますが、これらは異なるものです。クラスはオブジェクトの型を定義しますが、オブジェクト自体ではありません。オブジェクトは、クラスに基づく具体的なエンティティであり、クラスのインスタンスと呼ばれることもあります。
オブジェクトを作成するには、次のように、new キーワードの後にオブジェクトの基になるクラスの名前を指定します。
Customer object1 = new Customer();
クラスのインスタンスを作成すると、そのオブジェクトへの参照が返されます。前の例の object1 は、Customer に基づくオブジェクトへの参照です。この参照は、新しいオブジェクトを参照しますが、オブジェクト データ自体を含みません。実際、オブジェクト参照は、オブジェクトを作成しなくても作成できます。次に例を示します。
上のような、オブジェクトを参照しないオブジェクト参照を作成するのはお勧めできません。実行時にこのような参照を通じてオブジェクトへのアクセスを試みると失敗するからです。ただし、新しいオブジェクトを作成するか、既存のオブジェクトに割り当てると、このような参照でオブジェクトを参照できるようになります。次に例を示します。
Customer object3 = new Customer();
Customer object4 = object3;
上のコードでは、同じオブジェクトを共に参照する 2 つのオブジェクトが作成されます。そのため、object3 を通じて行われたオブジェクトの変更は、その後、object4 を使用する際にも反映されます。これは、クラスに基づくオブジェクトが参照によって参照されるからです。このためクラスは参照型と呼ばれています。