Salve amigos estou com um problema ao executar meu micro sistema de média. Acho que seja somente um detalhe, mas tá difícil descobrir o que é.
Aproveitando o espaço alguém pode me dizer da forma mais simples possível para que serve esse bendito this. Pelo que sei é uma referência à uma variável do próprio objeto, é isso mesmo? Tem algo mais?
Desde já agradeço a atenção de todos.
[code]import javax.swing.JOptionPane;
public class MediaAluno {
private String nota[] = new String[4];
private double noTa[] = new double[4];
private String nome;
private String materia;
private double media=0.0;
public String[] getNota() {
return nota;
}
public void setNota(String[] nota) {
this.nota = nota;
}
public double[]getNoTa(){
return noTa;
}
public void setNoTa(double[]noTa){
this.noTa=noTa;
}
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public String getMateria() {
return materia;
}
public void setMateria(String materia) {
this.materia = materia;
}
public double getMedia() {
return media;
}
public void setMedia(double media) {
this.media = media;
}
public void mediaaluno(){
this.nome=JOptionPane.showInputDialog("Informe o seu nome? ");
this.materia=JOptionPane.showInputDialog("informe a disciplina? ");
for (int a =1; a<5; a++){
this.nota[a]= JOptionPane.showInputDialog("Forneça a nota do "+a+"º Bimestre: ");
this.noTa[a] = Double.parseDouble(nota[a]);
JOptionPane.showMessageDialog(null,"A nota do " +a+"º bimestre é "+noTa[a]);
}
this.media = (noTa[1]+noTa[2]+noTa[3]+noTa[4])/4;
JOptionPane.showMessageDialog(null, "Olá "+nome+" sua média em "+materia+" é: "+media);
}
}[/code]
[code]
public class SystemPlay {
public static void main (String[] args){
MediaAluno x = new MediaAluno();
x.mediaaluno();
}
}[/code]
Segue o erro.
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 4
at MediaAluno.mediaaluno(MediaAluno.java:47)
at SystemPlay.main(SystemPlay.java:7)
Olá Dhonatan
Neste trecho do código:
this.media = (noTa[1]+noTa[2]+noTa[3]+noTa[4])/4;
você acessa o endereço 4 do seu vetor, porém este vai de 0 a 3, então o correto seria:
this.media = (noTa[0]+noTa[1]+noTa[2]+noTa[3])/4;
flw :thumbup:
[quote=InicianteJavaHenrique]Olá Dhonatan
Neste trecho do código:
this.media = (noTa[1]+noTa[2]+noTa[3]+noTa[4])/4;
você acessa o endereço 4 do seu vetor, porém este vai de 0 a 3, então o correto seria:
this.media = (noTa[0]+noTa[1]+noTa[2]+noTa[3])/4;
flw :thumbup: [/quote]
Brother, realmente essa parte estava errada, esqueci que estava fora do for. Mas o erro persiste, acho que é na minha variável media que está a encrenca.
[quote=Dhonatan][quote=InicianteJavaHenrique]Olá Dhonatan
Neste trecho do código:
this.media = (noTa[1]+noTa[2]+noTa[3]+noTa[4])/4;
você acessa o endereço 4 do seu vetor, porém este vai de 0 a 3, então o correto seria:
this.media = (noTa[0]+noTa[1]+noTa[2]+noTa[3])/4;
flw :thumbup: [/quote]
Brother, realmente essa parte estava errada, esqueci que estava fora do for. Mas o erro persiste, acho que é na minha variável media que está a encrenca.[/quote]
Mas até mesmo no seu for vc não acessa o endereço do seu vetor:
for (int a =1; a<5; a++){
this.nota[a]= JOptionPane.showInputDialog("Forneça a nota do "+a+"º Bimestre: ");
this.noTa[a] = Double.parseDouble(nota[a]);
JOptionPane.showMessageDialog(null,"A nota do " +a+"º bimestre é "+noTa[a]);
}
Teria que ser a iniciado em 0
[quote=InicianteJavaHenrique][quote=Dhonatan][quote=InicianteJavaHenrique]Olá Dhonatan
Neste trecho do código:
this.media = (noTa[1]+noTa[2]+noTa[3]+noTa[4])/4;
você acessa o endereço 4 do seu vetor, porém este vai de 0 a 3, então o correto seria:
this.media = (noTa[0]+noTa[1]+noTa[2]+noTa[3])/4;
flw :thumbup: [/quote]
Brother, realmente essa parte estava errada, esqueci que estava fora do for. Mas o erro persiste, acho que é na minha variável media que está a encrenca.[/quote]
Mas até mesmo no seu for vc não acessa o endereço do seu vetor:
for (int a =1; a<5; a++){
this.nota[a]= JOptionPane.showInputDialog("Forneça a nota do "+a+"º Bimestre: ");
this.noTa[a] = Double.parseDouble(nota[a]);
JOptionPane.showMessageDialog(null,"A nota do " +a+"º bimestre é "+noTa[a]);
}
Teria que ser a iniciado em 0
[/quote]
Salve irmão, agora assim entendi o que quis dizer e funcionou. Agradeço a pronta ajuda.
Cordialmente
Dhonatan
Há simples forma é isto sim.
Tem tbm umas referencias aqui :arrow: http://javafree.uol.com.br/topic-855409-Referencia-this.html