dúvida sobre essa tecnica

Qual a diferença quando eu faço isso

NumberFormat formato = NumberFormat.getCurrencyInstance();

formato.format(variavel);

NumberFormat.getCurrencyInstance().format(variavel);

eu nao entendi isso direito na orientação a objetos…

Tipo o que acontece quando eu falo NumberFormat formato = NumberFormat.getCurrencyInstance;

me expliquem se tiver jeito!

Não tem nada a ver com orientação a objetos. Isso é só aplicação de funções.

NumberFormat formato = NumberFormat.getCurrencyInstance();

formato.format(variavel);

é a mesma coisa que

NumberFormat.getCurrencyInstance().format(variavel); 

O NumberFormat utiliza o desing-pattern de Singleton, seria
interessante que você lê-se sobre para entender melhor.

:arrow: No primeiro exemplo você pede a ele uma instância e armazena
ela na váriavel de referência formato.
:arrow: Ja no segundo você solicita uma instância do mesmo mas NÃO
armazena sua referência em uma variavel, executa um método (format) diretamente no objeto retornado, neste caso uma instância de NumberFormat o método format.

Acho que sua dúvida é devido ao encadeamento de métodos,
procuro alguma literatura sobre :slight_smile:

[quote=tgpadua]O NumberFormat utiliza o desing-pattern de Singleton, seria
interessante que você lê-se sobre para entender melhor.

:arrow: No primeiro exemplo você pede a ele uma instância e armazena
ela na váriavel de referência formato.
:arrow: Ja no segundo você solicita uma instância do mesmo mas NÃO
armazena sua referência em uma variavel, executa um método (format) diretamente no objeto retornado, neste caso uma instância de NumberFormat o método format.

Acho que sua dúvida é devido ao encadeamento de métodos,
procuro alguma literatura sobre :)[/quote]

nossa acho que agora deu para entender mais ou menos! vou ver sobre o Singleton que é realmente uma materia que estou estudando agora em java na faculdade…

Mas então o metodo getCurrencyInstance da classe NumberFormat me retorna um objeto ??? Ele me retorna um objeto que posso interpretar como uma subclasse da classe NumberFormat ??

Pois o objeto retornado me da outros metodos e nisso que eu não entendi direito saco? pq se eu pego NumberFormat. eu não tenho acesso ao metodo format…

Ai que entrei em parafuso!