Aprendizaje orientado a objetos Java

Dado que los puntos de conocimiento de clases y objetos son relativamente difíciles, y los puntos de conocimiento involucrados son muy amplios y complicados, aquí se aprenden como un único punto de conocimiento. Aprenderé este punto de conocimiento a través de diferentes videos, diferentes materiales y de acuerdo a diferentes características.

1. Comprender qué son las clases y los objetos.

Una clase es una plantilla para una clase de objetos, que define las propiedades y métodos que tiene una clase de objetos.

Vea la imagen a continuación: Combinando los puntos de conocimiento de la pila y el montón, el usuario4 se almacena en la pila y la nueva Clase (~) se almacena en el montón. 

Procedural y Orientado a Objetos:

Constructor (método de construcción):

En general, los atributos de una clase también se denominan variables miembro. El ámbito del atributo es todo el cuerpo de la clase. Al definir variables miembro, si no hay una inicialización de alineación, Java utilizará el valor predeterminado. Por ejemplo: o, null (null es generalmente el valor predeterminado del objeto).

¿Y cómo inicializar las propiedades en la clase? ¡Usa constructores!

concepto:

 Algunas notas sobre la creación de constructores:

Por ejemplo: mira la segunda imagen, doble x, y, es equivalente a crear dos espacios. Y llamado x, y.

Compare los métodos Getter y Setter con los métodos constructores:

Análisis de memoria JVM:

La memoria de la máquina virtual Java se puede dividir simplemente en tres partes:

Pila de máquina virtual (Pila JVM), montón, área de método área de método.

Su introducción se muestra en la siguiente figura:

Análisis de la memoria de proceso de la ejecución del programa (énfasis):

Los puntos de conocimiento de esta sección resumen los puntos de conocimiento aprendidos anteriormente. A través del siguiente ejemplo, es una buena explicación de los cambios de memoria de varias partes durante la ejecución del programa. !

Resumen: (Necesito recordar)

Cada objeto de la misma clase tiene diferentes variables miembro para almacenar espacio.

Cada objeto de la misma clase comparte los métodos de esa clase.

Atributos en el proceso de asignación de clase (considerar solo variables de instancia):

Esta es en realidad la diferencia entre inicialización e instanciación. Los atributos de una clase se denominan variables de instancia, también denominadas variables miembro.

Mecanismo de paso de parámetros:

Dividido en dos valores de paso. Sin embargo, lo que tienen en común es que todo pasar por valor es "pasar por valor".

diferentes lugares:

Además, si se pasa el parámetro de tipo de referencia, el objeto de parámetro original apuntará a un espacio nulo. Esto implica el mecanismo Gc. (Es decir, el mecanismo de recolección de basura).

Mecanismo de recolección de basura:

La gestión de memoria de Java, en gran medida, es en realidad la gestión de instancias de objetos en el montón. Esto incluye la asignación y desasignación de espacio de objetos. (¡Atención! Debe ser la asignación del espacio del objeto. No es inicialización ni creación. Creación significa, por ejemplo, una clase de Persona. Entonces crear un objeto es: Persona usuario. La persona misma ha creado un espacio, y usuario es el nombre de este espacio En la comprensión previa de las variables, el ejemplo del espacio de estacionamiento explicaba muy bien el nombre.)

Pregunta de la entrevista: ¿Cuál es la diferencia entre inicialización e instanciación?

pérdida de memoria:

Las siguientes tres situaciones tienen más probabilidades de causar fugas de memoria:

 De hecho, el último tipo, o incluir el segundo tipo, puede causar fugas de memoria si el ciclo de vida es demasiado largo, especialmente para procesos con conexiones no cerradas.

estático和esto:

La esencia de esto es: la dirección del objeto creado. (De hecho, es la dirección del objeto actual).

esto no se puede utilizar en métodos estáticos.

Las variables miembro declaradas estáticas son miembros estáticos, también conocidos como variables de clase. (El ciclo de vida de las variables de clase es el mismo que el de las clases)

Características: Es una variable común de esta clase, compartida por todas las instancias.

           Para todos los objetos de esta clase, solo hay una variable miembro estática, que comparten todos los objetos de esta clase.

           No es necesario instanciarlo, se llama directamente con el nombre de la clase.

Las propiedades y los métodos no estáticos no se pueden colocar en métodos estáticos.

Los constructores se utilizan para inicializar objetos.

variable:

  Las variables generalmente se dividen en variables locales (almacenadas en la pila), variables miembro (también llamadas variables de instancia, almacenadas en el montón) y variables estáticas (también llamadas variables de clase, almacenadas en la pila).

Mecanismo del paquete:

El mecanismo del paquete resuelve el problema de la duplicación de clases. Los paquetes son para las clases lo que las carpetas son para los archivos.

Utilice importar para importar paquetes. Cuando use import com.util.*, debe prestar atención: el uso de * reducirá la velocidad de compilación, pero no reducirá la velocidad de ejecución.

Pregunta: También puede importar propiedades estáticas. Los paquetes Java.lang se pueden usar directamente sin importar.

Dos, las tres características principales de la programación orientada a objetos. 

La programación orientada a objetos tiene tres características: herencia, encapsulación y polimorfismo.

La herencia se extiende:

     No hay herencia múltiple para clases en Java, pero herencia múltiple para interfaces.

     La subclase hereda la clase principal y puede obtener todas las propiedades y métodos de la clase principal (no se permiten los privados)

     Si la clase definida no llama a las extensiones, su clase principal es: java.lang.Object.

instancia del operador:

   Es un operador binario para tipos booleanos con objetos a la izquierda y clases a la derecha. Devuelve True cuando el objeto de la izquierda es un objeto creado por la clase de la derecha.

Anulación del método:

   Solo tres puntos. No puedo recordar buscarlo yo mismo. Esto se ha dicho una y otra vez.

palabra clave final:

Herencia y Composición:

El código de la clase definida se puede reutilizar fácilmente a través de la herencia. Por supuesto, el código también se puede reutilizar en forma de combinación.

La composición, de hecho, es crear una instancia de objeto de otra clase en una clase y agregar este objeto en la clase de prueba. Como se muestra abajo:

 Resumen: la combinación es más flexible, mientras que la herencia tiene solo una clase principal, pero la combinación puede tener múltiples atributos y cada uno tiene sus propias ventajas. transmisión exterior

Encapsulación:

¿Por qué necesitas aprender encapsulación?

 ¿Qué es la encapsulación?

 

Cómo lograr la encapsulación:

De hecho, se define mediante modificadores de permisos.

Ejemplo usando encapsulación:

 

La combinación también tiene un escenario de aplicación, que se utiliza en la relación de composición, por ejemplo, creando clases de clientes y clases de cuentas. Estas dos clases son independientes. Cómo hacer que los clientes y las clases de cuenta estén relacionados entre sí. Puntos de conocimiento desde el diseño hasta la combinación:

Modificadores de permisos:

  Al configurar las propiedades de la clase como privadas, solo se puede acceder a las propiedades de la clase a través del método setter en la clase de prueba.

  Prioridad: privado> predeterminado (sin modificador por defecto)> protegido> público

  Clase: solo se pueden usar decoraciones públicas y predeterminadas.

  Miembros internos de la clase: se pueden usar 4 permisos para modificar.

En JSP, refleja la encapsulación:

Por ejemplo, para conectarse a la base de datos, la clase POJO se llama JavaBean.

Clase de objeto:

Es la clase base raíz para todas las clases de Java. Todas las propiedades y métodos, excepto los constructores, se heredan. Sin embargo, no se pueden utilizar todas las clases.

Encadenar():

Definido en la clase Object, su tipo de retorno es de tipo String. El contenido devuelto es el nombre de la clase y su dirección de referencia. Sin embargo, en aplicaciones prácticas, a menudo anulamos el método toString.

es igual y ==:

En el objeto, == significa juzgar si es el mismo objeto. equals determina si dos objetos tienen el mismo valor lógico.

Diferencia: "=" se usa para tipos de datos básicos y los iguales se usan para tipos de datos de referencia. Por ejemplo: String es un tipo de datos de referencia. Para comparar cadenas por igualdad, use equals.

 Entrenamiento de proyecto manual: (prueba de fuerza de aprendizaje)

Blog de referencia:

(47 mensajes) Java—Sistema de gestión de información del cliente de Shang Silicon Valley [Proyecto 2] (¡familiarizado con el marco, familiarizado con la estructura de diseño!)_Departamento de gestión de relaciones con el cliente de Shang Silicon Valley_丿今朝的博客-CSDN博客

Vídeo de referencia:

92-Orientado a objetos (avanzado)-Proyecto 2: Demostración e implementación de código del sistema de gestión de clientes de comercio electrónico Pinyin_哔哩哔哩_bilibili

objetivo de la misión:

  1. El cliente es un objeto de entidad que se utiliza para encapsular la información del cliente.
  2. CustomerList es el módulo de administración de objetos de Cliente, utiliza matrices internamente para administrar un grupo de objetos de Cliente y proporciona los métodos correspondientes para agregar, modificar, eliminar y atravesar para que CustomerView llame
  3. CustomerView es el módulo principal, responsable de la visualización del menú y el procesamiento de la operación del usuario

 El diagrama de clases UML de la tarea es el siguiente:

 

 El papel específico de estos métodos:

 No hablaré de los últimos tres, es muy simple, es el valor de retorno que coincide con nuestros atributos.

Después de escribir estos métodos, podemos realizar pruebas unitarias .

A partir del tercer paso para realizar la página de vista de vista, no puede escribirla temporalmente. Realice principalmente los dos primeros. Los dos primeros métodos se han mencionado. Después de escribir las dos primeras páginas, podemos probar nuestro efecto. 

Esta es la vista principal de la interfaz para ingresar: los puntos de conocimiento diseñados por esta vista son muy interesantes. Puedes sacarlo y probarlo.

Se trata de una declaración de cambio. El uso del método selecto! ¡Gran idea!

Problema encontrado:

dentro del método de eliminación. Aunque pensé en agregar una declaración de juicio, cuando solo hay un elemento, solo asígnelo a nulo. Pero al final algo salió mal. La mejor manera es que el siguiente bucle for también se pueda usar como condición de juicio.

public boolean delete(int index){
   if(index<0 || index>total){
       return false;
   }
//涉及的思想就是,当只有一个元素时,这个for循环就不运行。(这个用法请牢记!)
//这样,直接运行下面,把这个元素赋值为null。
//删除的操作,有两步:第一步,找到删除的元素。将其指向下一位元素。(如果只有一个元素,这一步就跳)
                   第二步,将下一位元素指向null。并把元素总数减一。
   for(int i=index;i<total;i++){
       customers[i]=customers[i+1];
   }
   customers[total]=null;
   total--;
   return true;
}

Supongo que te gusta

Origin blog.csdn.net/qq_55928086/article/details/131903758
Recomendado
Clasificación