Является ли int объектом в Java? - PullRequest
9 голосов
/ 09 октября 2011

Точнее, является ли int частью класса Integer (урезанная версия или что-то в этом роде) или это что-то совсем другое?

Мне известно, что int является типом значения, а Integer ссылочным типом,но наследует ли int от Object в любом случае?

(я предполагаю, что в этом отношении int, long, boolean и т. д. все похожи. int просто выбран для удобства)

Ответы [ 4 ]

17 голосов
/ 09 октября 2011

С «Примитивные типы данных» : «Примитивные типы - это специальные типы данных, встроенные в язык; они не являются объектами, созданными из класса».Это, в свою очередь, означает, что нет, int никак не наследуется от java.lang.Object, потому что это делают только «объекты, созданные из класса».Рассмотрим:

int x = 5;

Чтобы вещь с именем x наследовала от Object, эта вещь должна иметь тип.Обратите внимание, что я различаю x и то, что оно называет.x имеет тип, который является int, но вещь с именем x является значением 5, которое не имеет типа само по себе.Это не что иное, как последовательность битов, которая представляет целое значение «5».Для сравнения рассмотрим:

java.lang.Number y = new java.lang.Integer(5);

В этом случае y имеет тип Number, а вещь с именем y имеет тип Integer.Объект с именем y является объектом.Он имеет отдельный тип независимо от y или чего-либо еще.

16 голосов
/ 09 октября 2011
  • Базовые типы в Java не являются объектами и не наследуются от Object.

  • С тех пор как в Java 1.5 появилась возможность автоматического бокса между int и Integer (идругие типы).

  • Поскольку целые не являются объектами, которые нельзя использовать в качестве параметров универсального типа, например T in list<T>

1 голос
/ 09 октября 2011

Если вы говорите о Integer:

Класс Integer оборачивает значение примитивного типа int в объекте. Объект типа Integer содержит одно поле, тип которого int.

Кроме того, этот класс предоставляет несколько методов для преобразования int в String и String в int, а также другие константы и методы, полезные при работе с int.

int - это не объект, а примитивный тип.

0 голосов
/ 09 октября 2011

Примитивные типы не являются объектами, но хранятся непосредственно в любом контексте, в котором они необходимы. Если с ними нужно обращаться как с объектом, их можно заключить в целое число.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...