|
1 / 3 / 0
Регистрация: 26.09.2015
Сообщений: 275
|
|||||||||||||||||||||
Массив объектов java как инициализировать коротко?07.05.2016, 23:24. Показов 9899. Ответов 28
Метки нет (Все метки)
я недавно начал изучать java. до этого около года учу с++.
возникла сложность с массивом объектов в java. я создаю такой код описан внизу. возникает сложность инициализацией, где мне нужно еще инициализировать массив через цикл for. есть более простой способ инициализировать массив объектов, похожий на с++ или хотя бы без цикла for. я учу по книге " герберта шилда полное руководство java 8 " и нахожусь 198 стр, но я пока не встретил описания по созданию массивов собственных классов. спасибо заранее за помощь. если можете, то посоветуйте заодно книги по java на русском, желательно java 8
я пробовал так
а мне нужно без цикла for
0
|
|||||||||||||||||||||
| 07.05.2016, 23:24 | |
|
Ответы с готовыми решениями:
28
Создать динамический массив объектов, инициализировать его Как коротко ссылаться на массив? |
|
22 / 22 / 2
Регистрация: 01.05.2016
Сообщений: 42
|
|
| 07.05.2016, 23:29 | |
|
Для объектов предназначены коллекции, копайте в этом направлении.
1
|
|
|
1 / 3 / 0
Регистрация: 26.09.2015
Сообщений: 275
|
|
| 07.05.2016, 23:32 [ТС] | |
|
а здесь нет методов похожих на с++
Добавлено через 1 минуту я кстати заметил, с++ очень сильно отличается от java. хоть и говорят про то что с с++ легко перейти на java, но на самом деле, это только больше путает.
0
|
|
|
22 / 22 / 2
Регистрация: 01.05.2016
Сообщений: 42
|
|
| 07.05.2016, 23:40 | |
|
Ваш код очень странный, можно пользоваться и просто массивами, но лучше коллекциями. Почитайте для начала Java Learning авторы(Бейтс и Сьерра) доступно объясняют.
1
|
|
|
Вежливость-главное оружие
233 / 234 / 86
Регистрация: 19.02.2013
Сообщений: 1,446
|
||||||||||
| 07.05.2016, 23:42 | ||||||||||
1
|
||||||||||
|
22 / 22 / 2
Регистрация: 01.05.2016
Сообщений: 42
|
||||||
| 07.05.2016, 23:44 | ||||||
1
|
||||||
|
1 / 3 / 0
Регистрация: 26.09.2015
Сообщений: 275
|
||||||||||||||||||||||||||
| 07.05.2016, 23:51 [ТС] | ||||||||||||||||||||||||||
так как сначала я должен сделать: [JAVA]
0
|
||||||||||||||||||||||||||
|
22 / 22 / 2
Регистрация: 01.05.2016
Сообщений: 42
|
|||||||
| 07.05.2016, 23:59 | |||||||
|
Добавлено через 1 минуту
1
|
|||||||
|
1 / 3 / 0
Регистрация: 26.09.2015
Сообщений: 275
|
|
| 08.05.2016, 00:00 [ТС] | |
|
в этой строке я создаю указатель на массив объектов. где их 10
0
|
|
|
22 / 22 / 2
Регистрация: 01.05.2016
Сообщений: 42
|
|
| 08.05.2016, 00:03 | |
|
Вот именно, далее в с++ вы бы заполняли массив также по циклу, либо вручную:
model[0] = new Models(param1, param2); model[1] = new Models(param1, param2); ... model[n] = new Models(param1, param2);
1
|
|
|
1 / 3 / 0
Регистрация: 26.09.2015
Сообщений: 275
|
|
| 08.05.2016, 00:03 [ТС] | |
|
Хотя в java можно так
Int model [ ] = new int [10]; И не надо заполнять
0
|
|
|
22 / 22 / 2
Регистрация: 01.05.2016
Сообщений: 42
|
|
| 08.05.2016, 00:05 | |
|
Где это Вы такое вычитали?
1
|
|
|
1 / 3 / 0
Регистрация: 26.09.2015
Сообщений: 275
|
||||||
| 08.05.2016, 00:06 [ТС] | ||||||
|
В с++ мне бы вообще не пришлось заполнять
Я там мог сразу
У герберт шилда Добавлено через 21 секунду Я даже такое проделал могу скинуть код
0
|
||||||
|
22 / 22 / 2
Регистрация: 01.05.2016
Сообщений: 42
|
||
| 08.05.2016, 00:10 | ||
|
1
|
||
|
1 / 3 / 0
Регистрация: 26.09.2015
Сообщений: 275
|
|
| 08.05.2016, 00:15 [ТС] | |
|
Такой синтаксис в с++ используется.
Добавлено через 3 минуты Age это просто переменная. И не надо Делать так For (int i= 0; i < 10; i++) model [i] = new Models ();
0
|
|
|
22 / 22 / 2
Регистрация: 01.05.2016
Сообщений: 42
|
|
| 08.05.2016, 00:21 | |
|
В Java тоже можно так обратиться к переменной age определив ее как public, НО такого человека повесят за такой подход, который убивают всю инкапсуляцию.
1
|
|
|
155 / 154 / 53
Регистрация: 30.04.2016
Сообщений: 321
|
|
| 08.05.2016, 00:33 | |
|
А расскажите, если у вас в C++ в классе отсутствует конструктор без аргументов вы же не сможете таким же образом инициализировать его, ведь так? И память освобождать вручную приходится...
Языки-то разные, хоть и похожие. В С++ конструктор будет вызываться сам при таком создании массива, в Java по умолчанию всем элементам присвоится null. Хотите удобств, используйте List.
1
|
|
|
1 / 3 / 0
Регистрация: 26.09.2015
Сообщений: 275
|
|||||||||||
| 08.05.2016, 00:54 [ТС] | |||||||||||
|
Это я тоже знаю) я использую методы. Но суть в том что мне надо через For инициализировать
Конструктором класса. for (int I = 0; I < 10; i++) model [I ] = new Models (); Добавлено через 1 минуту А в java я вынужден сначала так сделать и только потом Обращаться каждому объекту массива и к ее данным Добавлено через 9 минут
вот еще пример быстрого создания объектов.
хотя я очень хочу выучить этот язык. Добавлено через 2 минуты память можно освободить через деструктор. он автоматически освободит память как только объект выйдет из тела функции, Добавлено через 1 минуту инициализировать объект без аргументов конструктора нельзя, но в с++ автоматически создается конструктор и деструктор по умолчанию Добавлено через 5 минут я сейчас хочу изучить java из за его безопастности по сравнению с++. хотя с++ очень мощный, но его очень непрактично использовать в маленьких краткосрочных проектах. так как скорость разработки очень медленная. одна книга по с++ занимает 1244 стр. не стчитая глубокого понимания стл. а еще есть qt, который тоже обширен. а на jave формочки уже можно сразу создать. да и работу на с++ сложнее найти, так как требуют не менее 5 лет опыта работы. я изучаю сейчас два языка. но с++ уже знаю достаточно хорошо.
0
|
|||||||||||
|
22 / 22 / 2
Регистрация: 01.05.2016
Сообщений: 42
|
|
| 08.05.2016, 00:58 | |
|
Test[] array = new Test[10];
array[0].one = 1; array[0].sharePoint(); В Java тоже можно так писать как и с++, НО так писать нельзя никогда нарушается принцип инкапсуляции Добавлено через 2 минуты Доступ к переменным должен осуществляться через методы, а не задаваться значения на прямую, также в методах можете реализовать различного рода проверки и тд и тп...
1
|
|
|
1 / 3 / 0
Регистрация: 26.09.2015
Сообщений: 275
|
|
| 08.05.2016, 00:59 [ТС] | |
|
Он нарушается если инициализировать переменную напрямую. А я это показал просто чтобы упростить пример.
А так нужно изменять данные через методы. Но меня волнует. Можно ли массив без array и без цикла for сразу инициализировать конструкторами. Или это в языке не поддерживает?
0
|
|
| 08.05.2016, 00:59 | |
|
Помогаю со студенческими работами здесь
20
Массив объектов Java Как инициализировать массив?
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
|
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
|
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
|
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога
Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
|
|
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование
. \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json>
Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом.
# Check if. . .
|
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так:
https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347
Основана на STM32F303RBT6.
На борту пять. . .
|
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
|
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу,
и светлой Луне.
В мире
покоя нет
и люди
не могут жить в тишине.
А жить им немного лет.
|