Тип объекта в Java - PullRequest
       3

Тип объекта в Java

0 голосов
/ 11 июля 2010

Я узнал, что Java не является языком 100% ООП, и это из-за типов данных, которые не являются объектами. Но, по моему мнению, int относится к типу Integer, а Integer принадлежит Number, а Number относится к Object. Так что Java - это 100% ООП язык. Я прав?

Ответы [ 3 ]

10 голосов
/ 11 июля 2010

Нет, int и Integer различны.Integer - это обычный класс, который, как вы знаете, является подклассом Number, который сам является подклассом Object.Но int - это примитивный тип.Это не класс, поэтому, очевидно, не подкласс чего-либо;у него нет методов или атрибутов, и, как правило, вы ничего не можете сделать с самим int, кроме объявления переменных этого типа, например,

int x = 3;

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

Обратите внимание, что компилятор Java (последние версии) автоматически вставит код впреобразовать int в Integer или наоборот, если это необходимо.Так что может выглядеть как будто это одно и то же, когда вы пишете свою программу, но на самом деле это не так.Например, если вы напишите

Integer y = 5;

javac, это преобразуется в

Integer y = Integer.valueOf(5);

или

Map<Integer,Integer> m = ...;
m.put(4, 8);
int z = m.get(4);

становится

Map<Integer,Integer> m = ...;
m.put(Integer.valueOf(4), Integer.valueOf(8));
int z = m.get(Integer.valueOf(4)).intValue();
1 голос
/ 11 июля 2010

Чтобы добавить к предыдущим ответам (которые, я думаю, возможно, немного упустили из виду) - да, int и Integer - это два совершенно разных (но связанных) понятия - одно примитивное, другое эквивалентноеучебный класс.Что еще более важно, это различие не имеет абсолютно никакого отношения к тому, является ли Java объектно-ориентированным языком.1007 * параметр для вашего main метода).Таким образом, Java однозначно является объектно-ориентированным языком просто потому, что он опирается на классы в качестве основного средства разработки программ.Тот факт, что он поддерживает необъективные примитивные типы, вообще не имеет к этому никакого отношения.

1 голос
/ 11 июля 2010

int не является объектом класса Integer. В Java не все типы данных являются объектами.

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