Когда я начал программирование OO много лет назад, у меня сложилось впечатление, что переменные (если это правильное слово) были либо «примитивами» (int, double, и т. Д.), Либо первоклассными объектами (String, JPane и т. Д.), , Это подкрепляется недавним ответом на примитивы в Java и C# (@ Daniel Pryden: Are primitive types different in Java and C#?). Однако не знаю, являются ли C# ValueTypes примитивами, объектами или другим зверьком, например объектами второго класса. Я вижу, что SO имеет только одно использование тега first-class
, поэтому, возможно, это уже не полезный термин.Что представляют собой объекты первого класса в Java и C#?
Я не нашел the Wikipedia article полезный («Эта статья нуждается в внимании от эксперта по данной теме»). Я был бы признателен за таксономию и текущее использование терминов, в первую очередь связанных с Java и C# (хотя, возможно, другие языки прольют просветление).
Разъяснение: Я хотел бы понять термин первого класса и что его диапазон использования есть.
** Резюме **: после 5 ответов (30 минут) картина кажется, что нет единого мнения о «первоклассном» (за исключением того, что здесь это не очень полезно) и что различие между примитивами и объектами в C# размыт (примитивы могут иметь методы). Так что теперь я не знаю, что такое «примитив»! Но я получаю более четкое представление о том, как отличаются 'int' C# и' int' Java. –
Я читал «Обучение Java» Патриком Нимейером, в котором он упоминает, что массивы являются истинными первоклассными объектами, и в этом вопросе https://stackoverflow.com/questions/245192/what-are-first-class-objects определение для заданы первоклассные объекты в python. Это верно и для java? –