Qual a melhor forma de os objetos conversarem?

10 respostas
souarte

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.

10 Respostas

R

ta desculpado… agora explica melhor :smiley:

aquilante

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

thegoergen

Também te desculpo…

souarte

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?

thegoergen

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…

souarte

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.

aquilante
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:

regisbten

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.

souarte

é! agora sim! rs.
realmente há esses métodos mesmo, que retornam instancias da outra classe. legal cara.

aquilante

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:

Criado 27 de março de 2008
Ultima resposta 28 de mar. de 2008
Respostas 10
Participantes 5