Minha dúvida é simples:
Suponhamos que eu tenha a seguinte classe:
[code]public class A {
private int at1;
private double at2;
private String at3;
public void escreveAlgo() {
System.out.println(“Teste”);
}
}[/code]
Suponhamos que dentro de uma outra classe eu tenha um método chamado guarda() que instancie a classe A e guarde dentro de um ArrayList (que foi declarado dentro do bloco Main).
Agora, no método Main ele chama o método guarda() 5 vezes.
Seria possível eu ter acesso aos 5 objetos (métodos e atributos) que estão armazenados dentro do ArrayList? Ou após o método guarda() for encerrado ele apaga o objeto da memória?
Os objetos de coleção e vetores apenas referenciam o mesmo endereço de memória onde os objetos que são colecionados estão.
Para cada objeto da classe A que você instanciar e “colocar” no ArrayList, o ArrayList irá “apontar” para o espaço de memória em que este objeto existe.
Para trabalhar com os métodos que estão neste objeto de A, só precisa fazer
ArrayList<A> listaA = new ArrayList<A>();
A aa = new A();
listaA.add(aa);
//para obter
listaA.get(0).escreveAlgo();
Caso não se especifique o tipo de ArrayList (ou a versão do java seja < 1.5)
ArrayList listaA = new ArrayList();
A aa = new A();
listaA.add(aa);
//para obter
A novoA = (A) listaA.get(0);
novoA.escreveAlgo();