Galera fiz um teste aqui e observei que o java trata arrays com referencia e variaveis nao tipo como abaixo!
class Teste
{ int num = 80;
String[] s = {"normal"};
void modifyInt(int i){
i = 5;
}
void modifyString(String[] s){
s[0] = "Mudou";
}
public static void main(String arfs[]){
Teste t = new Pai();
t.modifyInt(p.num);
System.out.println(p.num);
p.modifyString(p.s);
System.out.println(p.s[0]);
}
}
OK! quando passo o array como parametro e altero o mesmo dentro do metodo seu valor real é alterado entao meu metodo tratou a referencia e nao uma copia do objeto.
Ja no inteiro (Testei com String tb e deu a mesma coisa) so a copia ou seja a variavel local do metodo é alterada e a que passei para o metodo não!
Alias string nao é primitivo e acontece a mesma coisa do inteiro entao ai que nao entendi mesmo o pq!
O que acontece com objetos trato referencia e com primitivos trato valores ?? afinal a passagem de parametros em java nao se da sempre por valor e não por referencia :?: :?: :?:
Qual o pq disso tudo :?: Alguem ai me explica :?: :?:
so que nesse exemplo que coloquei acima isso acontece por isso fiquei confuso qd passo a referencia do array (membro) seu valor é alterado sim! e nao so dentro do metodo!