Diario de un programador.- Día 160
Definiendo una clase
De ahora
en adelante, se presentarán pequeños cambios en la forma en que se crearán los
programas. Se pasará de la programación estructurada a la programación
orientada a objetos. La programación orientada a objetos es otro estilo de
programación, donde todo se considera un objeto, con lo cual se facilita la
construcción de programas. Quizás al principio parezca algo complejo, pero con
el tiempo se le toma el truco. Así que a partir de ahora, (al menos en c++) los
tutoriales serán muy parecidos a los mostrados en Java, donde se habla de
clases, atributos, objetos etc.
Una de
las principales características de este tipo de programación es la existencia
de clases. Una clase, a grandes rasgos se puede considerar como un conjunto de
funciones.
A
continuación, se mostrará cómo crear una clase, la cual contiene una función
que muestra un mensaje. La idea de este ejemplo, es poder acceder a esa función.
Antes de
presentar la clase, voy a mostrar la siguiente instrucción:
using std::cout;
Esto es
para evitar tener que escribir std::cout
cada vez que se necesite escribir en pantalla. En su lugar, se puede
escribir simplemente cout. De esta manera, la instrucción:
std::cout << "hola mundo";
Se podrá escribir:
cout << "Hola mundo";
De la
misma manera, si se agrega la instrucción using std::cin; produce el mismo
efecto.
Volvamos
al tema de las clases.
La
estructura de una clase es la siguiente:
NombreClase{
instrucciones
};
Notar que después del cierre
de llave } se debe colocar un punto y coma ;
Ejemplo:
Lo
siguiente es crear un modificador de acceso dentro de la clase.
public:
Este
modificador de acceso, permite que las funciones de la clase estén disponibles
para ser utilizadas por otras funciones, como por ejemplo "main".
Lo
siguiente a incluir en la clase es la función que permite mostrar un mensaje en
pantalla
void mostrarMensaje(){
cout << "Hola mundo" << endl;
}
Con esto
concluye la creación de la clase. Como se puede apreciar, la clase
"Mensaje" solamente tiene una función.
Lo
siguiente a realizar, es crear la función main. La cual se crea fuera de la
clase.
int main(void){
return 0;
}
Dentro de
la función main, se va a crear un objeto de la clase "mensaje", el
cual permitirá poder llamar a su función "mostrarMensaje". La
sintaxis para crear un objeto es la siguiente:
nombreClase nombreObjeto;
nombreClase,
corresponde a la clase que voy a llamar, en este caso, la clase
"Mensaje", nombreObjeto, corresponde al nombre que le voy a dar al
objeto, puede ser cualquier nombre, pero el nombre a escoger debe seguir la
misma regla que los nombres aceptados para crear variables. En otras palabras,
no debe empezar con números, ni contener espacios etc. En este caso, voy a
utilizar el nombre "miMensaje". De esta forma, la creación del objeto
quedaría así:
Mensaje miMensaje;
Por
último, lo que haré será mostrar la función "mostrarMensaje" del
objeto. Para mostrar una función de un objeto, se utiliza la siguiente
sintaxis:
nombreObjeto.nombreFuncion();
nombreObjeto,
como dije antes corresponde al nombre que posee el objeto, seguido de un punto
se debe colocar el nombre de la función que se desea ejecutar. En este caso, la
llamada a la función quedará de la siguiente manera:
miMensaje.mostrarMensaje();
Ahora
solamente queda compilar el trabajo y si todo salió bien, entonces se mostrará
el mensaje "hola mundo"
¿Tanto
código solo para escribir “hola mundo”?... pues sí, pero esto es solo un
ejemplo muy básico de lo que se puede lograr. Lo interesante de esto es que las
clases pueden estar en distintos archivos, lo que da paso a la programación
modular, que en síntesis significar dividir el programa para hacerlo más fácil
de programar, depurar, mantener, actualizar etc. Más información aquí:
Esto es
todo por ahora, solo queda practicar y crear muchas clases y ver que hacen,
como mezclarlas con distintas funciones etc. Esto del aprendizaje autodidacta
depende mucho de las ganas que uno le ponga y no olvidar el motivo por el cual
uno quiere aprender a programar. En mi caso particular, lo que me motiva es
aprender a desarrollar videojuegos y alguna que otra aplicación para celular y
pc.
Nos vemos
en la próxima entrega. Saludos
Gustavo J. Cerda Nilo
No hay comentarios:
Publicar un comentario