Bueno, ya estoy aqui. A ver si se explicar un poco genericamente como funcionan las clases en POO y que es la Programacion Orientada a Objetos en sí.
Bueno, lo primero de todo es saber la utilidad de la programación orientada a objetos(POO) con respecto a la programacion procedural que usamos con los PIC al programar en C. La mayor ventaja que tenemos con PPO es la reutilizacion del codigo en posteriores proyectos, una clase que nos creemos por ejemplo para enviar datos por el puerto serie nos servira en adelante en todos los proyectos que hagamos que necesiten transferencia serie. Simplemente tendremos que adjuntar los ficheros de la clase a nuestro programa.
Los conceptos basicos de la POO son:
-Objetos:Un objeto es una entidad que tiene unos atributos propios (datos) y unas formas de manipularlos(los métodos o funciones miembro). Es decir, un objeto incluye, por una parte una serie de operaciones que definen su
comportamiento, y una serie de variables manipuladas por esas funciones que
definen su estado. Por ejemplo, una ventana Windows tiene operaciones
como “maximizar” y variables como “ancho” y “alto”.
-Clases. Una clase es la definición de un tipo de objetos. De esta manera, una clase “Complejo” representaría todos los numeros complejos, mientras
que (2+2i) seria un objeto de esa clase.
-Métodos. Un método es una función creada dentro de un objeto con la
finalidad de realizar una serie de operaciones sobre los datos que contiene. En el ejemplo de lso numeros complejos por ejemplo seria la suma de complejos.
-Mensajes:Un programa basado en objetos, utiliza como mecanismo de
comunicación entre los mismos una serie de métodos que pueden ser llamados
por agentes externos al objeto. A la acción de ejecutar métodos externamente a un objeto se le denomina mensaje. Por ejemplo, cuando decimos a Windows que
deseamos ver el escritorio, y que por tanto todas las ventanas abiertas deben
minimizarse, Windows se encarga de enviar mensajes de minimización a todas
las ventanas que en ese momento está gestionando.
Bueno ademas de estos elementos propios de la POO, esta tiene unaqs caracteristicas muy utiles:
-Abstraccion: Nos permite relacionar en una clase todos los elementos que posean caracteristicas similares aunque no sean iguales, por ejemplo una clase "coches", etc.
-Encapsulamiento: Nos permite actuar sobre un objeto perteneciente a una clase a modo de caja negra, sin importarnos los que se produce dentro de ella, ni como se produce.
-Herencia: Se pueden heredar unas clase de otras, haciendo cada clase hija mas expecifica pero no teniendo que volver a implementar los metodos comunes. Por ejemplo, si tenemos una clase "vehiculos", en ella ya estara implementado el metodo "moverVehiculo", si hacemos una clase heredada "motocicletas" esta no tendra que implementar de nuevo ese metodo.
-Polimorfismo: El mismo metodo nos servira para diferentes objetos, incluso actuando de diferente forma y haciendo cosas distintas, siguiendo con el ejemplo anterior, no funcionara igual moverVehiculo cuando se trate de una motocicleta que cuando se trate de un avion, pero ambos se moveran utilizando cada uno el mismo metodo pero que conlleva acciones distintas.