2. Un mundo de objetos
Existen 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.
3. ¿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.
4. Reutilización x Naturaleza
Ventajas
Las 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.
5. Clases y objetos
Comenzaremos 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.
6. 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.
7. 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.
8. ¿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.
9. 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.
10. Atributos
Es 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.
11. #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
12. #include <iostream>
#include <string>
using namespace std;
class LibroNotas
{
public:
void mostrarMensaje( string nombreCurso )
{
cout << "Bienvenido al libro paran" << nombreCurso << endl;
} // fin de la función mostrarMensaje
}; // fin de la clase LibroNotas
int main() //La función main empieza la ejecución del programa
{
string nombreDelCurso;
LibroNotas miLibroNotas; // crea un objeto
cout << "Escriba el nombre del curso:" << endl;
getline( cin, nombreDelCurso ); // lee el nombre de un curso
cout << endl; // imprime una línea en blanco
miLibroNotas.mostrarMensaje( nombreDelCurso );
return 0; // indica que terminó correctamente
} // fin de main