Introducción
Clase de objeto: esta clase java.lang.java es la clase principal heredada por todas las clases de forma predeterminada.
Tres métodos de uso común en la clase de objeto: toString() , equal() , hashCode()
1. Autodescripción del objeto del método toString () y la autointroducción del objeto
Durante la autodescripción de un objeto, ya que es problemático imprimir variables de instancia utilizando el método get() , toString() se usa para simplificar.
Public String toString () {return "Learn Well" + getNo () + "nombre" + getName ();} System.out.println(s); es equivalente a System.out.println(s.toString());
Impresión:
a. Imprima su valor directamente cuando el tipo de datos básicos
b. Llamar toString() cuando se refiere al tipo de datos e imprima
Si toString() en la clase de objeto no se reescribe, imprima el objeto directamente y el resultado obtenido en la consola es:
Hashcode que contiene nombre completo @ objeto
2. Reescribir el método igual () igual () debe reescribir hashcode ().
Equals() compara el contenido de dos objetos, o los dos objetos; hashCode() es la dirección interna del objeto y es un entero.
== Diferencia entre igual ()?
Respuesta: == La comparación esencial es binaria, el tipo de datos básico compara valores numéricos y el tipo de datos de referencia compara la dirección
Equals() se divide en equals() de la clase de objeto y equals() de la clase de cadena. equals() de la clase de objeto es equivalente a == comparando el tipo de referencia; equals() de la clase de cadena anula equals() en la clase de objeto, comparando valores literales.
Instanciaf determina el nombre de la clase o puede usar la reflexión
El nombre de la variable de referencia del objeto Nombre de la expresión del nombre de clase, si el nombre de la variable de referencia del objeto es la clase o objeto de clase base cuyo valor de retorno sigue siendo verdadero.
Método personalizado equals() :
1. El mismo tipo
2. Defina sus propias reglas de comparación
public boolean iguales (objeto objeto) {// reescribe el método igual () del objeto igualstest igual = (igualstest) object; if (igualstest.getclass () == igualstest.class) {/???????????????F(thhis.name=equalStest.name)&&(this. verdadero;} else {return false;}} else {return false;}}3. El método hashcode () se utiliza para acelerar e implementar la búsqueda de índice (algoritmo de consulta, algoritmo de almacenamiento)
Public int hashcode () {return this.name.hashcode ()*13 + nuevo interger (getage) .hashcode ()*12;}Dos principios de hashcode:
1. Cuando el valor de retorno de los dos objetos equals() los métodos es verdadero, sus métodos hashCode() también deben garantizar que el valor de retorno sea el mismo.
2. Use equals() para comparar las propiedades utilizadas en el objeto, y todas ellas deben usarse para calcular hashCode() .
algoritmo hashcode () hash
necesidad:
1. El valor de retorno de hashCode() es el mismo, y el valor de retorno equals() también debe ser el mismo.
2. Reescribe qué atributos usar hashCode() y qué atributos usar en equals() .
NOTA: Hashcode es el mismo, igualmente no es necesariamente lo mismo.
Hashcode se usa para juzgar las carpetas, y es igual a juzgar archivos.
Si hashCode() no está anulado, el método hashcode () predeterminado se encuentra en función de la dirección del objeto (el valor clave es la dirección del objeto)
Si reescribe hashCode() , no se puede usar para determinar si es el mismo objeto.
Puede usar System.identityHashCode (el nombre de referencia del objeto) Si el CODE HASHCODE es el mismo, es el mismo objeto.
System.out.println(System.identityHashCode(对象的引用名));
Si no hay hashCode() , la dirección del objeto calcula el hashcode de su objeto.
System.out.println(对象引用名.hashCode());
Nota: Si los elementos existen en la colección hashset y los métodos para eliminar las dependencias de la operación son hashCode() e equals() del elemento.
Resumir
Los anteriores son tres métodos comunes de objeto principal en Java compilado para usted. Espero que te sea útil. Si tiene alguna pregunta, puede dejar un mensaje para comunicarse. Gracias por su apoyo a Wulin.com.