Clase de objeto de clase común JavaSE (12)

Uno, la introducción de la clase Object
  1. Clase de objeto: ubicada en el paquete java.lang, es la clase raíz y la superclase de la relación de herencia, y la clase padre de todas las clases (clase padre directo o clase padre indirecto);

  2. Las referencias de tipo de objeto se pueden utilizar para almacenar cualquier tipo de objeto;

  3. Los métodos se definen en la clase Object y todas las clases se pueden utilizar directamente.

2. Métodos comunes en la clase Object:
  1. getClass (): devuelve el tipo de objeto realmente almacenado en la referencia.

    Desarrollo de aplicaciones prácticas: se utiliza para determinar si los tipos de objetos realmente almacenados en las dos referencias son los mismos,

    Consistente-verdadero; inconsistente-falso.

    class Animal{
          
          }
    class Dog extends Animal{
          
          }
    class Cat extends Animal{
          
          }
    public class TestAnimal{
          
          
        public static void main(String[] args){
          
          
            Animal a1 = new Cat();
         	Animal a2 = new Dog();
          	System.out.println(a1.getClass() == a2.getClass());
        }
    }
  2. int hashCode (): Devuelve el valor del código hash entero del objeto. La fuente del valor del código hash del objeto es

    La dirección en hexadecimal, el resultado de convertir un entero decimal.

    Nota: dado que los diferentes objetos tienen diferentes direcciones en el espacio del montón, todos los diferentes objetos

    Tiene diferentes valores de código hash.

  3. String toString (): Devuelve la forma de realización de la cadena del objeto.

    (1) Función: es conveniente mostrar la información del objeto, y la subclase generalmente cubre el método toString

    (2) El principio de cobertura del método toString es: normalmente todos los atributos se empalman en una cadena.

    Se devuelve el resultado.

    public class TestStudent{
          
          
        public static void main(String[] args){
          
          
            Student s = new Student("liucy",18,99.0);
            System.out.println(s);// 默认调用toString方法
        }
    }
    class Student{
          
          
        private String name;
        private int age;
        private double score;
        public Student(){
          
          }
        public Student(String name,int age,double score){
          
          
            this.name=name;
            this.age=age;
            this.score=score;
        }
        // get/set
        public String toString(){
          
          
            return "name:"+name+",age:"+age+",score:"+score;
        }
    }

    Nota: La diferencia entre el método get y el método toString:

    a. El método get devuelve la información de un solo atributo del objeto y no cambia los datos correspondientes del atributo

    Tipo de

    b. El método toString obtiene la información de todos los atributos y empalma todos los atributos en uno

    Se devuelve el resultado del tipo String.

  4. boolean equals (Object o): se usa para comparar si el contenido del objeto es el mismo.

    == Aplicación

    (1) Si los dos extremos de == son variables de tipo de datos básico, juzgue si los valores en las variables son los mismos

    Si ambos extremos de == son referencias, se juzga si las direcciones almacenadas en las referencias son las mismas.

    (2) Aplicación práctica en desarrollo: generalmente se usa para determinar si dos referencias apuntan al mismo objeto.

    Expresión: nombre de referencia 1 == nombre de referencia 2

    A. El resultado es verdadero, lo que significa que las dos referencias apuntan al mismo objeto;

    B) El resultado es falso, lo que significa que las dos referencias apuntan a objetos diferentes.

    Aplicación del método de iguales:

    (1) El principio de implementación del método equals en la clase principal Object class es el siguiente:

    public boolean equals(Object obj) {
          
          
    	return (this == obj);
    }

    Nota: El método equals en la clase principal se usa para comparar si dos referencias son el mismo objeto, pero durante el desarrollo, el método equals generalmente se usa para comparar el contenido del objeto, por lo que el método equals en la clase principal no es suficiente para satisfacer las necesidades de la subclase, por lo que debe anular el método equals en la clase principal Object.

    (2) El principio de cobertura del método de iguales:

    public boolean equals(Object obj){
          
          
    	// 1. 自反性:判断当前对象和要比较的对象是否为同一个对象 :        //this(当前对象) 和  obj(要比较对象) 
    	if(this == obj){
          
          
    		return true;
    	}
    	// 2. 判断 obj是否 空
    	if(obj == null){
          
          
    		return false;
    	}	
    	// 3. 判断 两个引用中实际存储的对象类型是否一致
    	if(this.getClass() != obj.getClass()){
          
          
    		return false;
    	}
        
    	// 4. 强制类型转换: 为一一比较对象属性做准备
    	Student s = (Student)obj;
    		
    	// 5. 将对象中属性一一进行比较:基本数据类型的属性:==  ; 引用类型:equals比较
    	if(this.age == s.age && this.score == s.score && this.name.equals(s.name)){
          
          
    		return true;
    	}else{
          
          
    		return false;
    	}
    }

    Enfoque de la entrevista: La diferencia entre el método == y es igual.

    (1) == Ambos extremos son tipos de datos básicos, compare si los valores en las variables son iguales

    == Ambos extremos son variables de tipo de referencia, compare si la dirección de almacenamiento de referencia es la misma

    (2) Método Equals: el método en la clase Object se usa para implementar (==) implementación, comparar el objeto

    Dirección; pero en el desarrollo real, es necesario sobrescribir el método equals para comparar objetos

    Si el contenido de es el mismo.

  5. finalize (): un método que se llama automáticamente cuando la JVM realiza la recolección de basura.

    (1) Objeto de basura: un objeto apuntado sin referencia.

    Estudiante s = nuevo Estudiante ();

    s = null; // Establecer el objeto al que apunta s como un objeto basura

    (2) Recolector de basura: utilizado por JVM para recolectar objetos de basura. Denominado gc / GC

    (3) El propósito de la recolección de basura: eliminar objetos de basura, liberar espacio y mejorar la utilización del espacio.

    (4) Cuando el recolector de basura recolecta objetos de basura:

    a. Mecanismo de reciclaje automático: cuando la memoria de la JVM se agota y ya no se puede asignar espacio para los objetos recién creados, el recolector de basura en la JVM reciclará automáticamente todos los objetos de basura a la vez. Cuando el recolector de basura recicla los objetos de basura, la finalización se llama automáticamente al método.

    b. Mecanismo de recolección manual: Use System.gc (); Notifique al recolector de basura (GC) para realizar la recolección de basura, si el GC está inactivo, entonces se realizará la recolección de basura, si el GC está ocupado, no se recolectará temporalmente

    Nota: Durante el desarrollo, no se escribe ningún código importante en el método finalize y el nodo de ejecución del método finalize es incontrolable.

Supongo que te gusta

Origin blog.csdn.net/Java_lover_zpark/article/details/105259729
Recomendado
Clasificación