3.introducción a las clases y objetos en c++
TRANSCRIPT
Clases y Objetos
Ramiro Estigarribia Canese
Un mundo de objetosExisten en la naturaleza, en los negocios y en los productos que usamos.
No es sorprendente que se proponga una visión orientada a objetos para la creación de software.
Es una abstracción que modela el mundo de forma tal que nos ayuda a entenderlo mejor.
¿Por qué enfocar a objetos?Las tecnologías de objetos están sustituyendo a los enfoques clásicos de desarrollo de software. ¿Por qué? La respuesta principal es la reutilización.
Reutilización x NaturalezaVentajasLas tecnologías de objetos llevan a reutilizar.
1. La reutilización de componentes de software lleva a un desarrollo de software más rápido y a programas de mejor calidad.
2. El software orientado a objetos es más fácil de mantener debido a que su estructura es por naturaleza poco acoplada.
Clases y objetosComenzaremos con una analogía simple, para ayudarle a comprender:
➔ Suponga que desea conducir un automóvil y, para hacer que aumente su velocidad, debe presionar el pedal del acelerador. ¿Qué debe ocurrir antes?Antes de poder conducir un automóvil: alguien tiene que diseñarlo.
➔ Así como se pueden construir muchos autos a partir del mismo dibujo de ingeniería, se pueden construir muchos objetos a partir de la misma clase.
Clases, objetos, métodos y variables de instancia➔ Un automóvil empieza en forma de dibujos de
ingeniería, similares a los planos que se utilizan para diseñar una casa.
➔ El volante “oculta” los mecanismos que hacen que el automóvil gire.
➔ Permite que personas sin conocimiento acerca de cómo funcionan los motores puedan conducir.
Construir un Vehículo.➔ Desafortunadamente, no puede conducir un dibujo
de un auto. ➔ Se debe construir a partir de los dibujos. ➔ Un automóvil tendrá un pedal acelerador, pero aún
así no es suficiente; el automóvil no acelerará por su propia cuenta, así que el conductor debe oprimir el pedal del acelerador.
➔ Para realizar una tarea en una aplicación se requiere un método.
¿Qué son los Métodos?➔ Los métodos son las tareas que puede realizar una
clase. ➔ En C++, empezamos por crear una unidad de
aplicación llamada clase para alojar a un método.➔ En una clase se proporcionan uno o más métodos. ➔ Por ejemplo, una clase que representa a una
cuenta bancaria podría contener un método para depositar dinero en una cuenta, otro para retirar dinero.
Llamar a un Método➔ Cuando usted conduce un automóvil, si oprime el
pedal del acelerador se envía un mensaje al automóvil para que realice una tarea.
➔ De manera similar, se envían mensajes a un objeto.
➔ Cada mensaje se conoce como la llamada a un método, e indica a un método del objeto que realice su tarea.
AtributosEs una especificación que define una propiedad de un objeto o clase.➔ Un auto tiene muchos atributos como su color, el
número de puertas, la cantidad de gasolina en su tanque y su velocidad actual.
➔ Cuando usted conduce un automóvil, estos atributos siempre están asociados con él.
➔ Por ejemplo, cada conductor sabe cuánta gasolina tiene en su propio tanque, pero no cuánta hay en los tanques de otros automóviles.
#include <iostream>using namespace std;class LibroNotas // Definición de la clase LibroNotas{public:void mostrarMensaje() { cout << "Bienvenido al Libro de calificaciones!" << endl; } // fin de la función mostrarMensaje }; // fin de la clase LibroNotas int main() // la función main empieza la ejecución {LibroNotas miLibroNotas; // crea un objeto LibroNotas miLibroNotas.mostrarMensaje(); // llama a la función return 0; // indica que terminó correctamente} // fin de main
#include <iostream>#include <string> using namespace std;class LibroNotas{public:void mostrarMensaje( string nombreCurso ){cout << "Bienvenido al libro para\n" << nombreCurso << endl;} // fin de la función mostrarMensaje}; // fin de la clase LibroNotasint main() //La función main empieza la ejecución del programa{string nombreDelCurso;LibroNotas miLibroNotas; // crea un objetocout << "Escriba el nombre del curso:" << endl;getline( cin, nombreDelCurso ); // lee el nombre de un cursocout << endl; // imprime una línea en blancomiLibroNotas.mostrarMensaje( nombreDelCurso );return 0; // indica que terminó correctamente} // fin de main