Joel,
I feel you have a mess about types and objects (instances), and references. The class
Song
would be a type and not an object.the It should not be plural, according to the naming conventions. The class under this name is only one, but many instances can be created. You don't create "a new Songs (a class) thing". An example if the instance is
song
in the code by LanFanNinja. Now, this is a variable name, which is actually the reference to the actual object, and the type is the reference type. It means that if you did
Song song1 = new Song("first");
Song song2 = song1;
you would have two references referencing only one object created using the constructor.
If you copied, say, integer object in its natural (not boxed) form, you would have two different objects. If you change one of them, another one would remain the same. With reference objects, if you changed
song2
you would observe this change in
song1
as well, because
song2
and
song1
work like the same object; you consider these two variables as the names of the same thing.
—SA