Introducción a la POO
La programación orientada a objetos es una extensión natural de la
actual tecnología de programación, y representa un enfoque nuevo y distinto al
tradicional. Es un importante conjunto de técnicas que pueden utilizarse para
hacer el desarrollo de programas más eficientes.
Dentro de los objetos residen los datos de los lenguajes de programación tradicionales, tales como números, arrays, cadenas y registros, así como funciones o subrutinas que operan sobre ellos. Las funciones dentro del objeto son el único medio de acceder a los datos privados de un objeto. En otras palabras es una entidad tangible que posee características (atributos) y acciones u operaciones (métodos que lo modifican).
CONCEPTOS FUNDAMENTALES DE LA PROGRAMACIÓN ORIENTADA A OBJETOS
Los principios de la tecnología
orientada a objetos son:
Objetos:
Dentro de los objetos residen los datos de los lenguajes de programación tradicionales, tales como números, arrays, cadenas y registros, así como funciones o subrutinas que operan sobre ellos. Las funciones dentro del objeto son el único medio de acceder a los datos privados de un objeto. En otras palabras es una entidad tangible que posee características (atributos) y acciones u operaciones (métodos que lo modifican).
Ejemplo de objeto:
Consideramos una ilustración
de un coche vendido por un distribuidor de coches. El identificador del objeto
es Coche1. Los atributos asociados pueden ser: número de matrícula, fabricante,
precio_compra, precio_actual, fecha_compra.
Las características que ayudan a definir un objeto son:
Encapsulamiento:
El encapsulamiento se refiere a colocar los métodos y
atributos estrechamente relacionados con la clase y que solo puedan ser
utilizados en esa clase igualmente evitar su modificación y que el usuario solo
utilice aquellos métodos que le sean útiles para la utilización del objeto.
Por ejemplo:
Una Clase Vehículo no es posible colocarle un método "volar" porque no tiene nada que ver pero en cambio sí puede ir incluido en la
Clase Ave.
Se suelen manejar dos tipos de encapsulamiento:
Privado (private): resguarda al atributo y/o método que
se esté usando para que solo pueda ser usado por esa clase
Protegido
(protected) : al igual que el private ayuda a resguardar el atributo o método
pero en este caso solo para que pueda ser usado por una subclase o dentro de su
propio paquete.
Modularidad:
Consiste en dividir un programa en módulos que se puedan compilar por separado,
pero que tienen conexiones con otros módulos.
Abstracción: La
abstracción es la propiedad que permite representar las características
esenciales de un objeto, sin preocuparse de las restantes características (no
esenciales).
Polimorfismo:
Permite referirse a objetos de clases diferentes mediante el mismo elemento de
programa y realizar la misma operación de diferentes formas. Por ejemplo,
cuando se describe la clase mamíferos se puede observar que la operación comer
es una operación fundamental en la vida de los mamíferos, de modo que cada tipo
de mamífero debe poder realizar la operación o función comer. Por otra parte,
una vaca o una cabra que pastan en un campo, un niño que se come un caramelo y
un león que devora a otro animal, son diferentes formas que utilizan los
distintos mamíferos para realizar la misma función (comer).
Ocultación de datos: El usuario no necesita saber cómo se
implementa la clase, sólo cómo se utiliza. Los detalles internos de la
implementación pueden y deben ser ocultados.
Métodos: Si ha programado en algún otro lenguaje orientado
a objetos como c++ o pascal ya se puede estar familiarizado con los métodos
dado a que se puede pensar en los métodos como funciones o procedimientos. Un
método es una función que pertenece a la clase.
Clase: Una clase es un tipo de dato definido por el
usuario que determina las estructuras de datos y operaciones asociadas con ese
tipo. Dicho de otro modo una clase es una colección de objetos similares.
IMPORTANTE: recuerda no confundir clases con objetos de
esas clases, por ejemplo, un automóvil rojo y un automóvil azul no son objetos
de clases diferentes, si no objetos de la misma clase con un atributo
diferente.
Las clases se organizan para modelar el mundo real con la
siguiente relación:
Herencia: Propiedad que permite a los objetos ser
construidos a partir de otros objetos. Dicho de otro modo, la capacidad de
utilizar las estructuras de datos de los métodos previstos en antepasados o
ascendientes.
Niveles de herencia
Como comentamos,
la jerarquía de herencia puede tener más de dos niveles; una clase hija también
puede ser padre de otra clase hija; por ejemplo, mamífero es hija de animal y
padre de caballo.
Las clases
hija o subclases añaden sus propios atributos y operaciones a los de sus clases
base. Una clase puede no tener clase hija, en cuyo caso es una clase hija. Si
una clase tiene sólo un padre, se tiene herencia simple y si tiene más de un
padre, entonces, la herencia es múltiple.
Comentarios
Publicar un comentario