Olá galera, estou na minha primeira aula de orientação a objeto e pintou uma dúvida…Fazendo além do necessário para o exercicio resolvi ampliar a quantidade de alunos na pesquisa.
Minha dúvida é, porque ocorre o erro? Está errado o modo como criei os objetos? Muito obrigado.
obs:Classes Aluno e AlunoTest(main)
Scanner sc = new Scanner(System.in);
System.out.println("Informe a quantidade de alunos: ");
qntAlunos = sc.nextInt();
Aluno as[] = new Aluno[qntAlunos];[color=cyan] [size=18]// NESSE MOMENTO PASSA A EXISTIR as[0] e as[1] se o qntAlunos for igual a 2?[/size][/color]
for (int s = 0; s < qntAlunos; s++) {
System.out.println("Informe o nome");
nome = sc.next();
as[s].darNome(nome); // [color=red]LINHA 29[/color]
Informe a quantidade de alunos:
[color=green]2[/color]
Informe o nome
[color=green]Thiago[/color]
[color=red]Exception in thread “main” java.lang.NullPointerException
at AlunoTest.main(AlunoTest.java:29)[/color]
Certo, mas minha intenção seria crirar um Array de aluno para poder armazenar os dados em diferentes objetos alunos. Ai no seu caso o usuario não pode informar a quantidade de alunos desejada.
O que eu esperava que acontecesse era :
//Classe AlunoTest
Aluno as[] = new Aluno[qntAlunos];
for (int s = 0; s < qntAlunos; s++) {
System.out.println(“Informe o nome”);
nome = sc.next();
as[s].darNome(nome); [color=cyan]// NESSA Linha eu esperava que a variavel nome entrasse no as[0] (objeto de Aluno ) e o objeto armazenasse o atributo nome mas ocorre o erro;[/color]
//Classe Aluno
public void darNome(String seuNome) {
nome = seuNome;
}
Scanner sc = new Scanner(System.in);
System.out.println("Informe a quantidade de alunos: ");
qntAlunos = sc.nextInt();
Aluno as[] = new Aluno[qntAlunos];
for (int s = 0; s < qntAlunos; s++) {
System.out.println("Informe o nome");
nome = sc.next();
as[s] = new aluno();
as[s].darNome(nome);
}
Assim não funciona?
— edit
melhor usar mesmo o que o diego.sas lhe passou
[quote=thisenrose]Olá galera, estou na minha primeira aula de orientação a objeto e pintou uma dúvida…Fazendo além do necessário para o exercicio resolvi ampliar a quantidade de alunos na pesquisa.
Minha dúvida é, porque ocorre o erro? Está errado o modo como criei os objetos? Muito obrigado.
obs:Classes Aluno e AlunoTest(main)
Scanner sc = new Scanner(System.in);
System.out.println("Informe a quantidade de alunos: ");
qntAlunos = sc.nextInt();
Aluno as[] = new Aluno[qntAlunos];[color=cyan] [size=18]// NESSE MOMENTO PASSA A EXISTIR as[0] e as[1] se o qntAlunos for igual a 2?[/size][/color]
for (int s = 0; s < qntAlunos; s++) {
System.out.println("Informe o nome");
nome = sc.next();
// Neste ponto vc faz conforme mencionado abaixo.
Aluno x = new Aluno();
x.darNome(nome);
as[s] = x;
Informe a quantidade de alunos:
[color=green]2[/color]
Informe o nome
[color=green]Thiago[/color]
[color=red]Exception in thread “main” java.lang.NullPointerException
at AlunoTest.main(AlunoTest.java:29)[/color]