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