Programacion Orientada a Objetos
La programación Orientada a Objetos es un paradigma de programación que surgió primeramente en los 60's. Este "estilo" de programación se centra; como se puede ver con su propio nombre, en los objetos; que son como un TAD (Tipo Abstracto de Datos) y cuya definición se verá más adelante.
En sí este paradigma se basa en la percepción de los problemas a resolver, de una forma más abstracta que el resto de los paradigmas o de una manera mas orientada a la vida real, tratando de dividir cada problema en las distintas entidades del dominio del mismo.
Entre los conceptos más importantes que se pueden ver al trabajar con este tipo de paradigma se encuentran:
En sí este paradigma se basa en la percepción de los problemas a resolver, de una forma más abstracta que el resto de los paradigmas o de una manera mas orientada a la vida real, tratando de dividir cada problema en las distintas entidades del dominio del mismo.
Entre los conceptos más importantes que se pueden ver al trabajar con este tipo de paradigma se encuentran:
- Clase: Es la conglomeración o especificación de las distintas características de algo. Esta conformada por sus atributos y por su comportamiento (métodos o funciones que puede realizar). Como por ejemplo si se considerara la especificación de un coche, se pueden identificar como atributos sus características: la marca o si va con gasolina o con diesel entre otras y como su comportamiento el poder encenderse, apagarse o encenderle las luces.
- Objeto: Es la instanciación de una clase, es decir, pertenece a una clase; ya que puede realizar las mismas funciones que están especificadas en ella pero que posee unas características propias que le distinguen de otro que también sea de la misma clase. Como por ejemplo siguiendo con el ejemplo de los coches dos objetos pertenecientes a esa clase serían un Renault y otro un Ford.
- Encapsulación: Esta es una característica muy importante en este paradigma, y es la forma que tiene de ocultar como funciona o esta implementada una clase al resto del programa, es decir, a los objetos que utilizan sus métodos; lo que también implica la utilización de las interfaces (parte visible de una especificación); para justamente delimitar que va a ser visible por las partes externas a la clase definida. Por ejemplo al conductor no tiene porque interesarle como se encienden las luces del coche, sino simplemente que se enciendan.
- Herencia: Este concepto se refiere a la posibilidad de que ciertas clase puedan tener unas características como "predeterminadas"; como por ejemplo si tuviéramos la clase vehículo podríamos definirle como atributos el numero de ruedas y si de esta súper-clase heredara la clase bicicleta, que también tiene ruedas, al igual que otra clase que también heredara de vehículo, que podría ser la clase coche; de esta manera no interesaría poner el atributo que identificara si el vehículo utiliza gasolina o diesel ya que una no utiliza ningún tipo de combustible y en cambio un coche si, con lo cual será luego en cada subclase donde se pondrán las características que diferencian dos tipos de vehículos, pero en vehículo se pondrán aquellas que son iguales como el número de ruedas que tienen o la marca. Pudiéndosele también, luego, agregar a cada subclase diferentes funciones que tampoco compartan como encenderse en el caso de un coche.
Aquí se presenta un diagrama para comprender mejor lo antes explicado:
Entre las fuentes utilizadas en la búsqueda de los conceptos anteriores están:
- Wikipedia
- Fundamentos de programación, algoritmos, estructuras de datos y objetos (3ª ed.) de Joyanes Aguilar, Luis Mcgraw-Hill


0 Comments:
Publicar un comentario
<< Home