Isto quer dizer que o método que recebe este argumento até pode modificar seu valor(no caso de primitivos) ou fazer apontar para outra instância de objeto(no caso de classes) mas quando a linha de execução retorna para o cóidgo que “chamou” aquele método, o valor inicial(do momento da chamada), permanece. Até aí tudo bem.
Agora, como fazer o oposto, ou seja passar argumentos by reference, permitindo assim, que alterações feitas na variável, sejam permanentes?
Nao da pra fazer isso em java. Eh assim para facilitar, ninguem tem de ficar adivinhando se o elemento de fora vai ser alterado ou nao, ele nao vai ser. Diferente das chamadas de metodo em C++, que quando voce le uma chamada, nao sabe se o elemento de fora vai ser mudado ou nao.
outra coisa, apesar de parecer que os argumentos do tipo objeto sao passados por referencia, eles sao passados por valor, porque na verdade, quando voce declarra Class objeto, objetivo eh uma variavel tipo referencia, e quando passamos ela comoa rgumento, estamos passando o seu valor.
No java, fundalmentamente, soh temos passagem por valor. Como passamos uma referencia por valor, tem o mesmo efeito que passar um ponteiro.
Tu tem uma rotina que calcula um monte de coisas ao mesmo tempo e que retornar os valores com apenas uma tacada, ao invéz de usar vários geters depois da execução do cálculo, daí tu retorna tudo por parâmetro de saída.
Uso muito no PL/SQL.
[quote=“Jupter”][quote]
Sendo chato: pra que vc quer isso?
[/quote]
Sei lá, tipo…
Tu tem uma rotina que calcula um monte de coisas ao mesmo tempo e que retornar os valores com apenas uma tacada, ao invéz de usar vários geters depois da execução do cálculo, daí tu retorna tudo por parâmetro de saída.
Uso muito no PL/SQL.
Mas a dúvida não é pra nada prático naum.
Era só pra saber se dava mesmo.[/quote]
quando vc passa um objeto como parametro… vc consegue simular passagem por referencia… porque vc estará passando uma copia do seu endereço…