Comparando los objetos en java
Cuando usted comienza a trabajar con objetos en Java, usted encontrará que usted puede usar == y != para comparar objetos entre sí. Por ejemplo, un botón que se ve en la pantalla del ordenador es un objeto. Usted puede preguntar si lo que se acaba de hacer clic en el ratón es un botón especial en la pantalla. Esto se hace con el operador de igualdad de Java.
si (e.getSource () == bcopy) {Clipboard.SetText (which.getText ()) -
La gran Gotcha con el esquema de comparación de Java viene cuando se comparan dos cadenas. Cuando se comparan dos cadenas entre sí, usted no desea utilizar el signo igual doble. Utilizando el signo igual doble pediría, " Es esta cadena almacenada en el mismo lugar en la memoria como esa otra cadena "? Por lo general, eso no es lo que quieres preguntar.
En cambio, por lo general, quieres preguntar, " ¿Esta cadena tiene los mismos personajes en ella como esa otra cadena "? Para hacer la segunda pregunta (la pregunta más apropiada) Java Cuerda tipo tiene un método denominado iguales. (Al igual que todo lo demás en el universo conocido, esta es igual a método está definido en la API de Java, la abreviatura de Interfaz de programación de aplicaciones).
los es igual a método compara dos cadenas para ver si tienen los mismos personajes en ellos. Para ver un ejemplo de uso de Java es igual a método, ver el código lista. (La figura muestra una ejecución del programa en el anuncio.)
importación java.lang.System estática. * - importación-java.util.Scanner público de clase CheckPassword {static void main (String args []) {públicas out.print ("¿Cuál es la contraseña?") -Especificaciones del escáner teclado = new Scanner ( en) contraseña -string = keyboard.next () - out.println ("Escribió >>" + contraseña + "lt; lt;") - out.println () - si (contraseña == "pez espada") {cabo .println ("La palabra que ha escrito se almacena") - out.println ("en el mismo lugar que el verdadero") - out.println (". contraseña Usted debe ser un") - out.println ("hacker". ) -} else {out.println ("La palabra que ha escrito no es") - out.println ("almacenado en el mismo lugar que") - out.println ("la contraseña real, sino que es") - out.println ("no es gran cosa.") -} out.println () - if (password.equals ("pez espada")) {out.println ("La palabra que ha escrito tiene el") - out.println ("mismos caracteres que el verdadero ") - out.println (" contraseña Puede utilizar nuestro. ") - out.println (" sistema de preciosa ") -} else {out.println (". La palabra que ha escrito no ") - out. println ("tener los mismos caracteres como") - out.println ("la contraseña real de Usted no puede.") - out.println ("nuestro sistema precioso.") -} keyboard.close () -}}
En el perfil, la llamada keyboard.next () agarra cualquier palabra que el usuario escribe en el teclado del ordenador. El código empuja esta palabra en la variable llamada clave. Luego del programa si declaraciones utilizan dos técnicas diferentes para comparar clave con " pez espada ".
Los ejemplos en el libro impreso son en su mayoría basados en texto, pero se pueden encontrar versiones más elegantes de la mayoría de los ejemplos en los maniquíes sitio web. Estas versiones más elegantes tienen ventanas, botones, campos de texto y otros elementos de una típica Interfaz gráfica del usuario (GUI).
El más adecuada de las dos técnicas utiliza Java de es igual a método. los es igual a método parece gracioso porque cuando usted lo llama, se pone un punto después de una cadena y poner la otra cadena en paréntesis. Pero esa es la manera que tiene que hacerlo.
Al llamar a Java es igual a método, no importa qué cadena se pone el punto y que consiga los paréntesis. Por ejemplo, en el establecimiento, se podría haber escrito
si (.equals "pez espada" (contraseña))
El método podría funcionar igual de bien.
Una llamada a Java es igual a método parece desequilibrada, pero no lo es. Hay una razón detrás de la aparente desequilibrio entre el punto y los paréntesis. La idea es que usted tiene dos objetos: el clave objeto y la " pez espada " objeto.
Cada uno de estos dos objetos es de tipo Cuerda. (Sin embargo, clave es una variable de tipo Cuerda, y " pez espada " es un Cuerda literal). Cuando escribes password.equals ("pez espada"), que está llamando a un es igual a método que pertenece al objeto contraseña. Cuando se llama a este método, usted está alimentando " pez espada " al método como parámetro del método (nunca mejor dicho).
Al comparar cadenas entre sí, utilice el es igual a método - no es el doble signo igual.