Java usa uma matriz personalizada para relatar uma exceção de ponteiro nulo

No início, eu personalizei uma turma de alunos com vários atributos. Como existem muitos alunos, desejo declarar essa classe como uma matriz, mas quando atribuo valores a diferentes objetos na matriz por meio de diferentes subscritos, sempre relato uma exceção de ponteiro nulo

No começo, o código é assim

package _4_9_test;

public class EightTwoTest {

	public static class Test{
		   String name;
		   int num;
	}
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Test test[] = new Test[2];
		
		test[0].name = "张珊";
		test[0].num = 1;
		
		test[1].name = "李四";
		test[1].num = 2;
		
		System.out.println(test[0].name+" "+test[0].num);
		System.out.println(test[1].name+" "+test[1].num);

	}

}



Depois de ler a documentação, descobri que a criação da matriz não aloca memória para os membros da matriz.
Test test[] = new Test[2];

Não há lugar para armazenar dados.


Somente após a declaração de cada membro, esse membro receberá memória alocada

test[0] = new Test();

O código aprimorado se parece com isso

package _4_9_test;

public class EightTwoTest {

	public static class Test{
		   String name;
		   int num;
	}
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Test test[] = new Test[2];
		
		test[0] = new Test();
		test[0].name = "张珊";
		test[0].num = 1;
		
		test[1] = new Test();
		test[1].name = "李四";
		test[1].num = 2;
		
		System.out.println(test[0].name+" "+test[0].num);
		System.out.println(test[1].name+" "+test[1].num);

	}

}

Acho que você gosta

Origin www.cnblogs.com/lyd447113735/p/12695345.html
Recomendado
Clasificación