Связь между классом и примитивными типами?

Я думал, что понимаю концепцию класса (объекта) класса, но, читая об этом в Java API, я нашел это:

Примитивные типы Java (boolean, byte, char, short, int, long, float и double) и ключевое слово void также представлены как объекты класса.


person misty    schedule 03.08.2016    source источник
comment
docs.oracle.com/javase/7/docs/ API/java/lang/Void.html The Void class is an uninstantiable placeholder class to hold a reference to the Class object representing the Java keyword void.   -  person Suresh Atta    schedule 03.08.2016
comment
docs.oracle.com/javase/8/ docs/api/java/lang/Integer.html#TYPE   -  person fabian    schedule 03.08.2016
comment
Что именно вас интересует? Я имел в виду, вы не понимаете, что такое объект и концепция класса ИЛИ классы примитивного типа?   -  person NawaMan    schedule 03.08.2016
comment
@NawaMan Я думаю, это классы примитивного типа. Когда я прочитал цитату выше, я подумал, что неправильно понял концепцию класса. Я не знал связи примитивных типов с классом.   -  person misty    schedule 03.08.2016
comment
@LazyLady Я рекомендую вам пересмотреть вопрос, чтобы отразить это. :-D   -  person NawaMan    schedule 03.08.2016
comment
@LazyLady ты читал мой ответ с примером? Ты все еще интересуешься? Не стесняйтесь спрашивать о более подробной информации - я объясню дальше, если это еще необходимо.   -  person xenteros    schedule 09.08.2016
comment
Да, я прочитал это, но я не думаю, что это мой ответ. Я знаю, что такое автобоксинг и исходящий бокс. Может быть, я просто не понимаю всего этого - вы можете объяснить это немного больше.   -  person misty    schedule 11.08.2016


Ответы (2)


Феномен на autoboxing и unboxing — это то, что вам нужно. В java есть некоторые примитивы для удобства. Все они имеют wrapper классов. Это: Integer, Double, Boolean и т. д.

Автоупаковка отвечает за перенос primitive в Wrapper каждый раз, когда ожидается Wrapper, но передается primitive. С другой стороны приходит распаковка. Когда это primitive ожидается, но Wrapper пройдено, распаковке удастся извлечь правильное значение.

Это хорошо описано здесь

Пример:

Integer one = new Integer(1);
int i = one.intValue();

void printInteger(int i) {
    System.out.println(i);
}

printInteger(one);

Никаких исключений не будет — one будет распакован в int и напечатан.

person xenteros    schedule 09.08.2016
comment
Это не про автобокс. Классы Integer и т. д. присутствовали с самого начала Java. Не только с тех пор, как был представлен автобокс. - person gsl; 09.08.2016
comment
@gsl Я могу согласиться, что дело не только только в автобоксе. Поскольку он был представлен java 1.5, мы все его используем. - person xenteros; 09.08.2016
comment
Это не отвечает на вопрос. ОП не ищет объяснения концепции автобоксинга ... скорее, они сбиты с толку основными конструкциями языка. - person Giorgi Tsiklauri; 02.10.2020

Разница в том, что примитивы — это просто зоны памяти, и когда вы используете ключи, вы сообщаете компилятору, как «видеть» эти области. В то время как соответствующие объекты, такие как Integer или Character, являются объектами, у которых есть методы для работы с этими типами, и они рассматриваются как объекты.

person P.Carlino    schedule 09.08.2016