Жаргон может быть немного запутанным, поскольку очень легко (и часто) быть неаккуратным.
class Foo { }
Foo f = new Foo();
Это определяет ссылочный тип Foo
, а следующая строка определяет ссылочную переменную f
, которая указывает на анонимный экземпляр (объект) Foo. Обратите внимание, что работа с объектом всегда включает две «вещи». Мы часто немного упрощаем, говоря: «f - это объект Foo», и хотя это практично, это не полная правда.
Несколько моментов, которые могут помочь:
- экземпляры (объекты) не имеют имени
- вы называете только ссылочные переменные
- вы не можете передать экземпляр (сам) в качестве параметра или возвращаемого значения
- вы не можете создавать массивы экземпляров
- это означает, что вы можете только передавать / копировать / хранить ссылки
- эти ссылки ведут себя точно так же, как типы значений (!)
Обратите внимание, что когда вы смотрите на interface
типы, то есть только эталонная половина, нет «экземпляров» интерфейсов.