SlideShare una empresa de Scribd logo
1 de 14
POO
La programación orientada a objetos o POO es
un paradigma de programación que usa los
objetos en sus interacciones, para diseñar
aplicaciones y programas informáticos. Está
basado en varias técnicas, incluyendo herencia,
cohesión, abstracción, polimorfismo,
acoplamiento 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 fundamentales
La programación orientada a objetos
es una forma de programar que trata
de encontrar una solución a estos
problemas. Introduce nuevos
conceptos, que superan y amplían
conceptos antiguos ya conocidos.
Componentes de un objeto: atributos,
identidad, relaciones y métodos.
Identificación de un objeto: un objeto se
representa por medio de una tabla o entidad que
esté compuesta por sus atributos y funciones
correspondientes.
En comparación con un lenguaje imperativo,
una "variable" no es más que un contenedor
interno del atributo del objeto o de un estado
interno, así como la "función" es un
procedimiento interno del método del objeto.
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 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.
Modularidad: se denomina modularidad a la
propiedad que permite subdividir una
aplicación en partes más pequeñas (llamadas
módulos), cada una de las cuales debe ser tan
independiente como sea posible de la
aplicación en sí y de las restantes partes. Estos
módulos se pueden compilar por separado,
pero tienen conexiones con otros módulos. Al
igual que la encapsulación, los lenguajes
soportan la modularidad de diversas formas.
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 especifica 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 puedan cambiar el estado interno de un
objeto de manera inesperada, 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.
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 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 expresamente.
Entre los lenguajes orientados a objetos
se destacan los siguientes:
ABAP -> SAP Lenguaje orientado a
eventos
ABL Lenguaje de programación de
Open Edge de Progress Software
Action Script
POO: Programación Orientada a Objetos

Más contenido relacionado

La actualidad más candente

TOPOLOGIA EN ESTRELLA
TOPOLOGIA EN ESTRELLATOPOLOGIA EN ESTRELLA
TOPOLOGIA EN ESTRELLALizz Ibañez
 
Ventajas y desventajas de la topologia en arbol
Ventajas y desventajas de la topologia en arbolVentajas y desventajas de la topologia en arbol
Ventajas y desventajas de la topologia en arbolRONAL165
 
Planeación y diseño de una red local
Planeación y diseño de una red localPlaneación y diseño de una red local
Planeación y diseño de una red localLeonardo Gómez
 
Cuadro sinóptico rede
Cuadro sinóptico redeCuadro sinóptico rede
Cuadro sinóptico redeAngie Silva
 
Organelos celulares y sus funciones
Organelos celulares y sus funcionesOrganelos celulares y sus funciones
Organelos celulares y sus funcionesOscarodl
 
Categorias de cable utp 1
Categorias de cable utp 1Categorias de cable utp 1
Categorias de cable utp 1laifran_berdugo
 
Composición química del cuerpo humano
Composición química del cuerpo humanoComposición química del cuerpo humano
Composición química del cuerpo humanoAllison Guerrero
 
Red gigabit ethernet
Red gigabit ethernetRed gigabit ethernet
Red gigabit ethernetBERNABEU24
 
Medios de transmision guiados y no guiados
Medios de transmision guiados y no guiadosMedios de transmision guiados y no guiados
Medios de transmision guiados y no guiadosdeissynen
 
Diversidad de la vida
Diversidad  de la vidaDiversidad  de la vida
Diversidad de la vidazoilitafer
 
Fundamentos de Biología Celular y Molecular De Robertis
Fundamentos de Biología Celular y Molecular De RobertisFundamentos de Biología Celular y Molecular De Robertis
Fundamentos de Biología Celular y Molecular De RobertisJhon Bryant Toro Ponce
 
Evolución de las redes
Evolución de las redesEvolución de las redes
Evolución de las redesSolangef22
 

La actualidad más candente (19)

TOPOLOGIA EN ESTRELLA
TOPOLOGIA EN ESTRELLATOPOLOGIA EN ESTRELLA
TOPOLOGIA EN ESTRELLA
 
Pared celular
Pared celularPared celular
Pared celular
 
Ventajas y desventajas de la topologia en arbol
Ventajas y desventajas de la topologia en arbolVentajas y desventajas de la topologia en arbol
Ventajas y desventajas de la topologia en arbol
 
Ud2 hoja1 correccion
Ud2 hoja1 correccionUd2 hoja1 correccion
Ud2 hoja1 correccion
 
Planeación y diseño de una red local
Planeación y diseño de una red localPlaneación y diseño de una red local
Planeación y diseño de una red local
 
Fundamentos de redes
Fundamentos de redesFundamentos de redes
Fundamentos de redes
 
Cuadro sinóptico rede
Cuadro sinóptico redeCuadro sinóptico rede
Cuadro sinóptico rede
 
Organelos celulares y sus funciones
Organelos celulares y sus funcionesOrganelos celulares y sus funciones
Organelos celulares y sus funciones
 
Categorias de cable utp 1
Categorias de cable utp 1Categorias de cable utp 1
Categorias de cable utp 1
 
Composición química del cuerpo humano
Composición química del cuerpo humanoComposición química del cuerpo humano
Composición química del cuerpo humano
 
El origen de las especies
El origen de las especiesEl origen de las especies
El origen de las especies
 
Red gigabit ethernet
Red gigabit ethernetRed gigabit ethernet
Red gigabit ethernet
 
Nucleo interfasico
Nucleo interfasicoNucleo interfasico
Nucleo interfasico
 
Medios de transmision guiados y no guiados
Medios de transmision guiados y no guiadosMedios de transmision guiados y no guiados
Medios de transmision guiados y no guiados
 
Tipos de Redes
Tipos de RedesTipos de Redes
Tipos de Redes
 
membrana nuclear
membrana nuclear membrana nuclear
membrana nuclear
 
Diversidad de la vida
Diversidad  de la vidaDiversidad  de la vida
Diversidad de la vida
 
Fundamentos de Biología Celular y Molecular De Robertis
Fundamentos de Biología Celular y Molecular De RobertisFundamentos de Biología Celular y Molecular De Robertis
Fundamentos de Biología Celular y Molecular De Robertis
 
Evolución de las redes
Evolución de las redesEvolución de las redes
Evolución de las redes
 

Similar a POO: Programación Orientada a Objetos

Programacion orientada a objeto
Programacion orientada  a objetoProgramacion orientada  a objeto
Programacion orientada a objetokcarbache
 
Carcateristicas de la poo22
Carcateristicas de la poo22Carcateristicas de la poo22
Carcateristicas de la poo22maxajane
 
Programacion orientada a objetos
Programacion orientada a objetosProgramacion orientada a objetos
Programacion orientada a objetosALfonsx Viejo
 
Programación estructurada a objetos.pptm
Programación  estructurada  a objetos.pptmProgramación  estructurada  a objetos.pptm
Programación estructurada a objetos.pptmelvis mendieta
 
LABORATORIO DE PROGRAMACIÓN I
LABORATORIO DE PROGRAMACIÓN ILABORATORIO DE PROGRAMACIÓN I
LABORATORIO DE PROGRAMACIÓN ISILVA19_PAMELA
 
Introduccion al paradigma de la programacion orientado a objetos original
Introduccion al paradigma de la programacion orientado a objetos originalIntroduccion al paradigma de la programacion orientado a objetos original
Introduccion al paradigma de la programacion orientado a objetos originalJose Angel Rodriguez
 
Programación orientada a objetos
Programación orientada a objetosProgramación orientada a objetos
Programación orientada a objetosronnyme21
 
Caracteristicas de un lenguaje de p.o.o
Caracteristicas de un lenguaje de p.o.oCaracteristicas de un lenguaje de p.o.o
Caracteristicas de un lenguaje de p.o.oANDRES PEÑA CARBAJAL
 
Programacion orientada a objetos
Programacion orientada a objetosProgramacion orientada a objetos
Programacion orientada a objetosAgapito26
 
CUESTIONARIO SOBRE PROGRAMACIÓN RELACIONADA A OBJETOS
CUESTIONARIO SOBRE PROGRAMACIÓN RELACIONADA A OBJETOSCUESTIONARIO SOBRE PROGRAMACIÓN RELACIONADA A OBJETOS
CUESTIONARIO SOBRE PROGRAMACIÓN RELACIONADA A OBJETOSLuis Miguel Gutierrez
 
fundamentos-de-poo.ppt 2.ppt
fundamentos-de-poo.ppt 2.pptfundamentos-de-poo.ppt 2.ppt
fundamentos-de-poo.ppt 2.pptjuan gonzalez
 
Programacion orientada a objetos by Marcos Acosta
Programacion orientada a objetos by Marcos AcostaProgramacion orientada a objetos by Marcos Acosta
Programacion orientada a objetos by Marcos AcostaMarcos Acosta
 

Similar a POO: Programación Orientada a Objetos (20)

Asignación 1 astrid c.
Asignación 1 astrid c.Asignación 1 astrid c.
Asignación 1 astrid c.
 
Programacion orientada a objeto
Programacion orientada  a objetoProgramacion orientada  a objeto
Programacion orientada a objeto
 
Conceptos poo
Conceptos pooConceptos poo
Conceptos poo
 
Poo
PooPoo
Poo
 
Presentación1
Presentación1Presentación1
Presentación1
 
Carcateristicas de la poo22
Carcateristicas de la poo22Carcateristicas de la poo22
Carcateristicas de la poo22
 
Programacion orientada a objetos
Programacion orientada a objetosProgramacion orientada a objetos
Programacion orientada a objetos
 
Programación estructurada a objetos.pptm
Programación  estructurada  a objetos.pptmProgramación  estructurada  a objetos.pptm
Programación estructurada a objetos.pptm
 
LABORATORIO DE PROGRAMACIÓN I
LABORATORIO DE PROGRAMACIÓN ILABORATORIO DE PROGRAMACIÓN I
LABORATORIO DE PROGRAMACIÓN I
 
Cspr
CsprCspr
Cspr
 
Cspr
CsprCspr
Cspr
 
Introduccion al paradigma de la programacion orientado a objetos original
Introduccion al paradigma de la programacion orientado a objetos originalIntroduccion al paradigma de la programacion orientado a objetos original
Introduccion al paradigma de la programacion orientado a objetos original
 
Programación orientada a objetos
Programación orientada a objetosProgramación orientada a objetos
Programación orientada a objetos
 
Caracteristicas de un lenguaje de p.o.o
Caracteristicas de un lenguaje de p.o.oCaracteristicas de un lenguaje de p.o.o
Caracteristicas de un lenguaje de p.o.o
 
Programacion orientada a objetos
Programacion orientada a objetosProgramacion orientada a objetos
Programacion orientada a objetos
 
CUESTIONARIO SOBRE PROGRAMACIÓN RELACIONADA A OBJETOS
CUESTIONARIO SOBRE PROGRAMACIÓN RELACIONADA A OBJETOSCUESTIONARIO SOBRE PROGRAMACIÓN RELACIONADA A OBJETOS
CUESTIONARIO SOBRE PROGRAMACIÓN RELACIONADA A OBJETOS
 
fundamentos-de-poo.ppt 2.ppt
fundamentos-de-poo.ppt 2.pptfundamentos-de-poo.ppt 2.ppt
fundamentos-de-poo.ppt 2.ppt
 
Poo
PooPoo
Poo
 
Programación orientada a objetos
Programación orientada a objetosProgramación orientada a objetos
Programación orientada a objetos
 
Programacion orientada a objetos by Marcos Acosta
Programacion orientada a objetos by Marcos AcostaProgramacion orientada a objetos by Marcos Acosta
Programacion orientada a objetos by Marcos Acosta
 

POO: Programación Orientada a Objetos

  • 1. POO
  • 2. La programación orientada a objetos o POO es un paradigma de programación que usa los objetos en sus interacciones, para diseñar aplicaciones y programas informáticos. Está basado en varias técnicas, incluyendo herencia, cohesión, abstracción, polimorfismo, acoplamiento 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.
  • 3. Conceptos fundamentales La programación orientada a objetos es una forma de programar que trata de encontrar una solución a estos problemas. Introduce nuevos conceptos, que superan y amplían conceptos antiguos ya conocidos.
  • 4. Componentes de un objeto: atributos, identidad, relaciones y métodos. Identificación de un objeto: un objeto se representa por medio de una tabla o entidad que esté compuesta por sus atributos y funciones correspondientes. En comparación con un lenguaje imperativo, una "variable" no es más que un contenedor interno del atributo del objeto o de un estado interno, así como la "función" es un procedimiento interno del método del objeto.
  • 5.
  • 6. 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.
  • 7. Encapsulamiento: significa reunir 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.
  • 8. Modularidad: se denomina modularidad a la propiedad que permite subdividir una aplicación en partes más pequeñas (llamadas módulos), cada una de las cuales debe ser tan independiente como sea posible de la aplicación en sí y de las restantes partes. Estos módulos se pueden compilar por separado, pero tienen conexiones con otros módulos. Al igual que la encapsulación, los lenguajes soportan la modularidad de diversas formas.
  • 9. 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 especifica 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 puedan cambiar el estado interno de un objeto de manera inesperada, 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.
  • 10. 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++.
  • 11. 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.
  • 12. Recolección de basura: la recolección de basura 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 expresamente.
  • 13. Entre los lenguajes orientados a objetos se destacan los siguientes: ABAP -> SAP Lenguaje orientado a eventos ABL Lenguaje de programación de Open Edge de Progress Software Action Script