Programación Orientada a Objetos PROGRAMACIÓN ORIENTADA A OBJETOS Sesión No. 3 Nombre: Conceptos de lenguaje orientado a objetos Contextualización Como se ha mencionado en las sesiones anteriores, los lenguajes de programación orientados a objetos son importantes, ya que con éstos se pueden definir varias formas de trabajo y determinar nuevas maneras de solucionar problemas dentro del uso de los dispositivos de nueva generación. Es importante conocer los elementos que participan dentro de la programación y la manera en que pueden desarrollarse, se requiere de tener siempre presente cualquier concepto importante que ayude a mejorar la idea de lo que se realiza, no debemos dejar a un lado los elementos que conforman a este tipo de comunicación con las máquinas, pues dependiendo de los sistemas que se tienen, manejan y controlan, se tomará en cuenta, desde la más pequeña línea de código, hasta la menos utilizada por los usuarios o desarrolladores. Cada lenguaje orientado a objetos tiene sus ventajas y desventajas, siempre nos podrán ayudar a tener un mejor desarrollo de los sistemas con que trabajamos, pero siempre también debemos contemplar los elementos de importancia en este tipo de lenguajes, ya que no todos son iguales. 1 PROGRAMACIÓN ORIENTADA A OBJETOS Introducción al Tema Los lenguajes de programación sin importar el tipo, utilizan elementos de primera instancia que ayudan a mantener siempre en orden los datos y ponerlos a disposición de los usuarios para su uso o instalación. El encapsulamiento de la información es el elemento que ayuda a tener disponibles las líneas de códigos, permitiendo también una protección de los elementos externos al mismo sistema que se ha desarrollado y será aplicado como un software. El encapsulamiento de los sistemas o líneas de código es un proceso importante, ya que con éste se puede transportar o distribuir la aplicación de la que se habla, si no se realiza un correcto encapsulado de la información puede que las aplicaciones no puedan ser instaladas o presenten fallas en la información marcando errores en sectores del disco duro donde no se considera ningún elemento instalado. 2 PROGRAMACIÓN ORIENTADA A OBJETOS Explicación Conceptos de lenguaje orientado a objetos • Los leguajes de programación orientados a objetos son utilizados como intermediarios entre los usuarios y las computadoras, con la finalidad de lograr que las máquinas cumplan con las peticiones que los individuos realizan y satisfacer una necesidad, ya sea de trabajo, entretenimiento o cualquier otra; algunos de los elementos que se toman en cuenta para la realización de un programa orientado a objetos son: atributos, comportamientos, clases, tipos de datos, constructores, objetos, etc. Cada uno de los elementos con sus atributos y características únicas las cuales los definen como únicos. • La programación orientada a objetos se basa en un modelo de la vida real, el cual toma en cuenta elementos con los cuales funciona y a los que determina instrucciones de ejecución. Por ejemplo si se toma la vida real para explicarlo, podría hablarse de una silla, esta silla en su programación consta de elementos únicos y previamente determinados, como el respaldo, el asiento, las pata, etc. ésta debe cumplir con un objetivo por el cual se construyó. La programación orientada a objetos construye elementos y les define tareas específicas que deben ser cumplidas y administradas por el mismo código que se ha dictado. Clase, Objeto e identidad ¿Qué es una clase? Una clase es un conjunto de objetos y operaciones comunes. Éstas representan a un tipo particular de objetos, los cuales cuentan con características de comportamiento similar. Cada clase tiene un código asociado, el cual determina; • Los atributos que tienen los objetivos de la clase. 3 PROGRAMACIÓN ORIENTADA A OBJETOS • Los métodos que pueden ejecutar los objetos de la clase y cómo lo hacen. Dependiendo del lenguaje de programación en que se apliquen las clases, podremos encontrar las diferencias que definen a cada lenguaje y el potencial que se ofrece con los mismos lenguajes de programación. El uso de las clases permite el uso y creación de múltiples objetos, los cuales pueden tener valor propios asignados a los atributos, esto se conoce como estado del objeto. Los componentes o elementos de una clase son los siguientes: • Atributos: determina una estructura de almacenamiento para cada objeto de la clase. • Métodos: son operaciones aplicables a los objetos. o Son el único modo de acceder a los atributos. ¿Qué es un objeto? Los objetos dentro de los lenguajes de programación representan cosas, pueden ser simples o complejos y ser utilizados como elementos realidad o imaginarios, es decir ser tomados de la realidad o la abstracción de un individuo. Los objetos pueden entenderse como un componente o código de software, el cual contiene en sí mismo características tales como el comportamiento por el cual se accede a través de su interfaz o signatura. Los objetos cuentan con varios elementos importantes que lo definen como tal, estos son: • Estado. • Comportamiento. • Identidad. La estructura y el comportamiento de objetos similares se definen en sus clases comunes. El estado puede abarcar todas las propiedades del objeto y sus valores actuales de cada propiedad. 4 PROGRAMACIÓN ORIENTADA A OBJETOS • Los objetos ocupan un espacio en el mundo físico o en la memoria del ordenador. • El estado de un objeto está influido por la historia del objeto. • Los objetos que existen en el tiempo son mutables, tienen estado, pueden ser creados, destruidos y compartidos. • El estado de un objeto representa el efecto acumulado de su comportamiento. Las relaciones que pueden existir entre los objetos abarcan operaciones, resultados y suposiciones que se hacen sobre los otros. ¿Qué es identidad? Dentro de los ambientes de programación podemos contar con elementos importantes, los cuales definen funciones y formas de estructurar un sistema de codificación. Podemos comprender la identidad, como: • La identidad caracteriza a un objeto y su propia existencia. • Permite distinguir objetos de forma no ambigua. • Es un concepto abstracto sobre el objeto. • Es una propiedad de un objeto que lo diferencia del resto. • Su comportamiento está definido por los métodos o mensajes a los que responde dicho objeto. • Su estado está compuesto de datos, cuenta con uno o varios atributos. La identidad permite al programador o desarrollador diferenciar un elemento de los demás, puede ser mediante la aplicación de metadatos, comentarios en las líneas del código o cualquier otra manera que permita la identificación de los elementos. Encapsulamiento El encapsulamiento se refiere a la capacidad de agrupar, condensar o concentrar en un entorno con límites bien definidos distintos elementos. La 5 PROGRAMACIÓN ORIENTADA A OBJETOS encapsulación sin importar de qué elemento se trate siempre se realiza de manera abstracta. La encapsulación también es conocida como ocultamiento. Ésta se encarga de mantener ocultos los procesos internos necesarios para hacer lo que solicite, ofreciendo al programador sólo lo requerido. Dicho de otra forma, el encapsulamiento significa reunir todos los elementos que pueden considerarse pertenecientes a una misma entidad al mismo nivel de abstracción. De esta forma se permite aumentar la cohesión de los componentes del sistema. El encapsulamiento de variables y métodos en un componente de cualquier programa tiene grandes beneficios para los desarrolladores de software. El encapsulamiento trata de unir en la clase las características y comportamientos, variables o métodos, esto no es posible dentro de los lenguajes estructurados. El encapsulamiento se logra gracias a la abstracción y el ocultamiento. Debido al encapsulamiento, las clases se dividen en dos; • Interface: captura la visión externa de la clase, toma en cuenta la abstracción del comportamiento común. • Implementación: maneja la representación de la abstracción al igual que los procesos que conducen al comportamiento deseado. 6 PROGRAMACIÓN ORIENTADA A OBJETOS Conclusión Los lenguajes de programación orientados a objetos son muy importantes y presentan características relevantes que debemos comprender, tales como el encapsulamiento. Este proceso es muy utilizado, ya que ayuda a definir de mejor manera la protección que se tiene en un sistema o en la distribución de una aplicación por cualquier vía. El encapsulamiento no sólo se da en los lenguajes de programación, podemos realizar este proceso sobre otros elementos, tales como animaciones, presentaciones, videos o cualquier otro elemento o conjunto de elementos, pues el encapsulamiento reúne todos los datos en un solo archivo, el cual puede ser ejecutado o compilado con una aplicación externa, tal es el uso de los plug-ings y en algunos casos las máquinas virtuales, cuya función en estos elementos es la de traducir la información, separándola y estructurándola en un orden determinado con el que cumplirá el objetivo con el cual se diseñó. Todos los elementos digitales, cuentan con cierto tipo de encapsulado el cual sólo es traducido, ya que todos los elementos digitales son construidos por códigos de información, coordenadas, instrucciones de ejecución o cualquier otro elemento útil para la creación y desarrollo de datos. 7 PROGRAMACIÓN ORIENTADA A OBJETOS Para aprender más Clase, Objeto e identidad Clase Dentro de la programación con clases, podemos encontrar atributos que diferencian un elemento de otro, sin embargo cuando esto no se hace bien puede tener contradicciones en las líneas de código obstaculizando el trabajo y alterando los resultados finales que se buscan. Dentro de las principales características que encontramos en estos elementos contamos con; • Public: es el identificador o atributo que indica al elemento que puede ser visto o de acceso público. • Private: es el identificador o atributo que indica al elemento que no puede ser visto o de acceso público, se define como un elemento privado al que sólo se puede acceder con autorización o privilegios de administrador o programador. Objeto Éste se conoce como una instancia de clase, se crea en tiempo de ejecución, también comprendida como una estructura de datos formada por campos y atributos de la clase. Los objetos se pueden manejar por estado, los cuales son dados por el valor de los campos y sus métodos permiten la consulta y modificación del mismo. En la categoría de los objetos nos encontramos con varios tipos de éstos, los cuales pueden ser; • Objetos externos: son procedentes de la aplicación, pueden ser; o Carpeta. o Buzón. o Mensaje. o Etc. 8 PROGRAMACIÓN ORIENTADA A OBJETOS • Objetos software: éstos pueden ser obtenidos de diferentes elementos, como; o Procedentes del análisis: son todos los elementos externos. o Procedentes del diseño/implementación: pueden ser tomados de elementos como árbol binario, lista enlazada, ventada, etc. Encapsulamiento El encapsulamiento es un proceso importante que ayuda a definir medios de seguridad en los parámetros de una aplicación, algunas de las formas de encapsular la información son; • Estándar: es el medio predeterminado. • Abierto: éste puede ser accedido desde fuera de la clase y cualquier parte del programa. • Protegido: es accesible sólo desde la clase y clases que heredan. • Semicerrado: se accede desde la clase heredada. • Cerrado: sólo es accesible desde la clase. Con el encapsulamiento se definen varios niveles de acceso para elementos de clase, estos niveles deciden los derechos para acceder a los datos, permitiendo el ingreso por medio de funciones desde una clase heredada o también desde cualquier otra clase, por lo que se definen tres niveles; • Público: son métodos de toda clase con lo que se puede acceder a los datos de una clase que se define con el nivel de acceso público. • Protegido: no permite el acceso a los datos a las funciones de clase en particular. • Privado: el acceso a los datos está prohibido a los métodos de esa clase en particular. La encapsulación es conveniente y permite colocar en funcionamiento nuestros objetos en cualquier tipo de sistema, haciéndolo de manera modular y escalable. 9 PROGRAMACIÓN ORIENTADA A OBJETOS Actividad de Aprendizaje Instrucciones Con la finalidad de reforzar los conocimientos adquiridos a lo largo de esta sesión, ahora tendrás que realizar una actividad en la cual a través de un mapa sinóptico indiques los elementos principales de encapsulamiento y objeto, puedes indicar algún ejemplo si lo deseas. Puedes realizarlo en cualquier programa, al final tendrás que guardarlo como un documento de texto, con la finalidad de subirlo a la plataforma de la asignatura. 10 PROGRAMACIÓN ORIENTADA A OBJETOS Bibliografía • Álvarez H. (1997). Clases y objetos. Consultado en: http://fpsalmon.usc.es/genp/doc/cursos/poo/clases.html#OBJ • guadalinfo. (2011) Conceptos básicos de la programación orientada a objetos. Consultado en: http://www.edukanda.es/mediatecaweb/data/zip/1305/page_10.htm • Moros B. (2009). Programación orientada a objetos. Consultado en: http://dis.um.es/~bmoros/privado/apuntes/Curso09-10/POO2-Java0910.pdf • Pavón J. (2007) Fundamentos de la programación orientada a objetos. Consultado en: http://www.fdi.ucm.es/profesor/jpavon/poo/1.1.Objetos%20y%20Clases.pd f • s/a. (s.f.) Concepto básico de la programación orientada a objetos. Consultado en: http://www.sc.ehu.es/sbweb/fisica/cursoJava/fundamentos/clases1/clases. htm • s/a. (s.f.) Encapsulamiento. Consultado en: http://algonzalezpoo.wordpress.com/encapsulamiento/ • S/a (2010). Programación orientada a objetos. Consultado en: http://davidjguru.com/2010/03/24/programacion-orientada-a-objetos-poo-iintroduccion/ 11 PROGRAMACIÓN ORIENTADA A OBJETOS • S/a (2013). Programación orientada a objetos. Consultado en: http://www.scenebeta.com/tutorial/programacion-orientada-objetos-poo • Suárez C. (2010). Características POO, encapsulamiento. Consultado en: http://carmensrz.blogspot.mx/2010/11/caracteristica-pooencapsulamiento.htm 12