Want to create interactive content? It’s easy in Genially!

Get started free

Métodos básicos de una clase

Yolanda Martínez Treviño

Created on November 12, 2023

Start designing with a free template

Discover more than 1500 professional designs like these:

Practical Presentation

Smart Presentation

Essential Presentation

Akihabara Presentation

Pastel Color Presentation

Modern Presentation

Relaxing Presentation

Transcript

Métodos básicos

Al construir una clase

01

Métodos constructores

Default y con parámetros

¿Qué es un constructor en POO?

  • Un constructor es una función miembro especial que debe definirse con el mismo nombre que el de la clase.
  • No tiene tipo de retorno.
  • Nos sirve para crear el objeto, crear al objeto significa darle valor a los datos miembro (propiedades/atributos).
  • Se pueden crear uno o más constructores, de manera general tenemos un constructor default y uno con parámetros.

Diferencias entre un constructor default y con parámetros

Constructor con parmáteros

Consructor Default

En C++

¿Cómo vamos a escribir los métodos constructores? Usemos el ejemplo de la clase Punto

Queremos implementar la siguiente clase...

Archivo h/hpp -interfaz de la clase

#pragma once #include <iostream> class Punto{ public: Punto(); //constructor default/predeterminado Punto(double, double); //constructor con parámetros double getX() const; //acceso de X double getY() const; //acceso de Y void setX(double); //modificador de X void setY(double); //modificador de Y void imprime() const; private: double x; double y;};

Ejemplo de un constructor default

Decidimos que queremos darle valores predeterminados nosotros y no dejar a que le asigne valores de acuerdo al tipo de los atributos, hacemos lo siguiente en la implementación (archivo cpp de la clase).

Punto::Punto():x{1}, y{1}{ }

Observa:

  • Ponemos primero el nombre de la clase seguido del operador :: (indica pertenencia)
  • Posteriormente el nombre del método. Es este caso como es constructor, igual al nombre de la clase.
  • Le siguen el operador : (dos puntos), luego el nombre del atributo y entre llaves el valor a asignar, en este caso 1.
  • Los atributos se inicializan separados por coma.

Ejemplo de un constructor con parámetros

En este tipo de constructor recibimos como parámetros, los valores a asignar a los atributos. Veamos la implementación (en archivo cpp de la clase).

Punto::Punto(double valX, double valY):x{valX}, y{valY}{ }

Observa:

  • La diferencia con el constructor default es que ahora recibimos los valores para inicializar cada atributo.
  • Es la misma sintaxis sólo que ahora entre los paréntesis que siguen al nombre del atributo le mandamos el valor que recibimos como parámetro.

02

Métodos de acceso

También llamados getters

Métodos de acceso o getters

  • Como viste en la interfaz de la clase, los datos miembros se declararon como privados, eso quiere decir que no se pueden acceder a esos datos fuera de la clase.
  • Por lo anterior si se necesita conocer el valor de los atributos (datos miembro) debemos tener métodos que nos permitan obtener dichos valores desde fuera de la clase
  • Para lo anterior se crean métodos de acceso, uno por cada uno de los atributos que tiene la clase.
  • Los métodos de acceso por estándar les ponemos un nombre compuesto por la palabra get y luego el nombre del atributo del que obtendremos su valor.
  • Los métodos de acceso devuelven el tipo de valor correspondiente al atributo.
  • Los métodos de acceso NO reciben parámetros.

Ejemplo - métodos de acceso de clase Punto

Revisa cómo se declararon los métodos de acceso (getters) en la interfaz de la clase. En la implementación, tienen la siguiente forma:

double Punto::getX() const{return x;}

Observa:

  • Como x es de tipo double, el método regresa un double.
  • El nombre del método es get y luego X que es el nombre de la variable, usando camelCase en el formato
  • No recibe parámetros.
  • Tiene la palabra const que significa que en este método NO se modificará nada del atributo.
  • Regresa el atributo correspondiente, en este caso x.
  • Sería similar para el atributo y

03

Métodos modificadores

Conocidos también como setters o mutadores

Métodos de modificadores o setters

  • Como viste en la interfaz de la clase, los datos miembros se declararon como privados, eso quiere decir que no se pueden modificar esos datos fuera de la clase.
  • Por lo anterior si se necesita modificar el valor de los atributos (datos miembro) debemos tener métodos que nos permitan hacerlo fuera de la clase
  • Para lo anterior se crean métodos de modificadores, uno por cada uno de los atributos que tiene la clase.
  • Los métodos modificadores por estándar les ponemos un nombre compuesto por la palabra set y luego el nombre del atributo que queremos modificar.
  • Los métodos de modificadores NO devuelven nada (son tipo void).
  • Los métodos modificadores reciben un parámetros, con el cual modificaremos el valor del atributo.

Ejemplo - métodos modificadores clase Punto

Revisa cómo se declararon los métodos modificadores (setters) en la interfaz de la clase. En la implementación, tienen la siguiente forma:

void Punto::setX(double valX){x = valX;}

Observa:

  • Como x es de tipo double, el método recibe un double como parámetro.
  • El nombre del método es set y luego X que es el nombre de la variable, usando camelCase en el formato
  • El método es tipo void, no regresa nada.
  • El método cambia el valor de x por el valor del parámetro recibido.
  • Sería similar para el atributo y.

04

Método imprime

Método adicional para poder ver en consola la impresión de los datos del objeto

Ejemplo - métodos imprime clase Punto

Revisa cómo se declararó el método imprime. Este método sólo mostrará los datos del objeto en consola. En la implementación, tienen la siguiente forma:

void Punto::imprime() const{std::cout << "x->" << x << " y->" << y << std::endl;}

Observa:

  • La función no regresa nada es de tipo void.
  • El método no recibe nada y es const, recuerda que const significa que en ese método no se modifican los atributos.
  • Este método nos permite visualizar el estado del objeto a pantalla. Decimos "estado del objeto" refiriéndonos a conocer los valores de sus atributos.

05

Crear objetos

Y cómo usarlos

Ejemplo - crear objetos con constructor default

En un archivo cpp que tenga la función main:

#include "Punto.hpp" using namespace std; int main() {Punto p;return 0;}

Observa:

  • En este archivo se incluye el archivo de la interfaz Punto.hpp
  • Se usa el nombre de la clase como tipo de dato y luego el nombre de la variable en este caso p.
  • p será un objeto Punto creado con el constructor default, es decir tiene sus atributos x, y iniciados en 1.

Ejemplo - crear objetos con constructor con parámetros

En un archivo cpp que tenga la función main:

#include "Punto.hpp" using namespace std; int main() {Punto p{3,4};return 0;}

Observa:

  • Se usa el nombre de la clase como tipo de dato y luego el nombre de la variable en este caso p seguida entre llaves, la lista con los valores para los atributos.
  • p será un objeto Punto creado con el constructor con parámetros, es decir se asignará a x un 3, a y un 4.

Ejemplo - uso de objetos

En un archivo cpp que tenga la función main:

#include "Punto.hpp" using namespace std; int main() {Punto p{3,4}; p.imprime();return 0;}

Observa:

  • Para ejecutar los métodos del objeto uso el nombre de la variable y luego el operador punto seguido del nombre del método a ejecutar.
  • Lo anterior imprimirá a consola:

x->3 y->4

Es importante decir...

Cuando un método te regrese un valor, debemos hacernos cargo del valor que nos devuelve y asignarlo a una variable o hacer algo con ese valor que nos regresa, ve el siguiente ejemplo con el método get.

#include "Punto.hpp" using namespace std; int main() {Punto p{3,4}; double coordX = p.getX(); cout << "La coordenada x es: " << coordX << endl;return 0;}

¡Gracias! Si tienes dudas contactame...

Constructor default.

  • No recibe parámetros.
  • Los valores se inicializan con valores predeterminados:
    • Si no escribes explicitamente el constructor en la clase, se le asignan valores predeterminados para el tipo de valor del atributo, por ejemplo si es un string se le asignará cadena vacía.
    • Si escribes el constructor, le puedes asignar el valor predeterminado que quieres que tomen cada uno de los atributos.

Constructor con parámetros.

  • Recibe parámetros para inicializar los valores de los atributos con los datos que recibe.