Contenido del curso

Clases en C/C++

 

La Programación Orientada a Objetos es un paradigma de programación que viene a innovar la forma de obtener resultados. Esta organiza el código en torno a Objetos en lugar de funciones y procedimientos. Estos representan entidades del mundo real o conceptos, y tienen características (llamadas atributos o propiedades) y comportamientos (denominados métodos o funciones).

Una Clase es similar a un plano o molde que define las características y comportamientos de los objetos. No es un Objeto en sí, sino una plantilla para crearlos.

Un Objeto es una instancia de una clase. Cuando crears un objeto, estás utilizando el molde de la Clase para construir algo concreto con atributos específicos.


Como puedes ver en la ilustración anterior, ejemplos de Atributos para una clase Coche son el color, la marca o el número de puertas, mientras que ejemplos de Métodos para la misma clase son encender el motor, acelerar o frenar.

Cada objeto creado con esta Clase tendrá estos Atributos y Métodos, como se muestra en la siguiente figura donde hemos creado un objeto CocheVolkswagen a partir de la clase Coche.


Además de los Atributos y Métodos de una Clase, también es importante conocer los llamados Constructores. Estos son Métodos especiales que se llaman automáticamente cuando se crea un Objeto de la Clase. Se utilizan para inicializar los atributos del Objeto.

Por otro lado, hay que tener en cuenta la privacidad dentro de las Clases. Esto se gestiona mediante tres especificadores de acceso: public, private y protected. De manera resumida:

  • Atributos y Métodos definidos en el nivel public son accesibles desde dentro y fuera de la propia Clase.

  • Atributos y Métodos definidos en el nivel private son accesibles solamente desde dentro de la propia Clase.

  • Atributos y Métodos definidos en el nivel protected son accesibles solamente desde dentro de la propia Clase y también desde Clases derivadas

Por último, la Programación Orientada a Objetos destaca por una serie de principios básicos, que trabajan juntos para hacer que el código sea más modular, reutilizable y fácil de mantener, y que puedes encontrar detallados a continuación:

Consiste en agrupar datos (atributos) y los métodos (funciones) que operan sobre esos datos dentro de
una misma unidad llamada clase. La idea es ocultar los detalles internos de los objetos y proteger los
datos para que solo puedan ser modificados mediante métodos definidos en la clase. Esto mejora la
seguridad y la integridad del código.

Por ejemplo, en la clase Coche, las propiedades como marca y color están encapsuladas dentro de la
propia clase, y pueden ser accedidas o modificadas solo a través de métodos específicos. 
Es el proceso de simplificar la complejidad mostrando solo los detalles esenciales y ocultando los detalles
de implementación. En este tipo de programación, esto se logra mediante la creación de clases que
representan conceptos abstractos del problema que estás resolviendo.

Por ejemplo, la clase Coche puede tener métodos como acelerar y frenar sin que el usuario de la clase
necesite saber cómo funcionan estos métodos internamente.
Permite crear nuevas clases a partir de clases existentes. La nueva clase (subclase) hereda atributos y
métodos de la clase base (superclase), y puede añadir nuevas características o modificar el
comportamiento existente.

Si tuviéramos una clase Vehículo, podrías crear una clase Coche que herede de Vehículo. Coche
heredaría atributos como puertas y métodos como encender, y podrías añadir otros métodos específicos
de Coche, como podría ser abrirMaletero.
Es la capacidad de los objetos de diferentes clases de ser tratados como objetos de una clase común.
Esto permite usar una misma interfaz para diferentes tipos de objetos, lo que facilita la flexibilidad y
extensibilidad del código.

Por ejemplo, si Coche y Bicicleta son clases que heredan de Vehículo, ambas pueden tener el método
frenar. Aunque frenar se implemente de manera diferente en cada clase, puedes llamar al método
frenar en cualquier objeto Vehículo, independientemente de si es un Coche o una Bicicleta.
// Creamos la clase Coche
class Coche {

    // Todos los atributos y métodos de esta clase son públicos
    public:

        String color; // Atributo con el Color del Coche
        String marca; // Atributo con la Marca del Coche
        int puertas; // Atributo con el Número de puertas del Coche

        // Constructor de la clase Coche
        Coche(String color_del_coche, String marca_del_cocheint puertas_del_coche) {

            // Asignamos lo valores dados en el constructor a los atributos correspondientes
            color = color_del_coche;
            marca = marca_del_coche;
            puertas = puertas_del_coche;

        }

        // Método para arrancar el Coche
        void encender() {
            // Código para el arranque del Coche
        };

        // Método para acelerar el Coche
        void acelerar() {
            // Código para acelerar el Coche
        };

        // Método para frenar el Coche
        void frenar(){
            // Código para frenar el Coche
        };

};

// Creamos el objeto del tipo Coche
Coche miNuevoCoche("azul""volkswagen"2);

void setup() {

    // Llamamos los diferentes métodos de la Clase Coche
    miNuevoCoche.encender();
    miNuevoCoche.acelerar();
    miNuevoCoche.frenar();

}

void loop() {}
Vistas
13 Número de vistas
13 Vistas de miembros
0 Vistas públicas
Acciones
0 Gustos
0 No me gusta
0 Comentarios
Compartir en redes sociales
Compartir enlace
Compartir por correo

Por favor iniciar sesión para compartir esto webpage por correo.