[explicación de núcleo duro oop] Hola profesor, soy compañero de clase Chen, ¿qué es orientado a objetos?¿Cómo debemos entender y pensar?

¿Recibió tres preguntas iguales hoy? Pregunta: Hola, Chen, ¿qué es la orientación a objetos? ¿Cómo podemos simplemente entenderlo? Orientado a objetos: ¿cómo entender objetos, clases, encapsulación, herencia, polimorfismo y combinación? ? ?

1. ¿Qué es la programación orientada a objetos OOP?

Como nuevo método, la Programación Orientada a Objetos (oop para abreviar) es esencialmente un proceso de pensamiento abstracto y un método orientado a objetos incorporado en la construcción de modelos.

Los modelos se utilizan para reflejar las características de las cosas en el mundo real. Es imposible que cualquier modelo refleje todas las características específicas de las cosas objetivas. Sólo puede ser una abstracción de las características y las leyes cambiantes de las cosas, y describir las características de los objetos de manera más general, más intensa y más profunda dentro del ámbito al que pertenece. implica. La abstracción lograda al construir un modelo es la profundización de la comprensión del objeto por parte de las personas.

2. ¿Qué es un objeto?

Objeto (Objeto): algo que puede hacer cosas con él. Un objeto tiene tres atributos: estado, comportamiento e identidad.

3. ¿Qué es una clase?

Una clase es una descripción de cierto tipo de cosa, que es abstracta, un objeto existe realmente y es un individuo de este tipo de transacción.

Después de leer el significado de los objetos y las clases, todavía no lo entiendo del todo. No importa. Pongamos un pequeño ejemplo:

Por ejemplo, los animales son una especie de "clase", y los perros, gatos, personas y ovejas son una especie de "objetos".

Wow, resulta que la clase es tan simple, entiendo, jejeje.

4. ¿Qué es la encapsulación?

La encapsulación se puede dividir en dos significados:

El primer significado: agrupar datos y operaciones para crear un nuevo tipo de proceso.
El segundo significado: el proceso de separar la interfaz de la implementación.

5. ¿Qué es la herencia?

Una relación entre clases en la que una clase comparte la estructura y el comportamiento definido por una o más clases. La herencia describe la relación "es un tipo de" entre clases. Las subclases pueden extender, anular y redefinir el comportamiento de la clase base.

6. ¿Cuál es la combinación?

La composición es tanto una relación entre clases como una relación entre objetos.
En esta relación un objeto o clase contiene otros objetos y clases.
En pocas palabras: una composición describe una relación "tiene".

7. ¿Qué es el polimorfismo?

Un concepto en la teoría de tipos por el cual un nombre puede denotar objetos de muchas clases diferentes relacionadas con una superclase común. Por lo tanto, cualquier objeto denotado por este nombre puede responder de manera diferente a algún conjunto común de operaciones.

8. Dos secciones de código mágico OOP y no OOP

Después de hablar sobre el concepto, veamos dos piezas de código: 01 es código de lenguaje C sin programación orientada a objetos y 02 es código C++ con programación orientada a objetos .

01

#include<stdio.h>

//定义变量
char *name;
int age;
float score;

//定义函数
void display(){
    
    
    printf("%s的年龄是%d,高考成绩是%1f\n",name,age,score);
}

int main(){
    
    
     //变量赋值
	name = "张三";
	age = 30;
	score = 662;
	 //调用函数
	 display();

	 return 0;
}

inserte la descripción de la imagen aquí
Resultado de la ejecución del código: la edad de Zhang San es 30 y su puntaje en el examen de ingreso a la universidad es 662.

02

#include<stdio.h>

//通过class关键字类定义类
class Student{
    
    
public:
	//类包含的变量
	char *name;
	int age;
	float score;
	//类包含的函数
	void display(){
    
    
	    printf("%s的年龄是 %d,高考成绩是%.1f\n",name,age,score);
	}
};

int main(){
    
    
    //通过类来创建对象
	Student stu1;
	//类中的变量赋值
	stu1.name = "张三";
	stu1.age = 30;
	stu1.score = 662;
    //调用类中的函数
	stu1.display();

	return 0;
  
}

inserte la descripción de la imagen aquí
Resultado de la ejecución del código: la edad de Zhang San es 30 y su puntaje en el examen de ingreso a la universidad es 662.

9. Comprensión profunda de clases y objetos.

1. Una clase

01 y 02 tienen el mismo código ejecutando resultados? ? ? ¿Qué está sucediendo? Piense detenidamente en las clases y los objetos de los que hablamos anteriormente.

En los lenguajes de programación, consideramos las variables como datos, que se utilizan para almacenar diversas formas de valores; consideramos las funciones como operaciones, que se utilizan para realizar cierto procesamiento en los datos. Todos los códigos se componen de datos y operaciones, y la esencia de la operación del programa es realizar varias operaciones en los datos.

Antes de la aparición de OOP, los datos y las operaciones estaban separados, y no podíamos agregar datos y operaciones relacionados sintácticamente. Cuando la cantidad de código aumentó drásticamente, fue difícil para nosotros determinar qué datos estaban asociados con qué operación, lo que resultó en lógica. Muy desordenado, no propicio para el desarrollo de programas a gran escala.

Con OOP, podemos poner datos y operaciones relacionados en un contenedor, que es una clase. Las clases encapsulan variables y funciones relacionadas juntas para que estén gramaticalmente asociadas y aisladas de las variables/funciones en otras clases para evitar una mala operación.

inserte la descripción de la imagen aquí

Las clases están aisladas entre sí. Esto significa que las variables y funciones solo son válidas en la clase actual y no son visibles para otras clases. Por ejemplo, una función en la clase A no puede usar variables en la clase B, y viceversa.

OOP es en realidad una especie de idea de encapsulación de código. Pone variables y funciones relacionadas en una clase, las protege y las aísla, y forma pequeños módulos uno por uno. Cada módulo pequeño puede completar una pequeña tarea.

La programación orientada a objetos no tiene absolutamente ninguna ventaja en la eficiencia de la ejecución del código. Su objetivo principal es facilitar a los programadores la organización y gestión del código, clasificar rápidamente las ideas de programación y aportar innovaciones en el pensamiento de programación.

2. Dos clases de exploración y objetos

A través del código C++ anterior en 02, se puede encontrar que la clase no se puede usar directamente.Es necesario crear un objeto (objeto) a través de la clase primero, y luego llamar a las variables y funciones en la clase a través del objeto .

En términos sencillos, una clase es solo un tipo de datos complejo construido por el usuario. Es lo mismo que los tipos básicos como enteros (int), decimales (float) y cadenas (string). Las variables deben definirse antes de que puedan ser Las variables definidas por la clase tienen un nuevo nombre llamado objeto.

No importa si no entiendes, pongamos otro pequeño ejemplo:

Al comparar clases con dibujos y objetos con partes, los dibujos describen los parámetros (variables de miembros) y las tareas (funciones de miembros) de las partes; un dibujo puede producir varias partes con las mismas propiedades y diferentes dibujos pueden producir diferentes tipos de partes.

Una clase es solo un dibujo, que sirve como ilustración y no ocupa espacio en la memoria; los objetos son partes específicas y ocupan espacio en la memoria solo si tienen un lugar para almacenarlos.

En C++, se puede crear un objeto a través del nombre de la clase, es decir, el dibujo se produce en una parte.Este proceso se denomina instanciación de la clase, por lo que el objeto también se denomina instancia de la clase (Instancia).

Supongo que te gusta

Origin blog.csdn.net/qq_62259825/article/details/126440781
Recomendado
Clasificación