2012-01-27 5 views

ответ

0

вам нужно использовать new для создания one экземпляров. Сейчас ваш массив не содержит экземпляров, но вы пытаетесь установить свойство name на экземпляр. Когда вы делаете

obj[0].name

obj[0] имеет нулевое значение, и вы не можете получить собственность на нуль ....

попробовать что-то вроде ...

one one1 = new one(); 
one1.name = "IBM" 
obj[0] = one1; 

BTW, класс имена в java должны быть надлежащим образом обведены камнем ....

+0

Дополняя ответ: http://www.oracle.com/technetwork/java/codeconv-138413.html –

0

В этой строке

one[] obj = new one[2]; 

вы создаете массив с двумя элементами, но эти элементы являются ссылками не объектов типа one. Фактически вы вообще не создаете экземпляры one. Вы можете сделать это следующим образом:

obj[0] = new one(); 

только после создания этих экземпляров, вы можете присвоить значения их полей, как вы здесь:

obj[0].name = "IBM"; 

Перед тем, как назначить любую ссылку на obj[0] она равна до null.

+0

спасибо брат! это работает. –

6
one[] obj = new one[2]; 

Это создает пространство для двух one объектов, но не создает их!

Делают это так:

one[] obj = new one[2]; 
obj[0] = new one(); 
obj[1] = new one(); 
obj[0].name = "IBM"; 
obj[1].name = "AGM"; 

Btw, в соответствии с Java Язык именования, класс one должен быть в верхнем регистре.

И в то время как мы на это, я дам ваш One класс конструктор:

class One{ 
    String name; 

    public One(String name){ 
     this.name = name; 
    } 
} 

И теперь вы можете создать весь массив в одной строке:

One[] obj = new One[]{new One("IBM"),new One("AGM")}; 

(рядом Я бы сделать name поле приватным и добавить метод получения и т.д. и т.п.)

+0

hmmmm ... спасибо, все это действительно работает. –

0
one[] obj = new one[2]; 

Ab Оператор ove просто создает тип One [] с размером 2, но он не содержит какого-либо одного объекта

Сначала вам нужно создать объект для этого местоположения, а затем вы можете установить его имя.

One temp = new One(); 
temp.name = "IBM"; 
     obj[0] = temp; 
0

Когда в Java создается массив объектов, каждый элемент инициализируется нулем. Вы должны инициализировать каждый элемент самостоятельно. Ex:

one[] obj = new one[2]; 
for(int i = 0; i < obj.length; i++) 
{ 
    obj[i] = new one(); 
} 
Смежные вопросы