c concepts constructor
Este tutorial explica algunos de los conceptos importantes de la programación C #, como constructor, destructores, clase estática, estructuras y enumeraciones:
En uno de nuestros tutoriales anteriores sobre objetos y clases, aprendimos qué son una clase y un objeto.
Un objeto es similar a un objeto del mundo real y una clase es una colección lógica de tipos similares de objetos. Es uno de los tipos más fundamentales presentes en C #. En este tutorial, profundizaremos en los otros conceptos relacionados de C #.
=> Explore la serie completa de capacitación de C # aquí
En este tutorial, aprenderemos sobre algunos aspectos importantes de las clases y cómo podemos usarlos en nuestros programas. Intentaremos crear programas simples en C # basados en los conceptos que aprendimos en nuestros tutoriales anteriores.
Lo que vas a aprender:
- ¿Qué es un constructor en C #?
- Destructores en C #
- Miembros estáticos en una clase
- Clase estática en C #
- Estructuras en C #
- Diferencia entre estructura y clase
- Estructura: Definición
- Enums en C #
- Propiedades en C #
- Conclusión
- Lectura recomendada
¿Qué es un constructor en C #?
El constructor es un tipo especial de método en el lenguaje de programación C # que se llama o invoca automáticamente cuando se crea un objeto de la clase dada.
Su función principal es inicializar los miembros de datos del objeto recién creado. Una de las características más distintivas del constructor es su nombre. Tiene el mismo nombre que la clase.
Los constructores son básicamente de dos tipos:
- Defecto
- Parametrizado
Constructor predeterminado de C #
Como sugiere el nombre, el constructor predeterminado es el constructor básico de una clase. No tiene ningún argumento y se invoca directamente en el momento de la creación del objeto.
|_+_|La salida del siguiente programa será:
Se ha invocado al constructor
Explicación
Hemos definido un constructor 'Programa' dentro de la clase 'Programa'. Ahora, cuando inicializamos la clase dentro del método principal, el constructor se invoca automáticamente.
Por lo tanto, se invocará cualquier fragmento de código que hayamos guardado dentro del constructor. Aquí, hemos impreso un mensaje 'El constructor ha sido invocado' dentro de las llaves del constructor, por lo que cuando inicializamos la clase, el constructor por defecto se inicializará y el mensaje se imprimirá como salida.
Constructor parametrizado
Como sugiere el nombre, los constructores parametrizados son el constructor con parámetros. Estos constructores se utilizan para pasar diferentes valores a los objetos.
|_+_|La salida del siguiente programa será:
cómo crear una lista de objetos en java
La suma es: 5
Explicación
En nuestro ejemplo anterior con el constructor predeterminado, tenemos nuestro método principal en la misma clase. En este ejemplo, tenemos el método principal en una clase diferente.
Tenemos una clase llamada 'Detalles' que contiene un constructor parametrizado que acepta dos valores enteros. Dentro del constructor, estamos imprimiendo la suma de los enteros. Tenemos otra clase llamada 'Programa' que contiene nuestro método principal. Dentro del método principal, hemos inicializado la clase 'Detalles'.
Como se explicó anteriormente, cuando se inicializa una clase, sus constructores se llaman automáticamente. Por lo tanto, en este caso, nuestro método constructor 'Detalles' ha sido invocado y cuando pasamos el parámetro durante la inicialización, imprime la salida.
Destructores en C #
Los destructores son todo lo contrario a los constructores. Es un método especial de la clase que se invoca cuando un objeto de la clase sale del alcance. Similar a un constructor, un nombre de destructor también es exactamente el mismo que el del nombre de la clase pero con un prefijo de “~” (tilde).
Destructor no acepta ningún parámetro ni devuelve ningún valor. Destructor destruye los objetos de la clase, por lo que se usa principalmente para liberar memoria después de que se ejecuta el programa. Otra cosa importante a tener en cuenta sobre el destructor es que no se puede sobrecargar ni heredar.
Ejemplo de destructores:
|_+_|La salida del siguiente programa será:
Se ha invocado al constructor
Se ha invocado al destructor
Explicación
Usamos el mismo ejemplo que usamos para aprender constructor. Acabamos de agregar un destructor en la clase del programa (~ Programa). Cuando inicializamos el objeto de la clase, se invoca el constructor y se crea el objeto de la clase. Esto imprime la frase 'Se ha invocado al constructor' en la consola.
Cuando la ejecución se ha completado y el objeto de la clase sale del alcance, el programa se mueve hacia el destructor. Luego se invoca el destructor, que a su vez destruye el objeto. Aquí, hemos impreso un mensaje dentro del destructor, que se imprime en la consola después de que se invoca el destructor.
Miembros estáticos en una clase
Los miembros de la clase pueden declararse estáticos mediante la palabra clave estática. Cuando un objeto se declara como estático, independientemente del número de objetos creados, solo habrá una copia del objeto estático.
Ser estático implica que habrá una única instancia del miembro que existirá para una clase determinada. Significa que el valor de la función estática o las variables dentro de la clase se pueden invocar sin crear un objeto para ellas.
Las variables estáticas se utilizan para declarar constantes ya que sus valores se pueden obtener directamente invocando la clase en lugar de crear una instancia de ella.
Ejemplo:
|_+_|La salida del siguiente programa será:
Método estático invocado
Explicación
En el ejemplo anterior, hemos creado una clase 'Detalles' que contiene un método estático 'stat'. Tenemos otra clase 'Programa' que contiene el método principal. En nuestros temas anteriores, vimos cómo podemos inicializar una clase para acceder a métodos. Pero como discutimos, se puede acceder a los miembros estáticos de la clase con la inicialización del objeto de la clase.
Por lo tanto, en el método principal, acabamos de invocar el método usando la clase directamente sin crear ningún objeto. La salida del programa ejecutó el código escrito dentro del método estático. En este caso, hemos impreso un mensaje en la consola.
Clase estática en C #
Una clase estática es similar a una clase normal en C #. La clase estática solo puede tener miembros estáticos y no se puede instanciar. Se utiliza una clase estática para asegurarse de que la clase no se instancia. Una clase estática se declara utilizando la palabra clave static antes de la clase de palabra clave durante la declaración.
Ejemplo:
|_+_|La salida del siguiente programa será:
El resultado de la multiplicación es: 16
Explicación
En el ejemplo anterior, hemos creado una clase estática 'Detalles' y dentro de la clase estática hemos creado otro método estático 'multiplicar'. Dentro del método, tenemos algunos fragmentos de código que queremos ejecutar. También tenemos otra clase 'Programa' con el método principal.
Dentro del método principal, hemos invocado el método multiplicar presente dentro de la clase estática. Si observa nuestro método principal, verá que no hemos inicializado ni creado un objeto para la clase estática, sino que hemos invocado directamente la clase desde el método principal.
Por lo tanto, cuando invocamos directamente el método multiplicar usando el nombre de la clase y proporcionando parámetros, ejecuta el código e imprime la salida.
Estructuras en C #
La entidad de tipo de valor en C # se llama estructura. Ayuda al usuario a almacenar datos relacionados de varios tipos de datos diferentes en una sola variable. Como se indicó, una estructura es una entidad de tipo de valor que contiene campos, métodos, constructores, operadores, eventos, etc. Una estructura se declara usando la palabra clave 'struct'.
Características de las estructuras:
- Puede incluir constantes, métodos, propiedades, índices, operadores, constructores, etc.
- No puede tener ningún constructor predeterminado.
- Puede implementar una interfaz pero no puede heredar con otras estructuras o clases.
- Es necesario inicializar las estructuras mediante el uso de una nueva palabra clave.
Diferencia entre estructura y clase
Es posible que la estructura y la clase se sientan similares entre sí de alguna manera, pero tienen varias diferencias.
Las diferencias incluyen:
- Una estructura es un tipo de valor, mientras que una clase es un tipo de referencia.
- La nueva palabra clave es necesaria para inicializar estructuras.
- Las estructuras solo pueden tener constructores parametrizados y, por otro lado, una clase puede tener constructores predeterminados y parametrizados.
Estructura: Definición
Una estructura se puede definir utilizando la palabra clave struct. Una estructura puede definir un nuevo tipo de datos con varios miembros diferentes para el programa.
Una estructura se puede inicializar de forma similar a la inicialización de un objeto, es decir, utilizando la nueva palabra clave. Como una estructura es una entidad de tipo valor, es más rápida de operar que un objeto de clase. Siempre que sea necesario almacenar datos, necesitamos usar una estructura. Por otro lado, si necesita transferir datos, es aconsejable usar class en lugar de struct.
Ejemplo:
|_+_|La salida del siguiente programa será:
El volumen del cuboide es: 6000
Explicación
En el ejemplo anterior, definimos una estructura cuboide dentro de la cual almacenamos tipos de datos para la longitud, el ancho y la altura del cuboide. Tenemos otro programa de clase donde tenemos nuestro método principal.
preguntas y respuestas de la entrevista de shell scripting para experimentados
En el método principal, inicializamos la estructura “Cuboid” usando la nueva palabra clave. Luego usamos el objeto para llamar y asignar valores a los tipos de datos almacenados en la estructura. Luego realizamos una operación sobre las variables de la estructura e imprimimos el resultado en la consola.
Entonces, si desea usar alguna propiedad, evento o método, la estructura debe inicializarse usando la nueva palabra clave o de lo contrario le dará un error de compilación.
Enums en C #
Enum es un conjunto de constantes enteras y, similar a una estructura, también es una entidad de tipo valor. Se utiliza principalmente para declarar una lista de enteros utilizando la palabra clave 'enum' dentro de un espacio de nombres, clase o incluso estructura. En la enumeración, proporcionamos un nombre a cada una de las constantes enteras, de modo que podamos hacer referencia a ellas usando sus respectivos nombres.
Enum puede tener un número fijo de constantes. Ayuda a mejorar la seguridad y también se puede atravesar.
Características de Enum
- Enum mejora la legibilidad y el mantenimiento del código al proporcionar nombres significativos a las constantes.
- Enum no se puede utilizar con las constantes de tipo cadena.
- Enum puede incluir constantes como int, long, short, byte, etc.
- De forma predeterminada, el valor de las constantes de enumeración comienza con cero
Declarar una enumeración
La sintaxis para declarar enum se da a continuación.
|_+_|Todas las constantes de enumeración tienen valores predeterminados. El valor comienza en 0 y sube uno por uno.
Ejemplo:
|_+_|La salida del siguiente programa será:
La longitud es: 0
El ancho es: 1
La altura es: 2
Explicación
Trabajamos con un ejemplo similar que aprendimos durante la estructura. En este ejemplo, hemos creado una enumeración llamada Cuboid. Esta enumeración contiene tres miembros, es decir, largo, ancho y alto.
Tenemos otra clase Program dentro de la cual tenemos nuestro método principal. Se ha utilizado una conversión explícita para convertir variables de tipo enum en tipo entero, luego hemos almacenado sus valores en diferentes variables dentro del método principal y los hemos impreso en la consola.
De forma predeterminada, el valor de la primera enumeración será cero, la segunda tendrá 1 y así sucesivamente. Por lo tanto, cuando imprimimos los valores, recibimos la salida antes mencionada.
Cambiar el valor de Enum
Enum también permite a los usuarios cambiar el índice inicial predeterminado de los miembros. Una vez que haya cambiado el índice inicial de la variable, los siguientes miembros tendrán sus valores actualizados en la secuencia incremental.
Asignemos un valor al primer miembro de la enumeración que definimos en nuestro ejemplo anterior y veamos qué sucede:
|_+_|La salida del siguiente programa será:
La longitud es: 10
El ancho es: 11
La altura es: 12
Explicación
Cuando asignamos un valor al primer miembro de la enumeración, todos los miembros posteriores de la enumeración se asignarán con el incremento de ese valor. Como hemos definido, el primer valor es 10, el siguiente valor se convierte en 11 y el siguiente en 12.
El usuario puede asignar cualquier valor según su elección y todos los miembros de la enumeración se asignarán automáticamente con el incremento de los valores definidos por el usuario.
Propiedades en C #
Las propiedades en C # son básicamente el miembro con nombre de interfaz, clases y estructura. Las propiedades son una extensión de las variables miembro / método de estructura o clase. Se utilizan para leer, escribir o cambiar el valor de los campos privados.
Se accede a las propiedades igual que a los campos. Tienen accesores que se pueden usar para obtener, establecer y calcular los valores. También podemos poner lógica al establecer valores en las propiedades. También se puede usar con la clase privada que restringe el acceso desde el exterior, pero al mismo tiempo, permite al usuario usar propiedades para obtener o establecer valores.
¿Qué son los accesores?
Los accesores de propiedad constituyen las declaraciones que se pueden utilizar para leer, escribir o calcular una propiedad determinada. La declaración de propiedad puede contener get, set o ambos.
Ejemplo:
|_+_|Cuando el fragmento de código anterior se compila y ejecuta correctamente, se observa el siguiente resultado.
El volumen del cubo es: 125
Explicación
En el ejemplo anterior, tenemos una clase 'Cube' dentro de la cual hemos declarado una propiedad 'Side' de tipo integer. Después de eso, tenemos la propiedad get y set donde hemos regresado y proporcionado el valor al lado de la variable.
aprendizaje automático vs inteligencia artificial vs minería de datos
Tenemos otra clase 'Programa' con el método principal dentro del cual hemos inicializado la clase Cube y proporcionado el valor para la propiedad Side, y luego hemos impreso el resultado calculado en la consola.
Conclusión
En este tutorial, aprendimos sobre las funciones miembro de la clase. Una función miembro puede operar en cualquier objeto de la clase donde esté presente. También aprendimos sobre constructores y destructores.
Los constructores se inicializan automáticamente en el momento de la creación del objeto de la clase, mientras que los destructores destruyen la clase y se utilizan principalmente para eliminar la asignación de memoria después de completar la ejecución. Los constructores pueden ser de dos tipos, es decir, predeterminados y parametrizados.
El destructor no acepta ningún parámetro ni devuelve ningún valor. Tanto Constructor como Destructores tienen nombres que son exactamente iguales al nombre de la clase. También aprendimos sobre las variables estáticas y la clase estática y cómo se puede acceder a ellas sin usar ninguna instancia de clase. Llegamos a saber que una clase estática solo puede tener miembros estáticos.
También hablamos de Estructuras o estructuras. Las estructuras son entidades de tipo valor y deben inicializarse para acceder.
También se discutieron la enumeración y las propiedades de C #. Enum es un conjunto de constantes enteras con nombre. Similar a la estructura, también es una entidad de tipo de valor. La enumeración tendrá sus miembros y cada miembro tendrá su propio valor predeterminado.
Al final, discutimos las propiedades, que son una extensión de las variables miembro / método de estructura o clase. Se utilizan para obtener, establecer o cambiar el valor de los campos privados.
=> Vea nuestra serie completa de capacitación en C # aquí
Lectura recomendada
- Estático en C ++
- Herencia en C ++
- Clases y objetos en C ++
- Uso de la clase selecta de selenio para manejar elementos desplegables en una página web - Tutorial de selenio n. ° 13
- Polimorfismo en tiempo de ejecución en C ++
- Funciones de amigo en C ++
- Burlarse de métodos privados, estáticos y vacíos usando Mockito
- Clases y objetos de C #: un tutorial detallado con ejemplos