Média de aluno 4 não é igual de aluno 1

3 respostas
hud_castro

Observar o código abaixo:

public class Aluno2
{
double[]notas = new double[4];
    public void setNota(int indice, double nota){
        notas[indice] = nota;
    }

            public double getMedia(){
                double soma = 0;
                
                    for (int i = 0; i < notas.length; i++)
                        soma = soma + notas[i];
                            return soma / notas.length;
                        }
                    }
public class MainAluno2
{
    public static void main(String[]args){

        Aluno2 aluno1 = new Aluno2();
        Aluno2 aluno2 = new Aluno2();
        Aluno2 aluno3 = new Aluno2();
        Aluno2 aluno4 = aluno1;

            aluno1.setNota(0, 9);
            aluno1.setNota(1, 9);
            aluno1.setNota(2, 9);
            aluno1.setNota(3, 9);

            aluno2.setNota(0, 8);
            aluno2.setNota(1, 8);
            aluno2.setNota(2, 8);
            aluno2.setNota(3, 8);

            aluno3.setNota(0, 8);
            aluno3.setNota(1, 8);
            aluno3.setNota(2, 8);
            aluno3.setNota(3, 8);

            aluno4.setNota(0, 8);
            aluno4.setNota(1, 8);
            aluno4.setNota(2, 8);
            aluno4.setNota(3, 8);

                System.out.println("O aluno aluno1 possui média igual a: "+aluno1.getMedia());
                System.out.println();
                System.out.println("O aluno aluno2 possui média igual a: "+aluno2.getMedia());
                System.out.println();
                System.out.println("O aluno aluno3 possui média igual a: "+aluno3.getMedia());
                System.out.println();
                System.out.print("O aluno aluno4 possui média igual a: "+aluno4.getMedia());
            }
        }

Observar saída do programa no terminal abaixo:

O aluno aluno1 possui média igual a: 8.0

O aluno aluno2 possui média igual a: 8.0

O aluno aluno3 possui média igual a: 8.0

O aluno aluno4 possui média igual a: 8.0

A minha dúvida é porque o aluno 1 e o aluno 4 não estão apresentando a mesma média que seria 9, visto que, aluno4 está referenciando aluno1?

3 Respostas

iquefarias

Cara voce tem que instanciar o objeto aluno4 primeiro e depois voce faz ele recebendo o objeto aluno1… ok ai vai o codigo…

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package teste;

/**
 *
 * @author Afonso
 */
public class Main {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
       
         Aluno2 aluno1 = new Aluno2();  
         Aluno2 aluno2 = new Aluno2();  
         Aluno2 aluno3 = new Aluno2();  
         Aluno2 aluno4 = new Aluno2();  
            
             aluno1.setNota(0, 9);  
             aluno1.setNota(1, 9);  
             aluno1.setNota(2, 9);  
             aluno1.setNota(3, 9);  
   
             aluno2.setNota(0, 8);  
             aluno2.setNota(1, 8);  
             aluno2.setNota(2, 8);  
             aluno2.setNota(3, 8);  
   
             aluno3.setNota(0, 8);  
             aluno3.setNota(1, 8);  
             aluno3.setNota(2, 8);  
             aluno3.setNota(3, 8);  
   
             aluno4.setNota(0, 8);  
             aluno4.setNota(1, 8);  
             aluno4.setNota(2, 8);  
             aluno4.setNota(3, 8);  
   
             aluno4 = aluno1;
             
                 System.out.println("O aluno aluno1 possui média igual a: "+aluno1.getMedia());  
                 System.out.println();  
                 System.out.println("O aluno aluno2 possui média igual a: "+aluno2.getMedia());  
                 System.out.println();  
                 System.out.println("O aluno aluno3 possui média igual a: "+aluno3.getMedia());  
                 System.out.println();  
                 System.out.print("O aluno aluno4 possui média igual a: "+aluno4.getMedia());  
             }
   }
J

quando você faz

aluno4.setNota(0, 8); aluno4.setNota(1, 8); aluno4.setNota(2, 8); aluno4.setNota(3, 8);

você sobrescreve as notas que tinha definido anteriormente usando a referencia aluno1…
por isso no fim ambos (aluno1 e aluno4) ficam com média 8

hud_castro

Obrigado galera.

Criado 27 de setembro de 2008
Ultima resposta 28 de set. de 2008
Respostas 3
Participantes 3