Argumentos

Quando passo um determinado objeto como argumento e dentro do metodo igualo um objeto 2 com esse objeto 1, ele pega a mesma referencia do objeto etc.

Como eu poderia fazer, ao cancelar NULL o objeto 2, no objeto 1 também ficar como NULL?

No uso de ponteiro, seria como os dois objetos ter o mesmo endereco na memoria, entao dando um dispose ou NULLL em um o outro tambem ficaria nulo.

No java esse exemplo não funciona? Será que é devido criar uma variavel local, mas com a mesma referencia? Por ser uma variavel local, ao dar NULL somente ela ficaria null. :frowning: :frowning:

Eis a questão, como dar null num objeto 2 dentro de um metodo e no obj 1 tambem ficar null, sendo ambos iguais em referencia.

Abraços,

Creio que isto nao seja possível.

Objetos podem ter várias referencias, e todas as referencias podem alterar o valor do objeto… e esta alteracao se refletirá para todas as referencias em questao (exceto para objetos String!!!).
Mas uma variavel de referencia nao pode alterar o valor das outras variaveis de referencia, ou seja, pode-se alterar o objeto mas as variaveis de referencia dentro deste contexto nao.

e nesses casos, como manter o argumento IND atualizado:

    public void caminhamentoCentral(No arv, int ind, int [] vet) {
        if(arv!=null) {
            caminhamentoCentral(arv.esq,ind,vet);
            vet[ind]=arv.item;
            ind++;
            caminhamentoCentral(arv.dir,ind,vet);
        }
    }

já que a cada chamada ind é passado com um valor.
No pascal que eu me lembre bastaria por no argumento do metodo var ind, que ele ficaria atualizado sempre (usando uma variavel externa).
No java á essa possibilidade? Ou é impossível fazer esse caminhamento da forma correta, tendo o valor de ID atualizado para somente uma referencia ao inves de cada chamada ser criado uma nova referencia de id.

Abraços,

Acabei usando como um atributo da classe onde está o método - já que o metodo é chamado na classe Main.

    public void caminhamentoCentral(No arv, int [] vet) {
        if(arv!=null) {
            caminhamentoCentral(arv.esq,vet);
            vet[ind]=arv.item;
            this.ind++;
            caminhamentoCentral(arv.dir,vet);
        }
    }

tem uma forma mais elegante de fazer isso, ou é dessa forma que deve ser feito nesse tipo de situação?

tè,