Inducción a la POO
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.
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