Ola estou com probelema em um exercicoo se algume puder me ajudar
criei uma classe Aluno com os atributos e uma classe que estanciara 3 alunos…
dai resolvi usar vetor na hora de estanciar mas da erro
import javax.swing.*;
public class Lancanota {
publicstaticvoidmain(String[]Args){intcont=0;Alunoalu[]=newAluno[3];while(cont<3){alu[cont].setNome(JOptionPane.showInputDialog(null,"Informe o nome do primeiro aluno"));alu[cont].setMatricula(Integer.parseInt(JOptionPane.showInputDialog(null,"Informe a matricula do primeiro aluno")));alu[cont].setNota1(Double.parseDouble(JOptionPane.showInputDialog(null,"Informe a primeira nota")));alu[cont].setNota2(Double.parseDouble(JOptionPane.showInputDialog(null,"Informe a segunda nota")));alu[cont].setNota3(Double.parseDouble(JOptionPane.showInputDialog(null,"Informe a terceira nota")));alu[cont].setNota4(Double.parseDouble(JOptionPane.showInputDialog(null,"Informe a quarta nota")));cont++;}}publicstaticAluno{privateintmatricula;privateStringnome;privatedoublenota1;privatedoublenota2;privatedoublenota3;privatedoublenota4;publicvoidsetMatricula(intmatriculax){matricula=matriculax;}publicintgetMatricula(){returnmatricula;}publicvoidsetNome(Stringnomex){nome=nomex;}publicStringgetNome(){returnnome;}publicvoidsetNota1(doublenotax1){nota1=notax1;}publicdoublegetNota1(){returnnota1;}publicvoidsetNota2(doublenotax2){nota2=notax2;}publicdoublegetNota2(){returnnota2;}publicvoidsetNota3(doublenotax3){nota3=notax3;}publicdoublegetNota3(){returnnota3;}publicvoidsetNota4(doublenotax4){nota4=notax4;}publicdoublegetNota4(){returnnota4;}
pior que ele deixa informar o primeiro nome e da erro
Gobain
Alunoalu[]=newAluno[3];while(cont<3){alu[cont]=newAluno();alu[cont].setNome(JOptionPane.showInputDialog(null,"Informe o nome do primeiro aluno"));alu[cont].setMatricula(Integer.parseInt(JOptionPane.showInputDialog(null,"Informe a matricula do primeiro aluno")));alu[cont].setNota1(Double.parseDouble(JOptionPane.showInputDialog(null,"Informe a primeira nota")));alu[cont].setNota2(Double.parseDouble(JOptionPane.showInputDialog(null,"Informe a segunda nota")));alu[cont].setNota3(Double.parseDouble(JOptionPane.showInputDialog(null,"Informe a terceira nota")));alu[cont].setNota4(Double.parseDouble(JOptionPane.showInputDialog(null,"Informe a quarta nota")));cont++;}
faltou inicializar as posições do array... coloca o new Aluno() ali no começo q resolve :thumbup:
X
xxta
Esta linha está certa. Pode ser feito das duas formas.
posta o erro pra ficar mais fácil de ajudar !
J
julianor1
esse abaixo e o bendito erro rsrsrs
Exception in thread “main” java.lang.NullPointerException
at Lancanota.main(Lancanota.java:18)
dm_thiago
publicstaticAluno{
Não era para ser public class Aluno? E também tem que instanciar os Aluno.
Só fazer um for:
for (int i = 0; i < alu.length; i++)
{
alu[i] = new Aluno();
}
J
julianor1
mesmo assim continua o erro
Gobain
Então coloca aqui em qual linha o erro que está dando. Sem saber isso é meio difícil de adivinhar… não somos videntes
J
julianor1
linha 19 que é alu[cont] = new Aluno();
e no erro diz que
non static variable this cannot be referenced from a static context
dm_thiago
importjavax.swing.*;publicclassLancanota{publicstaticvoidmain(String[]Args){intcont=0;Alunoalu[]=newAluno[3];for(inti=0;i<alu.length;i++)alu[i]=newAluno();while(cont<3){alu[cont].setNome(JOptionPane.showInputDialog(null,"Informe o nome do primeiro aluno"));alu[cont].setMatricula(Integer.parseInt(JOptionPane.showInputDialog(null,"Informe a matricula do primeiro aluno")));alu[cont].setNota1(Double.parseDouble(JOptionPane.showInputDialog(null,"Informe a primeira nota")));alu[cont].setNota2(Double.parseDouble(JOptionPane.showInputDialog(null,"Informe a segunda nota")));alu[cont].setNota3(Double.parseDouble(JOptionPane.showInputDialog(null,"Informe a terceira nota")));alu[cont].setNota4(Double.parseDouble(JOptionPane.showInputDialog(null,"Informe a quarta nota")));cont++;}}}
Corrigindo os dois erros que eu vi: você não instanciava os alunos, e no lugar de class Aluno estava static Aluno. Testa isso que eu colei aí.
J
julianor1
continua o erro
ele nao deixa estanciar os alunos diz o seguinte
non static variable this cannot be referenced from a static context
dm_thiago
Você criou duas classes separadas ou Aluno (em dois arquivos .java) ou Aluno está logo em sequência de Lancanota?
J
julianor1
pelo que vi estou estanciado o objeto aprtir do public static void main …
ele nao esta permitindo,…
eu tirei o static e compilou so nao executa agora
J
julianor1
agora esta logo abaixo
dm_thiago
Se está logo abaixo, você tem que tirar o "public " que tem antes do "class Aluno". Deixa só "class Aluno" mesmo. O erro é porque você não pode ter duas classes públicas dentro de um único arquivo .java
Ou tenta colocar a classe Aluno em outro .java
Eu pelo menos não sou a favor de ficar atochando classes em um único arquivo, prefiro que cada classe fique separado, acho mais elegante. Aí vai como deve ficar agora:
importjavax.swing.*;publicclassLancanota{publicstaticvoidmain(String[]Args){intcont=0;Alunoalu[]=newAluno[3];for(inti=0;i<alu.length;i++)alu[i]=newAluno();while(cont<3){alu[cont].setNome(JOptionPane.showInputDialog(null,"Informe o nome do primeiro aluno"));alu[cont].setMatricula(Integer.parseInt(JOptionPane.showInputDialog(null,"Informe a matricula do primeiro aluno")));alu[cont].setNota1(Double.parseDouble(JOptionPane.showInputDialog(null,"Informe a primeira nota")));alu[cont].setNota2(Double.parseDouble(JOptionPane.showInputDialog(null,"Informe a segunda nota")));alu[cont].setNota3(Double.parseDouble(JOptionPane.showInputDialog(null,"Informe a terceira nota")));alu[cont].setNota4(Double.parseDouble(JOptionPane.showInputDialog(null,"Informe a quarta nota")));cont++;}}}classAluno{privateintmatricula;privateStringnome;privatedoublenota1;privatedoublenota2;privatedoublenota3;privatedoublenota4;publicvoidsetMatricula(intmatriculax){matricula=matriculax;}publicintgetMatricula(){returnmatricula;}publicvoidsetNome(Stringnomex){nome=nomex;}publicStringgetNome(){returnnome;}publicvoidsetNota1(doublenotax1){nota1=notax1;}publicdoublegetNota1(){returnnota1;}publicvoidsetNota2(doublenotax2){nota2=notax2;}publicdoublegetNota2(){returnnota2;}publicvoidsetNota3(doublenotax3){nota3=notax3;}publicdoublegetNota3(){returnnota3;}publicvoidsetNota4(doublenotax4){nota4=notax4;}publicdoublegetNota4(){returnnota4;}}