Se vocês puderem me ajudar eu agradeço.
O codigo segue abaixo.
public class Aluno {
String nome;
double p1, p2, media;
}
importjava.util.Scanner;publicclassPrincipal{publicstaticvoidmain(Stringargs[]){Stringcaptura;Aluno[]aluno=newAluno[2];for(intcont=0;cont<2;cont++){Scannerentrada=newScanner(System.in);System.out.println("Digite o nome do Aluno: ");aluno[cont].nome=entrada.nextLine();System.out.println("Digite a nota da P1: ");captura=entrada.nextLine();aluno[cont].p1=Double.parseDouble(captura);System.out.println("Digite a nota da P2: ");captura=entrada.nextLine();aluno[cont].p2=Double.parseDouble(captura);aluno[cont].media=(aluno[cont].p1+aluno[cont].p2)/2;}System.out.println("\n==\n");for(intcont2=0;cont2<2;cont2++){Scannerentrada=newScanner(System.in);System.out.println(aluno[cont2].nome);System.out.println(aluno[cont2].p1);System.out.println(aluno[cont2].p2);System.out.println(aluno[cont2].media);}}}
Você criou um array de Aluno é ta tentando passa valores como nome e nota, isso tá errado.
Se você tem um array de Aluno, você precisa passar um Aluno para o array.
Cria um objeto Aluno, insere os valores no objeto e depois atribui o objeto ao array.
E
elizeldepaula
for(intcont=0;cont<2;cont++){aluno[cont]=newAluno();// primeiro você deve criar instanciar um objeto da classe aluno.Scannerentrada=newScanner(System.in);System.out.println("Digite o nome do Aluno: ");aluno[cont].nome=entrada.nextLine();System.out.println("Digite a nota da P1: ");captura=entrada.nextLine();aluno[cont].p1=Double.parseDouble(captura);System.out.println("Digite a nota da P2: ");captura=entrada.nextLine();aluno[cont].p2=Double.parseDouble(captura);aluno[cont].media=(aluno[cont].p1+aluno[cont].p2)/2;}
Starkk
Obrigado, o programa rodou aqui depois que fiz o que vocês disseram.
Então no caso o que eu tinha feito foi criar um vetor de objetos, mas sem objeto nas posições do vetor?
romarcio
Starkk:
Obrigado, o programa rodou aqui depois que fiz o que vocês disseram.
Então no caso o que eu tinha feito foi criar um vetor de objetos, mas sem objeto nas posições do vetor?
Você criou um array de um tipo especifico que era Aluno. Esse array então só aceita objetos do tipo Aluno. Por isso você precisa criar o objeto aluno, setar os valores em aluno, para então inserir esse objeto em uma posição do array.
Se você tivesse criar um array de String (String[]) só poderia inserir String… e assim por diante.
Starkk
Consegui entender meu erro agora, obrigado.
Obs: Vou colocar meu codigo final abaixo, caso alguem queira me dar alguma dica fique a vontade.
publicclassAluno{privateStringnome;privatedoublep1,p2,media;publicvoidsetNome(Stringnome){this.nome=nome;}publicStringgetNome(){returnthis.nome;}publicvoidsetP1(doublep1){if(p1<0||p1>10){System.out.println("Erro a p1 nao foi computada.");}else{this.p1=p1;}}publicdoublegetP1(){returnthis.p1;}publicvoidsetP2(doublep2){if(p2<0||p2>10){System.out.println("Erro a p2 nao foi computada.");}else{this.p2=p2;}}publicdoublegetP2(){returnthis.p2;}publicvoidsetMedia(){this.media=(p1+p2)/2;}publicdoublegetMedia(){returnthis.media;}}
importjava.util.Scanner;publicclassPrincipal{publicstaticvoidmain(Stringargs[]){doubleconverte;Stringcaptura;Aluno[]aluno=newAluno[2];for(intcont=0;cont<2;cont++){Scannerentrada=newScanner(System.in);aluno[cont]=newAluno();System.out.println("Digite o nome do Aluno: ");captura=entrada.nextLine();aluno[cont].setNome(captura);System.out.println("Digite a nota da P1: ");captura=entrada.nextLine();converte=Double.parseDouble(captura);aluno[cont].setP1(converte);System.out.println("Digite a nota da P2: ");captura=entrada.nextLine();converte=Double.parseDouble(captura);aluno[cont].setP2(converte);aluno[cont].setMedia();}System.out.println("\n==\n");for(intcont2=0;cont2<2;cont2++){System.out.println(aluno[cont2].getNome());System.out.println(aluno[cont2].getP1());System.out.println(aluno[cont2].getP2());System.out.println(aluno[cont2].getMedia());}}}