Problema para referenciar objetos em Java

6 respostas
hud_castro

Como fazer para o código abaixo funcionar, por que não estou conseguindo copiar a referência do objeto aluno1 para aluno3.

public class MainAluno{
   public static void main(String[]args){
       
       Aluno1 aluno1 = new Aluno1();
       Aluno2 aluno2 = new Aluno2();
       Aluno3 aluno3 = aluno1;
       
          aluno1.setNota(0, 9);
          aluno1.setNota(1, 10);
          aluno1.setNota(2, 8.5);
          aluno1.setNota(3, 9.5);
          
          aluno2.setNota(0, 9.5);
          aluno2.setNota(1, 8.7);
          aluno2.setNota(2, 10);
          aluno2.setNota(3, 9.8);
          
          aluno3.setNota(0, 9.5);
          aluno3.setNota(1, 8.7);
          aluno3.setNota(2, 10);
          aluno3.setNota(3, 9.8);
          
             System.out.println("O aluno1 possui média igual a: "+aluno1.getMedia());
             System.out.println();
             System.out.println("O aluno2 possui média igual a: "+aluno2.getMedia());
             System.out.println();
             System.out.print("O aluno3 possui média igual a: "+aluno3.getMedia());
             
               }
        }

6 Respostas

Bird89du

Você só criou uma referencia ao objeto…

certo!!!

você só reservou um espaço na memória, então quando você faz

Aluno3 aluno3 = aluno1;

aluno3 e aluno1 fazem referencia para o mesmo objeto…

quando vc

aluno3.setNota(0, 9.5);

aluno3.setNota(1, 8.7);

aluno3.setNota(2, 10);

aluno3.setNota(3, 9.8);

você está mudando os valores de aluno um…

se ocorrer algum erro de compilação acredito que seja po causa dos métodos…

espero ter ajudado

abs

malves_info

Se você quer pegar a referencia de Aluno1 para Aluno3, poderia criar um método em Aluno3 onde o mesmo receberia em particular este objeto Ex.:

public Aluno1 getAluno1(){
   return aluno1;
}

public setAluno1(Aluno1 aluno1){
......
}

ou

public Object getObjetoAluno(){
   
    return objetoAluno;
}

public setObejtoAluno(Object objetoAluno){
  ......
}

Isso é somente um exemplo simples de muitos outros que você pode fazer.

[]'s

hud_castro

Muito obrigado, agora só queria saber porque dá erro na compilação, segue o erro:

“incompatible types - found Aluno1 but expected Aluno3”

Michel_Sancovich
Aluno3 aluno3 = new Aluno3(aluno1);
sergiotaborda

hud_castro:
Muito obrigado, agora só queria saber porque dá erro na compilação, segue o erro:

“incompatible types - found Aluno1 but expected Aluno3”

Vc não pode referenciar um Aluno1 como uma variável que só aceita Aluno3

O seu erro é criar várias classes uma para cada aluno.A classe é apenas uma: Aluno.

Renomei a classe Aluno1 para Aluno e apague Aluno2 e Aluno3 . Depois tente este codigo

Aluno aluno1 = new Aluno();  
    Aluno aluno2 = new Aluno();  
    Aluno aluno3 = aluno1;

Repare que são as variáveis que têm numeros, não as classes.

hud_castro

Valeu galera, muito obrigado.

Criado 25 de setembro de 2008
Ultima resposta 26 de set. de 2008
Respostas 6
Participantes 5