SlideShare una empresa de Scribd logo
1 de 2
Elementos primordiales en el modelo de objetos
La programación Orientada a Objetos trata de cumplir las necesidades de los usuarios
finales, estás tareas se realizan mediante la modelización del mundo real, el soporté
fundamental es el modelo objeto.
Los elementos más importantes de este modelo son:
Abstracción
La abstracción, un principio por el cual se aísla toda aquella información que no resulta
relevante a un determinado nivel de conocimiento.
Encapsulamiento
En programación modular, y más específicamente en programación orientada a objetos,
se denomina encapsulamiento al ocultamiento del estado, es decir, de los datos miembro,
de un objeto de manera que sólo se puede cambiar mediante las operaciones definidas
para ese objeto.
Cada objeto está aislado del exterior, es un módulo natural, y la aplicación entera se
reduce a un agregado o rompecabezas de objetos. El aislamiento protege a los datos
asociados a un objeto contra su modificación por quien no tenga derecho a acceder a
ellos, eliminando efectos secundarios e interacciones.
De esta forma el usuario de la clase puede obviar la implementación de los métodos y
propiedades para concentrarse sólo en cómo usarlos. Por otro lado se evita que el usuario
pueda cambiar su estado de maneras imprevistas e incontroladas.
Modularidad
La modularidad es la capacidad que tiene un sistema de ser estudiado, visto o entendido
como la unión de varias partes que interactúan entre sí y que trabajan para alcanzar un
objetivo común, realizando cada una de ellas una tarea necesaria para la consecución de
dicho objetivo. Cada una de esas partes en que se encuentre dividido el sistema recibe el
nombre de módulo. Idealmente un módulo debe poder cumplir las condiciones de caja
negra, es decir, ser independiente del resto de los módulos y comunicarse con ellos (con
todos o sólo con una parte) a través de unas entradas y salidas bien definidas.
Jerarquía y Herencia
La Jerarquía es una propiedad que permite la ordenación de las abstracciones. Las dos
jerarquías más importantes de un sistema complejo son: estructura de clases (jerarquía
“es-un” (is-a): generalización/especialización) y estructura de objetos (jerarquía “parte-de”
(part-of): agregación).
Las jerarquías de generalización/especialización se conocen como herencia.
Básicamente, la herencia define una relación entre clases, en donde una clase comparte
la estructura o comportamiento definido en una o más clases (herencia simple y herencia
múltiple, respectivamente).
La agregación es el concepto que permite el agrupamiento físico de estructuras
relacionadas lógicamente. Así, un camión se compone de ruedas, motor, sistema de
transmisión y chasis; en consecuencia, camión es una agregación, y ruedas, motor,
transmisión y chasis son agregados de camión.
Polimorfismo
La quinta propiedad significativa de los lenguajes de programación orientados a objetos
es el polimorfismo. Es la propiedad que indica, literalmente, la posibilidad de que una
entidad tome muchas formas. En términos prácticos, el polimorfismo permite referirse a
objetos de clases diferentes mediante el mismo elemento de programa y realizar la misma
operación de diferentes formas, según sea el objeto que se referencia en ese momento.
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 cabra o
una vaca 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 diferentes mamíferos para realizar
la misma función (comer).
El polimorfismo adquiere su máxima expresión en la derivación o extensión de clases, es
decir, cuando se obtiene una clase a partir de una clase ya existente, mediante la
propiedad de derivación de clases o herencia.
El polimorfismo requiere ligadura tardía o postergada (también llamada dinámica), y esto
sólo se puede producir en lenguajes de programación orientados a objetos. Los lenguajes
no orientados a objetos soportan ligadura temprana o anterior (también llamada estática),
esto significa que el compilador genera una llamada a un nombre específico de función y
el enlazador (linker) resuelve la llamada a la dirección absoluta del código que se ha de
ejecutar. En POO, el programa no puede determinar la dirección del código hasta el
momento de la ejecución. Cuando se envía un mensaje a un objeto, el código que se
llama no se determina hasta el momento de la ejecución. El compilador asegura que la
función existe y realiza verificación de tipos de los argumentos y del valor de retorno, pero
no conoce el código exacto a ejecutar.

Más contenido relacionado

La actualidad más candente

Modelo de 5 estados para sistemas operativos
Modelo de 5 estados para sistemas operativosModelo de 5 estados para sistemas operativos
Modelo de 5 estados para sistemas operativosLuis Dario Gomez
 
Programacion orientada a objetos - unidad 3 herencia
Programacion orientada a objetos - unidad 3 herenciaProgramacion orientada a objetos - unidad 3 herencia
Programacion orientada a objetos - unidad 3 herenciaJosé Antonio Sandoval Acosta
 
Estructura de Datos - Unidad 4 Estructuras no lineales
Estructura de Datos - Unidad 4 Estructuras no linealesEstructura de Datos - Unidad 4 Estructuras no lineales
Estructura de Datos - Unidad 4 Estructuras no linealesJosé Antonio Sandoval Acosta
 
Notación infija postfija
Notación infija postfijaNotación infija postfija
Notación infija postfijaOmarzingm
 
Programación del lado del cliente
Programación del lado del clienteProgramación del lado del cliente
Programación del lado del clienteGabriel Mondragón
 
Analisis Y DiseñO Orientado A Objetos
Analisis Y DiseñO Orientado A ObjetosAnalisis Y DiseñO Orientado A Objetos
Analisis Y DiseñO Orientado A Objetosyoiner santiago
 
Dispositvos de entrada y salida
Dispositvos de entrada y salidaDispositvos de entrada y salida
Dispositvos de entrada y salidaitzayana bacilio
 
Normalización de Base de Datos
Normalización de Base de DatosNormalización de Base de Datos
Normalización de Base de DatosVannesa Salazar
 
Estructura de datos: lista, pilas y colas
Estructura de datos: lista, pilas y colasEstructura de datos: lista, pilas y colas
Estructura de datos: lista, pilas y colasHuascar Génere
 
Ventajas y desventajas de visual studio
Ventajas  y desventajas de visual studioVentajas  y desventajas de visual studio
Ventajas y desventajas de visual studioruthmayhuavale
 
Algebra relacional (operaciones)
Algebra relacional (operaciones)Algebra relacional (operaciones)
Algebra relacional (operaciones)sarai0000
 
Tópicos avanzados de programación eventos
Tópicos  avanzados  de programación   eventosTópicos  avanzados  de programación   eventos
Tópicos avanzados de programación eventosKanddy Mobylml
 
ConexióN A Base De Datos En Netbeans
ConexióN A Base De Datos En NetbeansConexióN A Base De Datos En Netbeans
ConexióN A Base De Datos En Netbeansguest044583b
 
Normalizacion de base de datos
Normalizacion de base de datosNormalizacion de base de datos
Normalizacion de base de datosYarquiri Claudio
 
Sentencia if else
Sentencia if elseSentencia if else
Sentencia if elseUVM
 
automatas finitos
 automatas finitos automatas finitos
automatas finitosAnel Sosa
 

La actualidad más candente (20)

Modelo de 5 estados para sistemas operativos
Modelo de 5 estados para sistemas operativosModelo de 5 estados para sistemas operativos
Modelo de 5 estados para sistemas operativos
 
Programacion orientada a objetos - unidad 3 herencia
Programacion orientada a objetos - unidad 3 herenciaProgramacion orientada a objetos - unidad 3 herencia
Programacion orientada a objetos - unidad 3 herencia
 
Estructura de Datos - Unidad 4 Estructuras no lineales
Estructura de Datos - Unidad 4 Estructuras no linealesEstructura de Datos - Unidad 4 Estructuras no lineales
Estructura de Datos - Unidad 4 Estructuras no lineales
 
Notación infija postfija
Notación infija postfijaNotación infija postfija
Notación infija postfija
 
Programación del lado del cliente
Programación del lado del clienteProgramación del lado del cliente
Programación del lado del cliente
 
Analisis Y DiseñO Orientado A Objetos
Analisis Y DiseñO Orientado A ObjetosAnalisis Y DiseñO Orientado A Objetos
Analisis Y DiseñO Orientado A Objetos
 
Lenguaje ensamblador
Lenguaje ensambladorLenguaje ensamblador
Lenguaje ensamblador
 
Dispositvos de entrada y salida
Dispositvos de entrada y salidaDispositvos de entrada y salida
Dispositvos de entrada y salida
 
Normalización de Base de Datos
Normalización de Base de DatosNormalización de Base de Datos
Normalización de Base de Datos
 
macros Lenguaje ensamblador
macros Lenguaje ensambladormacros Lenguaje ensamblador
macros Lenguaje ensamblador
 
Estructura de datos: lista, pilas y colas
Estructura de datos: lista, pilas y colasEstructura de datos: lista, pilas y colas
Estructura de datos: lista, pilas y colas
 
Ventajas y desventajas de visual studio
Ventajas  y desventajas de visual studioVentajas  y desventajas de visual studio
Ventajas y desventajas de visual studio
 
Algebra relacional (operaciones)
Algebra relacional (operaciones)Algebra relacional (operaciones)
Algebra relacional (operaciones)
 
Noción de archivo real y virtual
Noción de archivo real y virtual Noción de archivo real y virtual
Noción de archivo real y virtual
 
Tópicos avanzados de programación eventos
Tópicos  avanzados  de programación   eventosTópicos  avanzados  de programación   eventos
Tópicos avanzados de programación eventos
 
ConexióN A Base De Datos En Netbeans
ConexióN A Base De Datos En NetbeansConexióN A Base De Datos En Netbeans
ConexióN A Base De Datos En Netbeans
 
Normalizacion de base de datos
Normalizacion de base de datosNormalizacion de base de datos
Normalizacion de base de datos
 
Tema3 procesos
Tema3 procesos Tema3 procesos
Tema3 procesos
 
Sentencia if else
Sentencia if elseSentencia if else
Sentencia if else
 
automatas finitos
 automatas finitos automatas finitos
automatas finitos
 

Destacado

programacion para la web (Dom)
programacion para la web (Dom)programacion para la web (Dom)
programacion para la web (Dom)Ivana Ibarra
 
Document object model(dom)
Document object model(dom)Document object model(dom)
Document object model(dom)rahul kundu
 
DOM ( Document Object Model )
DOM ( Document Object Model )DOM ( Document Object Model )
DOM ( Document Object Model )ITSTB
 
Introduccion a DOM y AJAX - Javier Oliver Fulguera
Introduccion a DOM y AJAX  -  Javier Oliver FulgueraIntroduccion a DOM y AJAX  -  Javier Oliver Fulguera
Introduccion a DOM y AJAX - Javier Oliver FulgueraJavier Oliver Fulguera
 
Document Object Model
Document Object ModelDocument Object Model
Document Object Modelchomas kandar
 
Mapas conceptuales con Cmap tools
Mapas conceptuales con Cmap toolsMapas conceptuales con Cmap tools
Mapas conceptuales con Cmap toolsVíctor Barbero
 

Destacado (9)

programacion para la web (Dom)
programacion para la web (Dom)programacion para la web (Dom)
programacion para la web (Dom)
 
Programacion web
Programacion webProgramacion web
Programacion web
 
Document object model(dom)
Document object model(dom)Document object model(dom)
Document object model(dom)
 
DOM ( Document Object Model )
DOM ( Document Object Model )DOM ( Document Object Model )
DOM ( Document Object Model )
 
Introduccion a DOM y AJAX - Javier Oliver Fulguera
Introduccion a DOM y AJAX  -  Javier Oliver FulgueraIntroduccion a DOM y AJAX  -  Javier Oliver Fulguera
Introduccion a DOM y AJAX - Javier Oliver Fulguera
 
Document Object Model
Document Object ModelDocument Object Model
Document Object Model
 
Usando Cmap Tools
Usando Cmap ToolsUsando Cmap Tools
Usando Cmap Tools
 
Mapas Conceptuales (Hermes)
Mapas Conceptuales (Hermes)Mapas Conceptuales (Hermes)
Mapas Conceptuales (Hermes)
 
Mapas conceptuales con Cmap tools
Mapas conceptuales con Cmap toolsMapas conceptuales con Cmap tools
Mapas conceptuales con Cmap tools
 

Similar a Elementos clave POO: abstracción, encapsulamiento, herencia

Definiciones taller 8 agost
Definiciones taller 8 agostDefiniciones taller 8 agost
Definiciones taller 8 agostoosorioj
 
Programación orientada a objetos
Programación orientada a objetosProgramación orientada a objetos
Programación orientada a objetosAlexis Arguello
 
Exposicion orientada a objetos
Exposicion orientada a objetosExposicion orientada a objetos
Exposicion orientada a objetospc79599paty
 
Programación Orientada a Objetos
Programación Orientada a ObjetosProgramación Orientada a Objetos
Programación Orientada a Objetospc79599paty
 
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
Programacion orientada a objetos Programacion orientada a objetos
Programacion orientada a objetos Jorge Luis B
 
Programación orientada a objetos
Programación orientada a objetos Programación orientada a objetos
Programación orientada a objetos Jorge Luis B
 
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
 
Lenguaje de Programación Orientada a Objetos
Lenguaje  de  Programación  Orientada  a Objetos Lenguaje  de  Programación  Orientada  a Objetos
Lenguaje de Programación Orientada a Objetos Marielena Lujano
 
Analisis orientado a objetos
Analisis orientado a objetosAnalisis orientado a objetos
Analisis orientado a objetosvilma pilco
 
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
 
Carcateristicas de la poo22
Carcateristicas de la poo22Carcateristicas de la poo22
Carcateristicas de la poo22maxajane
 

Similar a Elementos clave POO: abstracción, encapsulamiento, herencia (20)

Poo
PooPoo
Poo
 
Definiciones taller 8 agost
Definiciones taller 8 agostDefiniciones taller 8 agost
Definiciones taller 8 agost
 
Conceptos poo
Conceptos pooConceptos poo
Conceptos poo
 
Act10byme
Act10bymeAct10byme
Act10byme
 
Programación orientada a objetos
Programación orientada a objetosProgramación orientada a objetos
Programación orientada a objetos
 
Programación orientada a objetos
Programación orientada a objetosProgramación orientada a objetos
Programación orientada a objetos
 
Exposicion orientada a objetos
Exposicion orientada a objetosExposicion orientada a objetos
Exposicion orientada a objetos
 
Programación Orientada a Objetos
Programación Orientada a ObjetosProgramación Orientada a Objetos
Programación Orientada a Objetos
 
Asignación 1 astrid c.
Asignación 1 astrid c.Asignación 1 astrid c.
Asignación 1 astrid c.
 
fundamentos-de-poo.ppt 2.ppt
fundamentos-de-poo.ppt 2.pptfundamentos-de-poo.ppt 2.ppt
fundamentos-de-poo.ppt 2.ppt
 
Programacion orientada a objetos
Programacion orientada a objetos Programacion orientada a objetos
Programacion orientada a objetos
 
Programación orientada a objetos
Programación orientada a objetos Programación orientada a objetos
Programación 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
 
Cspr
CsprCspr
Cspr
 
Cspr
CsprCspr
Cspr
 
Lenguaje de Programación Orientada a Objetos
Lenguaje  de  Programación  Orientada  a Objetos Lenguaje  de  Programación  Orientada  a Objetos
Lenguaje de Programación Orientada a Objetos
 
Analisis orientado a objetos
Analisis orientado a objetosAnalisis orientado a objetos
Analisis orientado 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
 
Carcateristicas de la poo22
Carcateristicas de la poo22Carcateristicas de la poo22
Carcateristicas de la poo22
 
Unidad 1. Introducción. Conceptos fundamentales de la POO
Unidad 1. Introducción. Conceptos fundamentales de la POOUnidad 1. Introducción. Conceptos fundamentales de la POO
Unidad 1. Introducción. Conceptos fundamentales de la POO
 

Elementos clave POO: abstracción, encapsulamiento, herencia

  • 1. Elementos primordiales en el modelo de objetos La programación Orientada a Objetos trata de cumplir las necesidades de los usuarios finales, estás tareas se realizan mediante la modelización del mundo real, el soporté fundamental es el modelo objeto. Los elementos más importantes de este modelo son: Abstracción La abstracción, un principio por el cual se aísla toda aquella información que no resulta relevante a un determinado nivel de conocimiento. Encapsulamiento En programación modular, y más específicamente en programación orientada a objetos, se denomina encapsulamiento al ocultamiento del estado, es decir, de los datos miembro, de un objeto de manera que sólo se puede cambiar mediante las operaciones definidas para ese objeto. Cada objeto está aislado del exterior, es un módulo natural, y la aplicación entera se reduce a un agregado o rompecabezas de objetos. El aislamiento protege a los datos asociados a un objeto contra su modificación por quien no tenga derecho a acceder a ellos, eliminando efectos secundarios e interacciones. De esta forma el usuario de la clase puede obviar la implementación de los métodos y propiedades para concentrarse sólo en cómo usarlos. Por otro lado se evita que el usuario pueda cambiar su estado de maneras imprevistas e incontroladas. Modularidad La modularidad es la capacidad que tiene un sistema de ser estudiado, visto o entendido como la unión de varias partes que interactúan entre sí y que trabajan para alcanzar un objetivo común, realizando cada una de ellas una tarea necesaria para la consecución de dicho objetivo. Cada una de esas partes en que se encuentre dividido el sistema recibe el nombre de módulo. Idealmente un módulo debe poder cumplir las condiciones de caja negra, es decir, ser independiente del resto de los módulos y comunicarse con ellos (con todos o sólo con una parte) a través de unas entradas y salidas bien definidas. Jerarquía y Herencia La Jerarquía es una propiedad que permite la ordenación de las abstracciones. Las dos jerarquías más importantes de un sistema complejo son: estructura de clases (jerarquía “es-un” (is-a): generalización/especialización) y estructura de objetos (jerarquía “parte-de” (part-of): agregación). Las jerarquías de generalización/especialización se conocen como herencia. Básicamente, la herencia define una relación entre clases, en donde una clase comparte la estructura o comportamiento definido en una o más clases (herencia simple y herencia múltiple, respectivamente). La agregación es el concepto que permite el agrupamiento físico de estructuras
  • 2. relacionadas lógicamente. Así, un camión se compone de ruedas, motor, sistema de transmisión y chasis; en consecuencia, camión es una agregación, y ruedas, motor, transmisión y chasis son agregados de camión. Polimorfismo La quinta propiedad significativa de los lenguajes de programación orientados a objetos es el polimorfismo. Es la propiedad que indica, literalmente, la posibilidad de que una entidad tome muchas formas. En términos prácticos, el polimorfismo permite referirse a objetos de clases diferentes mediante el mismo elemento de programa y realizar la misma operación de diferentes formas, según sea el objeto que se referencia en ese momento. 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 cabra o una vaca 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 diferentes mamíferos para realizar la misma función (comer). El polimorfismo adquiere su máxima expresión en la derivación o extensión de clases, es decir, cuando se obtiene una clase a partir de una clase ya existente, mediante la propiedad de derivación de clases o herencia. El polimorfismo requiere ligadura tardía o postergada (también llamada dinámica), y esto sólo se puede producir en lenguajes de programación orientados a objetos. Los lenguajes no orientados a objetos soportan ligadura temprana o anterior (también llamada estática), esto significa que el compilador genera una llamada a un nombre específico de función y el enlazador (linker) resuelve la llamada a la dirección absoluta del código que se ha de ejecutar. En POO, el programa no puede determinar la dirección del código hasta el momento de la ejecución. Cuando se envía un mensaje a un objeto, el código que se llama no se determina hasta el momento de la ejecución. El compilador asegura que la función existe y realiza verificación de tipos de los argumentos y del valor de retorno, pero no conoce el código exacto a ejecutar.