Когда я начал программировать ОО много лет назад, у меня сложилось впечатление, что переменные (если это правильное слово) были либо "примитивами" (int, double и т.д.), Либо первоклассными объектами (String, JPane и т.д.). Это подтверждается недавним ответом на примитивы в Java и С# (@Daniel Pryden: Отличаются ли типы примитивов в Java и С#?). Однако не знаю, являются ли С# ValueTypes примитивами, объектами или какими-то другими зверями, такими как объекты второго класса. Я вижу, что SO использует только один тег first-class
, поэтому, возможно, он больше не является полезным термином.
Я не нашел статью в Википедии полезной ("Эта статья нуждается во внимании эксперта по этому вопросу"). Я был бы благодарен за таксономию и текущее использование терминов, в основном связанных с Java и С# (хотя, возможно, другие языки потеряют просветление).
Уточнение: я хотел бы понять термин "первоклассный" и его диапазон использования.