Vous êtes sur la page 1sur 6

TALLER DE PROGRAMACION

ORIENTADA A OBJETOS

Ing. Antonio Juáre Covarrubias


Nombre: Matricula: Carrera:
●Debanhy Lizeth Garza Rentería 1659945 IAS

Plan: 401 Hora clase: M5-M6

Frecuencia: Martes

Actividad #1

Ciudad Universitaria, San Nicolás De Los Garza, N.L


Programación Orientada a Objetos

Definición:
La programación Orientada a objetos (POO) es una forma especial de programar, más cercana a
como expresaríamos las cosas en la vida real que otros tipos de programación.

Con la POO tenemos que aprender a pensar las cosas de una manera distinta, para escribir
nuestros programas en términos de objetos, propiedades, métodos y otras cosas que veremos
rápidamente para aclarar conceptos y dar una pequeña base que permita soltarnos un poco con
este tipo de programación.

Es un paradigma de programación que usa objetos y sus interacciones, para


diseñar aplicaciones y programas informáticos. Está basado en varias técnicas,
incluyendo herencia, abstracción, polimorfismo y encapsulamiento. Su uso se popularizó a
principios de la década de los años 1990. En la actualidad, existe variedad de lenguajes de
programación que soportan la orientación a objetos.

 Conceptos básicos de la POO

Entre los principales conceptos de la POO, tenemos los siguientes:

Clase: Son definiciones de propiedades y comportamiento de un tipo de objeto específico.

Objeto: Estos elementos son entidades provistas de un conjunto de propiedades y atributos, son
considerados instancias de una clase.

Método: Un método es un algoritmo asociado a un objeto cualquiera, es decir, es un conjunto de


operaciones que se realizan a los datos que son asignados a un objeto.

Evento: Se llevan a cabo en el sistema y están relacionados con el envío de datos o la ejecución
de métodos dentro de un objeto.

Mensaje: Los mensajes representan la comunicación establecida cada vez que se ejecutan,
dirigiendo la comunicación entre el objeto y quién los creo.

Atributo: Los atributos son elementos que contienen tipos de datos asociados a objetos, y tienen
la particularidad, de que dichos datos pueden ser visibles fuera del objeto.

Estado interno: Son variables privadas que pueden ser accedidas desde un método del objeto.
Características:
Existe un acuerdo acerca de qué características contempla la "orientación a objetos", las
características siguientes son las más importantes:

 Abstracción

Denota las características esenciales de un objeto, donde se capturan sus comportamientos. Cada
objeto en el sistema sirve como modelo de un "agente" abstracto que puede realizar trabajo,
informar y cambiar su estado, y "comunicarse" con otros objetos en el sistema sin revelar cómo se
implementan estas características. Los procesos, las funciones o los métodos pueden también ser
abstraídos y cuando lo están, una variedad de técnicas son requeridas para ampliar una
abstracción. El proceso de abstracción permite seleccionar las características relevantes dentro de
un conjunto e identificar comportamientos comunes para definir nuevos tipos de entidades en el
mundo real. La abstracción es clave en el proceso de análisis y diseño orientado a objetos, ya que
mediante ella podemos llegar a armar un conjunto de clases que permitan modelar la realidad o el
problema que se quiere atacar.

 Encapsulamiento

Significa reunir a todos los elementos que pueden considerarse pertenecientes a una misma
entidad, al mismo nivel de abstracción. Esto permite aumentar la cohesión de los componentes del
sistema. Algunos autores confunden este concepto con el principio de ocultación, principalmente
porque se suelen emplear conjuntamente.

 Principio de ocultación

Cada objeto está aislado del exterior, es un módulo natural, y cada tipo de objeto expone una
interfaz a otros objetos que específica cómo pueden interactuar con los objetos de la clase. El
aislamiento protege a las propiedades de un objeto contra su modificación por quien no tenga
derecho a acceder a ellas, solamente los propios métodos internos del objeto pueden acceder a su
estado. Esto asegura que otros objetos no pueden cambiar el estado interno de un objeto de
maneras inesperadas, eliminando efectos secundarios e interacciones inesperadas. Algunos
lenguajes relajan esto, permitiendo un acceso directo a los datos internos del objeto de una manera
controlada y limitando el grado de abstracción. La aplicación entera se reduce a un agregado o
rompecabezas de objetos.

 Polimorfismo

Comportamientos diferentes, asociados a objetos distintos, pueden compartir el mismo nombre, al


llamarlos por ese nombre se utilizará el comportamiento correspondiente al objeto que se esté
usando. O dicho de otro modo, las referencias y las colecciones de objetos pueden contener
objetos de diferentes tipos, y la invocación de un comportamiento en una referencia producirá el
comportamiento correcto para el tipo real del objeto referenciado. Cuando esto ocurre en "tiempo
de ejecución", esta última característica se llama asignación tardía o asignación dinámica. Algunos
lenguajes proporcionan medios más estáticos (en "tiempo de compilación") de polimorfismo, tales
como las plantillas y la sobrecarga de operadores de C++.

 Herencia
Las clases no están aisladas, sino que se relacionan entre sí, formando una jerarquía de
clasificación. Los objetos heredan las propiedades y el comportamiento de todas las clases a las
que pertenecen. La herencia organiza y facilita el polimorfismo y el encapsulamiento permitiendo a
los objetos ser definidos y creados como tipos especializados de objetos preexistentes. Estos
pueden compartir (y extender) su comportamiento sin tener que volver a implementarlo. Esto suele
hacerse habitualmente agrupando los objetos en clases y estas en árboles o enrejados que reflejan
un comportamiento común. Cuando un objeto hereda de más de una clase se dice que hay
herencia múltiple.

 Recolección de basura

La recolección de basura o garbage collector es la técnica por la cual el entorno de objetos se


encarga de destruir automáticamente, y por tanto desvincular la memoria asociada, los objetos que
hayan quedado sin ninguna referencia a ellos. Esto significa que el programador no debe
preocuparse por la asignación o liberación de memoria, ya que el entorno la asignará al crear un
nuevo objeto y la liberará cuando nadie lo esté usando. En la mayoría de los lenguajes híbridos
que se extendieron para soportar el Paradigma de Programación Orientada a Objetos como C++ u
Object Pascal, esta característica no existe y la memoria debe desasignarse manualmente.

Ventajas y desventajas:
VENTAJAS

 Todo el código se encuentra en un solo lugar


 Los objetos pueden tener varios atributos por ejemplo, que lea un sensor y a la vez
encienda.
 Son mas fáciles de entender los códigos.
 Le ejecución del programa es rápida y sencilla, todo se encuentra en una sola ventana

La primera ventaja del concepto de objetos es que todo el código que tiene algo que ver con las
naves espaciales se encuentra en un solo lugar. Otra ventaja es que los objetos pueden poseer
atributos inherentes de la clase a la que pertenecen, por ejemplo, naves espaciales y asteroides
podrían tener ambos una posición XY porque todos los objetos que pertenecen a la clase de los
objetos en movimiento tiene una posición XY. Escribir códigos es más fácil porque se pueden
conceptualizar como algo que le sucede a un objeto. Otra ventaja es que POO hace que los
programas grandes sean más manejables. Si todas las ventanas pertenecen a una jerarquía de
clases de ventanas y todo el código que se refiere a una ventana particular está dentro de esa
ventana, todas las manipulaciones de ventana se pueden escribir como una sencilla transferencia
de mensajes.

DESVENTAJAS

 Los programas no pueden ser moldeados enteramente por la programación orientada a


objetos.
 Para leer, modificar, o hacerles algo simplemente; en algunos programas debes realizar un
paso extra para realizar estas acciones.
 Si se fuerza el lenguaje puede perder algunos objetos y características.
 Los objetos requieren una extensa documentación.
 Los objetos al ser abstracto pueden no coincidir la visión de un programador a otro.

No todos los programas pueden ser modelados con exactitud por el modelo de objetos. Si lo que
deseas es leer algunos datos, hacerles algo simple y escribir de nuevo, no tienes necesidad de
definir clases y objetos. Sin embargo, en algunos lenguajes de POO, puede que tengas que
realizar este paso extra. Otra desventaja es que si se fuerza el lenguaje en el concepto de
programación orientada a objetos, se pierden algunas de las características de lenguajes útiles,
como los "lenguajes funcionales". Otra desventaja el que concepto que un programador tiene de lo
que constituye un objeto abstracto puede no coincidir con la visión de otro programador. Los
objetos a menudo requieren una extensa documentación.

Aplicación en la industria:
A continuación se presenta una aplicación de las ideas anteriores en un programa diseñado por los
autores para el análisis de estructuras reticuladas bidimensionales. (Los códigos fuentes del
programa, as como la documentación de sus clases y el manual de usuario, pueden descargarse
gratuitamente bajo licencia general publica GNU (pudiendo colaborarse además en las líneas en
desarrollo que actualmente se encuentran abiertas) desde:
http://www.cercis.net/jstruct/jstruct.html.) En el desarrollo de esta herramienta se ha empleado el
lenguaje de programación Java. La decisión ha sido adoptada por diferentes motivos: ser un
lenguaje completamente orientado a objetos, independiente del sistema operativo y que permite
una potente edición de interfaces graficas (punto clave en el pre y pos proceso de datos y
resultados). En contra del empleo de Java puede argumentarse que no es un lenguaje tan rápido
como otros, también orientados a objetos, pero cuyo resultado se encuentra compilado a código
nativo (como C++, por ejemplo). Para que su portabilidad sea posible, en vez de código maquina,
Java genera byte code que es interpretado por la maquina virtual de Java, 188 M. Fernández Ruiz
y M. Romera Corral siendo esta a su vez la encargada de relacionarse con el sistema operativo en
cuestión. No obstante, existen compiladores JIT (Just In Time) que compilan el bytecode a código
maquina antes de ejecutarlo, siendo, por lo tanto, particularmente eficaz en la ejecución de bucles.
Sin embargo, la adopción de algoritmos optimizados y la remuneración de nudos ´ en el código
escrito permiten que el tiempo de calculo sea muy reducido. Además, una vez cargada una clase,
la próxima vez que la misma sea llamada, el tiempo que tarda en ser ejecutada es muy inferior al
estar ya en memoria. También puede entenderse como una desventaja de Java respecto de otros
lenguajes orientados a objetos la no inclusión de la programación genérica o con plantillas (muy
usadas, por ejemplo, en C++). La razón de ello es que se ha preferido renunciar en Java a su
flexibilidad para obtener una mayor claridad del código (uno de los objetivos de la programación
orientada a objetos). No obstante, Java ha reservado una palabra clave (genérico) para poder
implementarlas en un futuro.
Lenguajes más usados:
 PHP
 PYTHON
 JAVA
 C
 C++

Conclusión:
En esta actividad me pude percatar de los conceptos que sostienen los cuatro principios básicos de
la POO.

Por un lado vimos la parte de la abstracción de los datos, el cómo modelar un problema de la vida
real a un entorno que una computadora lo pudiera comprender, primero diseñando nuestras clases
y su relación entre ellas.

También, cuando implementamos nuestras clases y las jerarquías, aprendimos que tanto los
métodos y las propiedades de las mismas pueden tener un acceso restringido a otras clases, de
modo que la interacción se diera en un contexto seguro.

Por otro lado, cuando aprendimos sobre la herencia, nos dimos cuenta que con nuestra
abstracción de los problemas podemos armar jerarquías de objetos que se van expandiendo y
especializando.

También observamos las ventajas y desventajas para poder darnos una idea de cómo o que
manera nos podrá beneficiar en un futuro,

Bibliografía:
https://www.ecured.cu/Programaci%C3%B3n_Orientada_a_Objetos

http://culturacion.com/que-es-la-programacion-orientada-a-objetos-i/

https://desarrolloweb.com/articulos/499.php

http://poao4.blogspot.com/2015/11/poo-que-es-ventajas-y-desventajas.html

https://www.scipedia.com/wd/images/d/d8/Draft_Content_357519405RR212C.pdf

Vous aimerez peut-être aussi