powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Если поле класса это массив, как инициализировать
6 сообщений из 6, страница 1 из 1
Если поле класса это массив, как инициализировать
    #33362312
Olga1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Привет!!!
Помогите справиться с проблемой
Есть классы Memory и Test
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
 public   class  Memory
{
     boolean  mem [];
     boolean  n;
}

 public   class  Test
{
  public   static   void  main (String [] args)  { 
    Memory test =  new  Memory();
    test.n=true; // без проблем
    test.mem [] ={ true, false} ; // не проходит, выдает ошибку not a statement
}
Как я могу массив mem класса Memory в классе Test заполнить ?
...
Рейтинг: 0 / 0
Если поле класса это массив, как инициализировать
    #33362329
friend-зкщпук
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
 public   class  Memory
{
// Инициализацию можно сделать только при объявлении переменной
 boolean [] mem ={ true, false} ;
 boolean  n;
}

 public   class  Test
{
 public   static   void  main (String [] args) { 
Memory test =  new  Memory();
test.n=true; // без проблем
// сначала выделим память
test.mem =  new   boolean [ 2 ];
//далее присвоим значения
test.mem[ 0 ] = true;
test.mem[ 1 ] = false;
}
// В случае если массив большой то можно создать константу
// которую в последствии присваивать переменной
 public   class  Memory
{
// Инициализацию можно сделать только при объявлении переменной
 public   static   final   boolean [] INIT_ARRAY = { true, false};
 boolean [] mem ;
 boolean  n;
}

 public   class  Test
{
 public   static   void  main (String [] args) { 
Memory test =  new  Memory();
test.n=true; // без проблем
// сначала выделим память
test.mem = INIT_ARRAY;
}
...
Рейтинг: 0 / 0
Если поле класса это массив, как инициализировать
    #33362426
funikovyuri
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
test.mem [] ={ true, false} ; // не проходит, выдает ошибку not a statement

Код: plaintext
1.
 test.mem =  new   boolean [] {true, false}
...
Рейтинг: 0 / 0
Если поле класса это массив, как инициализировать
    #33362706
Olga1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Большое всем спасибо за совет!!!!!!!
Будем пробовать!!!
Как здорово, что есть этот форум !!!!
...
Рейтинг: 0 / 0
Если поле класса это массив, как инициализировать
    #33364056
Фотография peter6636
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кстати в "Ошибки начинающих Java программистов" описана такая ситуация,читайте:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
 3 . Забыл проинициализировать объекты, являющиеся элементами массива.

В Java массив объектов - это на самом деле массив ссылок на объекты. Создание
массива - это просто создание набора ссылок, ни на что не указывающих (то 
есть равных  null ). Чтобы на самом деле создать "полноценный" массив 
объектов, необходимо проинициализировать каждый элемент массива. Многие 
студенты не понимают этого; они считают, что, создавая массив объектов, они 
автоматически создают сами объекты. (В большинстве случаев, студенты 
приносят эту концепцию из C++, где создание массива объектов приводит к 
созданию самих объектов путем вызова их конструктора по умолчанию).

В примере ниже, студент хочет создать  3  объекта класса StringBuffer. Код 
будет откомпилирован без ошибок, но в последней строке произойдет 
исключение NullPointerException, где происходит обращение к несуществующему 
объекту.

Ошибочный пример:
// Создаем массив из StringBuffer
StringBuffer [] myTempBuffers;
myTempBuffers =  new  StringBuffer[ 3 ];
myTempBuffers[ 0 ].add(data);

 

Чтобы не допускать эту ошибку, необходимо не забывать проинициализировать 
элементы массива.

Исправленный пример:
// Создаем массив из StringBuffer и инициализируем элементы
StringBuffer [] myTempBuffers;
myTempBuffers =  new  StringBuffer[ 3 ];
 for  ( int  ix =  0 ; ix < myTempBuffers.length; ix++) 
     myTempBuffers[ix] =  new  StringBuffer();

myTempBuffers[ 0 ].add(data);

 

...
Рейтинг: 0 / 0
Если поле класса это массив, как инициализировать
    #33365828
j2me
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторЗабыл проинициализировать объекты, являющиеся элементами массива.
В вопросе булеан вроде а не объекты.

Инициализировать можно и не при создании массива, а потом... типа

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
 public   class  Memory
{
     boolean  mem [];
     boolean  n;
   Memory()
   {
       mem =  new   boolean [ 2 ];
   }
}

 public   class  Test
{
  public   static   void  main (String [] args)  { 
    Memory test =  new  Memory();
    test.n=true; // без проблем
     for  ( int  i= 0 ;i<test.mem.lenght;i++) test.mem[i]=true;
}
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Если поле класса это массив, как инициализировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]