vamo discutir… (só um pouco)
No cod abaixo vceis podem ver que não é passado a referencia, e sim uma copia.
public static void main( String [] args ) {
Object o = new String( "aaa" );
f( o );
System.out.println( o.toString() ); // ja aviso q a saida será "aaa"...
}
public static void f( Object o ) {
o = new String( "bbb" );
}
Baum, a classe String é algo aparte… só ela pra acontecer oq acontece com o codigo ai em cima.
já usando outra classe qualquer, é passado por referencia…
[code]
public class Teste {
public Teste() {
MyVO myVO = new MyVO();
vamoVe(myVO);
System.out.println(myVO.getI() + myVO.getS());
//imprime "2mudou?"
}
private void vamoVe(MyVO myVO) {
myVO.setI(2);
myVO.setS("mudou?");
}
public static void main(String[] args) {
new Teste();
}
}
class MyVO {
int i = 0;
String s = "abc";
public int getI() {
return i;
}
public void setI(int i) {
this.i = i;
}
public String getS() {
return s;
}
public void setS(String s) {
this.s = s;
}
}[/code]
pow, é assim msm?!? A classe String é a metida a diferente? ou tem varias mais classes assim?
