Comprensión de clases y objetos de C ++ (1)

1. El concepto de clase

1. La clase es un concepto en la programación del lenguaje orientado a objetos y la base de la programación orientada a objetos.
2. La esencia de una clase es un tipo de datos de referencia, similar a los tipos de datos básicos como byte, short, int (char), long, float, double, etc. La diferencia es que es un tipo de datos complejo. Debido a que es esencialmente un tipo de datos, no datos, no existe en la memoria y no se puede manipular directamente, sólo cuando se instancia como un objeto se volverá operable.
3. La clase es una abstracción de una clase de cosas con características comunes en la vida real.
4. Las propiedades y métodos están encapsulados dentro de la clase para operar sus propios miembros. Una clase es la definición de un determinado objeto y tiene un comportamiento. Describe lo que un objeto puede hacer y el método que hace. Son programas y procesos que pueden operar sobre este objeto. Contiene información sobre cómo se comporta el objeto, incluido su nombre, propiedades, métodos y eventos.

De hecho, para entender de una manera más general, es abstraer el sistema al que pertenece. Ejemplo 1: Perros y Gatos pertenecen a animales. Luego podemos abstraer un concepto, abstraer el concepto de "animal", luego en la clase Puede declarar una clase;

class Animal
{
    
    
//方法

//属性


};

No es difícil comprender los atributos y métodos de las clases. Al igual que los gatos y los perros pertenecen a los animales, luego continúe abstrayendo sus puntos en común. Los gatos y los perros son animales, con nombres, pesos, edades y géneros. Todos estos se pueden usar como atributos de la "clase animal", por lo que podemos implementar esto en el código:

class Animal
{
    
    
public:
	//成员函数(方法,也可称为行为或者功能)
private:
	char m_Name[20];		//名字
	short m_Weight;			//体重
	short m_Age;			//年龄
	
};

La comprensión del método de una clase es en realidad el comportamiento de la clase, y también puede entenderse como la función que la clase puede realizar. Puede definir esta función usted mismo. Por supuesto, la función la define usted mismo y puede agregar funciones a voluntad. Pero por lo general, en programación, tratamos de ajustarnos al concepto tanto como sea posible. Por ejemplo, no se pueden abstraer las funciones que los animales no pueden lograr. Incluso si abstrae los comportamientos que los animales no pueden lograr, entonces si este comportamiento puede hacer que todos se involucren en la programación. ¿Comprensión? ¿O la función abstraída realmente tiene sentido?
Dado que es una abstracción de un elemento común, generalmente abstraemos el elemento común. En cuanto al uso y la función de la clase, hablaremos de ello más adelante, aquí solo resumí algunos de los métodos animales y definí la lógica del método, solo como un caso de comprensión de la clase.

#include<iostream>
using namespace std;
class Animal
{
    
    
public:
//抽象了一个移动方法
	void Move()
	{
    
    
		cout << m_Name << "移动了" << endl;
	}
//抽象了一个吃东西方法
	void Eat()
	{
    
    
		cout << m_Name << "吃东西了" << endl;
	}
//初始化Set函数,这里牵扯到了类的初始化,我们可以后续再细讲类的初始化
	void Set(char name[20], int weight, int age)
	{
    
    
		strcpy(m_Name,name);
		this->m_Weight = weight;
		this->m_Age = age;
	}
private:
	char m_Name[20];		//名字
	short m_Weight;			//体重
	short m_Age;			//年龄
	
};


En segundo lugar, el concepto de objetos

Este objeto no es el otro objeto. ¿Tienes un objeto? No lo sé en mi corazón. Bien, dejemos de bromear y sigamos entendiendo el concepto de objetos.
Concepto: una clase es una colección de cosas o eventos con características comunes, y un objeto de clase es una instanciación de una clase.

Inserte la descripción de la imagen aquí
El objeto aquí se refiere a una instancia específica, por lo que generalmente introducimos tal oración, el objeto de instanciación de una clase, en general, en realidad está creando una clase desde la perspectiva de Dios, por ejemplo, hemos creado una clase animal, Entonces, como "Dios", el concepto de "animal" no es suficiente. Tomemos cosas específicas, como gatos, perros, elefantes, etc. Para la categoría de "animales", usamos cosas específicas, ejemplos específicos, Para instanciar el objeto.

Porque solo al crear una instancia del objeto de clase, podemos comprender mejor la función de la clase. Qué puede hacer la clase y cuál es el papel de la clase. Aquí he instanciado objetos, gatos y perros a través del código.
Concéntrate en escucharInserte la descripción de la imagen aquí

int main()
{
    
    
	Animal Dog;				//用Animal类实例化对象 Dog,也就表明了Dog拥有了类的相关属性及行为
	Dog.Set("Tom", 10, 1);	//用Set方法给Dog初始化,因为还没引入构造函数的概念,因此这里我仅用Set函数进行初始化
	Dog.Eat();				//Dog调用Eat()方法
	Dog.Move();				//Dog调用Mova()方法
	Animal Cat;				//用Animal类实例化对象 Cat,也就表明了Cat拥有了类的相关属性及行为
	Cat.Set("Amy", 8, 1);	//用Set方法给Cat初始化,因为还没引入构造函数的概念,因此这里我仅用Set函数进行初始化
	Cat.Eat();				//Cat调用Eat()方法
	Cat.Move();				//Cat调用Mova()方法
	
	return 0;
}

resultado de la operación:
Inserte la descripción de la imagen aquí

Tres, la relación entre clase y objeto.

La relación entre una clase y un objeto es como la relación entre un molde y una fundición. El resultado de instanciación de una clase es un objeto y la abstracción de una clase de objetos es una clase. Una clase describe un grupo de objetos con las mismas características (atributos) y el mismo comportamiento (métodos) .

Cuarto, la diferencia entre clase y objeto.

1. La clase es un concepto abstracto. No existe en tiempo / espacio real. Las clases simplemente definen propiedades y comportamientos abstractos para todos los objetos. Al igual que la categoría "Animal", aunque puede contener muchos individuos, no existe en el mundo real.

2. El objeto es específico de la clase. Es algo real.

3. La clase es un concepto estático y la clase en sí no contiene ningún dato. Cuando no se crean objetos para la clase, la clase en sí no existe en el espacio de memoria.

4. El objeto es un concepto dinámico. Cada objeto tiene sus propios atributos y comportamientos únicos que son diferentes de otros objetos. Las propiedades de un objeto pueden cambiar con su propio comportamiento. (Es decir, en el código, llamadas artificiales, para procesar la lógica del código, cambiar debido al orden de las llamadas)

: : ProMer_Wang

Enlace: https://blog.csdn.net/qq_43801020/article/details/106879762

Este artículo es el artículo original de ProMer_Wang, los derechos de autor pertenecen al autor, indique la fuente del texto original para la reimpresión, ¡bienvenido a reimprimir!

Supongo que te gusta

Origin blog.csdn.net/qq_43801020/article/details/106879762
Recomendado
Clasificación