Comparar objetos em java

Quando você começar a trabalhar com objetos em Java, você achar que você pode usar ==

e != para comparar objetos uns com os outros. Por exemplo, um botão que você vê na tela do computador é um objeto. Você pode perguntar se a coisa que foi apenas mouse clicado um botão especial na sua tela. Você pode fazer isso com o operador de igualdade de Java.

if (e.getSource () == bcopy) {Clipboard.SetText (which.getText ()) -

A grande pegadinha com o esquema de comparação de Java vem quando você comparar dois strings. Quando você compara duas cadeias de uns com os outros, você não quer usar o sinal de igual duplo. Usando o sinal de igual duplo perguntava: “É este cadeia armazenada em exatamente o mesmo lugar na memória como aquela outra corda?” Normalmente, não é isso que você quer perguntar.

Em vez disso, você geralmente deseja perguntar: “Será que esta cadeia tem os mesmos personagens nele como aquela outra corda?” Para pedir a segunda questão (a pergunta mais apropriada) Java de Corda tipo tem um método chamado é igual a. (Como tudo no universo conhecido, este é igual a método é definido na API do Java, abreviação de Application Programming Interface).

o é igual a método compara duas strings para ver se eles têm os mesmos personagens neles. Para um exemplo usando Java de é igual a método, consulte esta lista de códigos. (A figura mostra um funcionamento do programa na listagem.)

Video: Comparando Objetos String java

importação java.lang.System estática. * - import classe java.util.Scanner-pública CheckPassword {void main (args String []) public static {out.print ("Qual é a senha? ") Teclado -Especificações do Scanner = new Scanner (in) -String password = keyboard.next () - out.println ("você digitou gt; gt;" + Senha + "lt; lt;") -out.println () - se (password == "peixe-espada") {Out.println ("A palavra digitada é armazenada") -out.println ("no mesmo lugar como o verdadeiro") -out.println ("senha. Você deve ser um") -out.println ("hacker.") -} else {out.println ("A palavra que você digitou não é") -out.println ("armazenados no mesmo lugar como") -out.println ("a senha real, mas isso é") -out.println ("nada demais.") -} out.println () - if (password.equals ("peixe-espada")) {Out.println ("A palavra digitada tem a") -out.println ("mesmos caracteres que o real") -out.println ("senha. Você pode usar nosso") -out.println ("sistema precioso.") -} else {out.println ("A palavra que você digitou não") -out.println ("têm os mesmos caracteres que") -out.println ("a senha real. Você não pode") -out.println ("use nosso sistema precioso.") -} keyboard.close () -}}

No perfil, a chamada keyboard.next () agarra qualquer palavra que o usuário digita no teclado do computador. O código empurra esta palavra na variável chamada senha. Em seguida, o programa E se declarações utilizar duas técnicas diferentes para comparar senha com "peixe-espada".

Os resultados do uso == e usando Java do método é igual.
Os resultados do uso == e usando Java do método é igual.


Os exemplos no livro impresso está baseada em texto, mas você pode encontrar versões mais extravagantes da maioria dos exemplos de Bobos local na rede Internet. Estas versões mais extravagantes têm janelas, botões, campos de texto e outros elementos de um típico Interface gráfica do usuário (GUI).

O mais apropriado das duas técnicas usa Java de é igual a método. o é igual a método parece engraçado porque quando você chamá-lo, você coloca um ponto depois de uma corda e colocar a outra corda entre parênteses. Mas essa é a maneira que você tem que fazer isso.

Ao chamar Java do é igual a método, não importa que a corda fica o ponto e que recebe os parênteses. Por exemplo, no perfil, você poderia ter escrito

E se ("peixe-espada".equals (password)) 

O método iria funcionar tão bem.

Uma chamada para Java do é igual a método parece desequilibrada, mas não é. Há uma razão por trás da aparente desequilíbrio entre o ponto e os parênteses. A idéia é que você tem dois objetos: o senha e o objeto "peixe-espada" objeto.

Cada um desses dois objetos é do tipo Corda. (Contudo, senha é uma variável do tipo Corda, e "peixe-espada" é um Corda literal.) Quando você escreve password.equals ( “peixe-espada”), você está chamando um é igual a método que pertence ao objeto senha. Quando você chamar esse método, você está alimentando "peixe-espada" para o método como parâmetro do método (trocadilho intencional).

Video: Tutorial 25 Java NetBeans - Ordenar objetos List, ArrayList, LinkedList

Ao comparar cadeias de uns com os outros, use o é igual a Método - e não o sinal de igual duplo.


Publicações relacionadas