Equals

E qual é a vantagem de uasr um IF assim pessoal?

IF (“ocorrencia”.equals(objeto))

Se possível uma outra dúvida, quais os principais designs patterns e suas utilizações???

Primeira pergunta,

IF ("ocorrencia".equals(objeto)) 

Isso que você fez somente chamar um método de uma String.
Posso estar enganado, mas seria semelhante a:

[code]
String a=“ocorrencia”;
IF (a.equals(objeto))

[quote]
Acredito que você simplismente usou um método de uma string sem atribui-la em uma variável do tipo String.

Sobre a segunda pergunta todos são importante para eles somente são usados para diferentes situações.

[quote=rico.bezerra]E qual é a vantagem de uasr um IF assim pessoal?

IF (“ocorrencia”.equals(objeto))[/quote]

Fazer o equals com a String literal na esquerda garante que a gente não vai receber um NullPointerException. Imagine o seguinte código:

public void compara(String valor) { if(valor.equals("minhaString") { //faz algo } }

E a gente chamasse:

compara(null)

ocorreria NullPointerException. Desse modo que você apresentou, ele só retornaria false na comparação e continuaria com o código normalmente.

Os mais conhecidos são os padrões GoF. Recomendo você começar a estudar padrões de projeto pelo livro “Use a Cabeça Padrões de Projeto” e depois de ter adquirido familiaridade, podes partir para esse livro.

A “vantagem” como já falaram, é evitar o null pointer exception, caso o objeto em questão seja nulo.
Agora, em 90% das vezes, receber nulo num método pode ser um erro. Nesse caso, esse código o mascaria. Por isso, quando vc não quiser nulo, valide seus parâmetros, ou deixe o NullPointer estourar e corrija o problema.

equals geralmente é usado para comparar uma string.
exemplo:
um valor numérico você compara assim :


if(numero == 2){

// faça isso....

}

// se você usar o sinal de == para comparar String não funciona... então vc faz assim...

String nome = "Felipe";

if(nome.equals("Felipe")){

//Faça isso.

}

/*
outra coisa... para o computador, para o java letra maiúscula é diferente de minúscula... pra gente é igual mas para o computador as duas são diferente... 
o nome disso é Case Sensitive... então como vc não sabe se a variável vai receber letra maiúscula ou minúscula vc coloca um ignoreCase no equals assim...
*/

if(nome.equalsIgnoreCase("Felipe")){


}