Operador new

Bem, andei lendo sobre a funcionabilidade do operador new em C++ e pude entender que ele funciona tipicamente como um malloc. No entanto, em Java me deparei com o esse código

setBackground(new java.awt.Color(255, 255, 255));

e não compreendi o uso desse new. Alguém poderia me explicar?

Só pra constar, um uso como este

Classe obj = new Classe();

eu entendo perfeitamente.

[]s à comunidade.

It’s a mistake…

É exatamente o mesmo. Você está criando um objeto do tipo “Color” que será enviado como parâmetro para a função setBackground.

É exactamente igual a

java.awt.Color color = new java.awt.Color(255, 255, 255); setBackground(color);

ou, se fosse feito o import no inicio do código:

Color color = new Color(255, 255, 255); setBackground(color);

Bom! Vc ao mesmo tempo que instancia, vc importa saca?

Nesse caso especifico, vc está criando um “objeto anônimo” podemos dizer assim, ou uma referência anônima a um objeto do tipo Color entendeu? Toda vez que vc ver assim é ISSO. Vc pode encontrar assim:

            [code]new NomeDaClasse().chamandoMetodoDaClasse();[/code]

Nesse caso além de ser anônimo, vc chama o método no momento da instância.
Em termos de “clareza” do código, não é recomendável essa utilização! Porém é absolutamente comum em SCJP por exemplo.

:wink:

Vish, entendi. Valeu ae galera! :smiley:

Depois que seu problema tiver resolvido, vá no primeiro post, editar o Título adicionando a tag [RESOLVIDO] no final do Título .