olá,
tou vendo um programa aqui. e é o seguinte, nesse programa, quando um objeto A vai chamar um objeto B, pra que ele faça alguma coisa,
em vez do objeto A instanciar o objeto B, ele chama um método estatico do objeto B, e esse método estático trata de instanciar e chamar outro método de mesmo nome mas que nao é estático.
qual a melhor forma de fazer isso? desculpem se nao fui muito claro.
Qual a melhor forma de os objetos conversarem?
10 Respostas
ta desculpado… agora explica melhor 
N sei se entendi bem souarte, mas vc poderia dar uma olhada em Polimorfismo, Herança, sobrecarga de métodos.
essa é uma boa fonte:
http://www.guj.com.br/posts/list/49267.java#258941
Também te desculpo…
nao sei se isso pode explicar melhor:
classe A{
metodo1{
//aqui eu quero chamar o metodo2 da classe A. eu faria assim:
B b = new B();
b.metodo2;
//mas no programa tem assim:
B.metodo1;
}
}
classe B{
static metodo1 {
B b = new B();
B.metodo2;
}
metodo2{
}
}
bom, foi o maximo que consegui.
quase todas as classes do programa fazem algo parecido, elas chamam um metodo estático de outra classe, e esse metodo instancia a classe e chama outro metodo.
quala a melhor forma de fazer isso? tem outra forma?
Agora sim! Só não entendi a pergunta do “Qual a melhor forma de fazer isso?”. ISSO é a melhor forma de fazer ISSO.
Não sei… mas acho que depende do programador…
Quanto a desempenho… acredito que os 2 sejam iguais…
valeu cara. é que tava com dúvidas mesmo. sou muito sem experiancia, iniciante.
mas, minha di]uvida nao eh sobre desempenho, é sobre qual delas deixa o programa melhor de se manter, tipo aqueles lance de baixa acoplagem, que eu nao intendo nada.
classe A{
metodo1{
B b = new B(); //Aqui foi criada uma instacia da classe
b.metodo2; //Aqui vc acessa um método qualquer da classe instanciada
//mas no programa tem assim:
B.metodo1; //Eu acho estranho aqui, cmo acessar um método de outra classe sem instancia-lo antes? Rodou dessa forma? testei aqui e n deu certo
}
}
Acho que a melhor forma é a primeira e acredito q a segunda n rode.
espero ter ajudado! :lol:
Pessoal penso da seguinte forma, na classe B ele tem esse método que gera um instância da própria classe, isso serve para que
da classe A possa executar métodos da classe B de uma maneira a economizar linha na classe A.
Digamos que tenhamos uma classe que tenhamos que chamar varios métodos um deles está na classe B:
ao invés de fazer assim ->
B b = new B();
b.getXXX();
Acho que da de fazer
B.metodo1().getXXX();
Vejo utilizade apenas em usar esse métodos que geram um instância quando ele retorna o objeto, se não me engano funciona
e vaz economizar uma linha de código toda vez que chamar o método getXXX da classe B.
é! agora sim! rs.
realmente há esses métodos mesmo, que retornam instancias da outra classe. legal cara.
Blz, concordo com vc. Mas nesse caso o método tem q ser estático. Para eu poder usar um objeto da classe B na classe A sem instancia-lo o objeto teria q ser do tipo static.
como por exemplo:
Math.sqrt(10);
Eu n preciso instanciar um objeto da classe Math para usar o método sqrt(calcula a raiz quadrada), pois os métodos da classe Math do pacote lang são estáticos.
Espero ter ajudado :lol: