0% encontró este documento útil (0 votos)
63 vistas34 páginas

Introducción a la POO: Conceptos Clave

Este documento presenta los conceptos fundamentales de la programación orientada a objetos. Explica que en este paradigma, un sistema se concibe como un conjunto de objetos que se comunican entre sí mediante mensajes. Define conceptos clave como clases, objetos, atributos, métodos, encapsulación, herencia y polimorfismo. Finalmente, destaca los beneficios de utilizar este paradigma, como la reutilización de código y la facilidad para modelar sistemas complejos.

Cargado por

Carlos Sosa
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
63 vistas34 páginas

Introducción a la POO: Conceptos Clave

Este documento presenta los conceptos fundamentales de la programación orientada a objetos. Explica que en este paradigma, un sistema se concibe como un conjunto de objetos que se comunican entre sí mediante mensajes. Define conceptos clave como clases, objetos, atributos, métodos, encapsulación, herencia y polimorfismo. Finalmente, destaca los beneficios de utilizar este paradigma, como la reutilización de código y la facilidad para modelar sistemas complejos.

Cargado por

Carlos Sosa
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

Paradigmas de

Programación
UNIVERSIDAD POLITÉCNICA DE TULANCINGO

INGENIERÍA EN SISTEMAS

ANÁLISIS Y DISEÑO ORIENTADO A OBJETOS


DRA. ELIZABETH CORTÉS PALMA
Análisis y Diseño Orientado
a Objetos

Conceptos Generales
Teoría y Práctica
Objetivos

 Conocer los conceptos fundamentales de la


teoría de orientación a objetos.
 Diferenciar los distintos conceptos utilizados en
la programación orientada a objetos (POO).
 Entender el paradigma de POO. Su aplicación
en distintos tipos de problemas.
 Analizar como la orientación a objetos
contribuye en los diferentes niveles de
reutilización.
 Aplicar los conceptos de orientación a objetos
para el diseño y programación de sistemas.
Conceptos Generales

 Objetos y clases
 Atributos
 Mensajes y métodos
 Encapsulación y ocultamiento
 Interfaces
 Herencia de clases
 Polimorfismo
 Vinculación dinámica
 Composición de objetos
Por qué la orientación a
objetos

 La técnica orientada a objetos sigue con


frecuencia el mismo método que
aplicamos en la resolución de problemas
de la vida diaria.
 El análisis y diseño orientado a objetos
modela el mundo en términos de objetos
que tienen estado y comportamiento, y
eventos que activan operaciones que
modifican el estado de esos objetos. Los
objetos interactúan de manera formal con
otros objetos mediante mensajes.
Algunos beneficios de la
orientación a objetos
 Integridad. Los mecanismos de encapsulación
protegen sus propios componentes contra los
procesos que no tengan derecho a acceder a
ellos.
 Reutilización. Permite la reusabilidad de código
y la herencia ahorrando dinero y empleando
menos tiempo de desarrollo.

 La forma de pensar en objetos es más natural. El


diseñador piensa en términos de objetos y no
en detalles de bajo nivel.
 Programación más sencilla. Los programas se
crean a partir de piezas pequeñas.
Otros beneficios de la tecnología OO
 Los métodos de los objetos pueden ser polimórficos,
es decir, tienen la habilidad de enviar un mismo
mensaje a objetos de clases diferentes, se
“comportan” de distintas maneras.
 Es más sencillo modificar código existente, cada
clase efectúa sus funciones independientemente
de las demás.
 Se construyen clases cada vez más complejas a
partir de otras más sencillas ya existentes.
 Confiabilidad. Generalmente las clases ya están
probadas.
 Estabilidad de los modelos respecto a entidades del
mundo real.
Motivos que han conducido al
éxito la tecnología de objetos
 Avances en arquitectura de
computadores
 Avances en lenguajes de programación
Ingeniería del software (modularidad,
encapsulado de la información, proceso
de desarrollo incremental)
 Los límites de la capacidad de gestionar
la complejidad de los sistemas
simplemente con técnicas de
descomposición algorítmica
Qué es la Programación
Orientada a Objetos
 Organización de los programas de manera que representan la
interacción de las cosas en el mundo real.
 Un programa consta de un conjunto de objetos.
 Los objetos son abstracciones de cosas del mundo real.
 Nos interesa qué se puede hacer con los objetos más que cómo
se hace.
 Cada objeto es responsable de unas tareas.
 Los objetos interactúan entre sí por medio de mensajes.
 Cada objeto es un ejemplar de una clase.
 Las clases se pueden organizar en una jerarquía de herencia.
La programación OO es una simulación de un modelo del universo.
Una manera de ver el mundo
Paradigma orientado a objetos

En el paradigma de la orientación a objeto, un


sistema se concibe como un conjunto de objetos
que se comunican entre si mediante mensajes.

Objetos + Mensajes = Programa.

Mediante este modelo se construyen más


fácilmente sistemas complejos a partir de
componentes individuales.
¿Qué es un Objeto?

 Las personas tenemos una idea


clara de lo que es un objeto:
conceptos adquiridos que nos
permiten sentir y razonar acerca
de las cosas del mundo. Un objeto
podría ser real o abstracto, por
ejemplo una organización, una
factura, una figura en un
graficador, una pantalla de
usuario, un avión, un vuelo de
avión, una reservación áerea.
Software orientado a objetos

 Dentro del software


orientado a objeto, un
objeto es cualquier cosa,
real o abstracta, acerca
de la cual almacenamos
datos y los métodos que
controlan dichos datos.

 Un objeto puede estar compuesto por otros objetos y estos


a su vez por otros más. Esta estructura nos permite
construir objetos muy complejos.
Programación orientada a objetos

 La programación
orientada a objetos
(POO) encapsula
datos (atributos o
propiedades) y
métodos
(comportamientos o
acciones) en objetos;
de esta manera los
datos y métodos de
un objeto están
intimamente
relacionados entre sí.
Clases y objetos

 Una clase es una descripción generalizada de


un conjunto de objetos similares.
 Es la descripción de un conjunto de objetos que
comparten los mismos atributos, operaciones,
relaciones y semántica.
 Todos los objetos son ejemplares de una clase.
 Un objeto es una instancia o variable de una
clase. Un objeto se distingue de otros miembros
de la clase por sus atributos.
Ejemplo de clases y objetos

 Clase:
Coche

 Objeto: Ferrari
Ejemplo de objeto con sus
métodos y propiedades
 Propiedades o atributos
 Tipo de pantalla
 Espacio de memoria
 Sistema operativo
 Cantidad de datos
 Métodos o
comportamientos
 llamar
 Buscar contacto
 Registrar llamadas
 Descargar app
Superclase: Teléfono  Utilizar Calculadora
Clase: Teléfono Celular  Enviar mensajes
Subclase: Teléfono Celular Digital
Superclases, clases y subclases

 Una clase de alto nivel puede especializarse en clases de bajo


nivel. Es decir, un clase puede tener subclases.
 Por ejemplo, una clase Persona puede tener subclases
Estudiante y Empleado. A su vez, la clase Estudiante puede tener
como subclase a Estudiante de pregrado y Estudiante de
postgrado, mientras que Empleado puede tener como subclase
a Académico y Administrativo.
 Existe de este modo una jerarquía de clases y subclases.
Clases y subclases
Las subclases
Fútbol, Rugby,
PingPong son
Clase
especializaciones principal
de la clase Pelota

Subclases
Métodos

 Los métodos son comportamientos o acciones,


especifican la forma en que se controlan los datos
de un objeto. Los métodos en un objeto sólo hacen
referencia a la estructura de datos de ese objeto,
no deben tener acceso directo a las estructuras de
datos de otros objetos. Para utilizar la estructura de
datos de otro objeto, deben enviar mensajes a
éste.
 Desde el punto de vista de la programación, los
métodos son funciones o procedimientos que
pueden ser llamadas dentro de una clase o por
otras clases.
Mensajes y métodos

En la programación orientada de objetos, la acción se inicia


mediante la transmisión de un mensaje a un agente (un objeto)
responsable de la acción.

El mensaje tiene codificada la petición de una acción y se


acompaña de cualquier información adicional (argumentos)
necesaria para llevar a cabo la petición.

El receptor es el agente al cual se envía el mensaje. Si el receptor


acepta el mensaje, acepta la responsabilidad de llevar a cabo la
acción indicada. En respuesta a un mensaje, el receptor
ejecutará algún método para satisfacer la petición.
Encapsulación

 El encapsulado es el resultado
de ocultar los detalles de
implementación (estado interno)
de un objeto respecto de su
usuario.
 El empaque conjunto de datos
y métodos se llama encapsulación.
 El objeto esconde (protege) sus datos de los demás objetos y
permite el acceso a los datos mediante sus propios métodos. Esto
recibe el nombre de ocultamiento de información y evita la
corrupción de los datos de un objeto.
 Esto facilita el cambio (de implementación), mejora la
modularidad.
Herencia

 La herencia es un mecanismo que permite la


definición de una clase a partir de la definición de
otra ya existente.
 Es la característica clave de los sistemas orientados
a objeto para propiciar la reusabilidad.
 Una subclase puede heredar la estructura de datos
y los métodos, o algunos métodos, de su superclase.
También puede tener métodos y tipos de datos
propios.
Herencia

Una clase puede tener sus propios métodos y


estructura de datos, así como también heredarlos
de su superclase.
Para modelar
las relaciones de herencia

 Dado un conjunto de clases, hay que buscar atributos y


operaciones comunes a dos o más clases y elevar a una clase
más general.
 Indicar que las clases más específicas heredan de la clase más
general a través de una relación de generalización desde
cada clase especializada a su padre.
Polimorfismo

 Polimorfismo se aplica a métodos que adoptan


varias formas de implementación según el tipo de
objeto, pero cumple siempre el mismo objetivo.
 Los métodos son polimórficos si se aplican a objetos
de distintas clases para conseguir el mismo
significado semántico. Por ejemplo, lanzar puede ser
implementado tanto para un objeto Tenis como
para el objeto Béisbol o Fútbol.
 Método área, en una clase Figura, y subclases Cuadrado y
Rectángulo.
Abstracción

 Es el conocimiento que se tiene de


una cosa prescindiendo de las
demás que están con ella.
 La abstracción localiza y oculta los
detalles de un modelo o diseño
para generar y manipular objetos.
 Conocemos un objeto viéndolo,
sabemos qué es sin necesidad de
ver su interior, su implementación o
su forma de construcción.
Tipos de datos abstractos

 De una clase se definen los tipos de dato abstracto (objetos).


 Los tipos de datos abstractos (TDA) permiten describir una
estructura de datos en función a las operaciones que pueden
efectuar, dejando a un lado su implementación.
 Los TDA mezclan estructuras de datos junto a una serie de
operaciones de manipulación. Incluyen una interfaz pública,
que es lo que verá el usuario, y una implementación
(algoritmos de operaciones sobre las estructuras de datos y su
representación en un lenguaje de programación), que el
usuario no tiene necesariamente que conocer para manipular
correctamente los tipos de datos abstractos.
 Los objetos están representados por medio de los TDA y se
caracterizan por el encapsulamiento.
Consejos Prácticos para la
Abstracción

 Identificar los objetos principales.


 Definir propiedades y métodos principales de cada
objeto.
 Clasificar los objetos según sus
semejanzas/diferencias.
 Establecer cómo se relacionan entre sí, cómo se
comunican (eventos)..
Resumen de conceptos
de POO
 Un programa orientado a objetos es un conjunto de clases
que describe el comportamiento de los objetos del sistema
 Los objetos se comunican mediante mensajes
 Cada objeto tiene su propio estado, que consta de otros
objetos
 Cada objeto es un ejemplar de una clase (agrupación de
objetos)
 Todos los objetos que son ejemplares de una misma clase
pueden realizar las mismas acciones
 Las clases están organizadas en una jerarquía de herencia
Polimorfismo
Abstracción Herencia

Estructura de grandes
programas
Conceptos básicos sobre
programación orientada a objetos

Encapsu- Tipos de datos


lación Clases abstractos

son
Instancias de

Objetos

tienen
Propiedades
(atributos) Métodos
Recomendaciones de
estudio

Revisa las investigaciones que realizaste en tu libreta y


discutiste en clase.
Los conceptos que investigaste te permiten reforzar
esta presentación.
Referencias
 Timothy Budd. Introducción a la Programación orientada a
objetos. Wilmington: Addison-Wesley Iberoamericana,
1994.
 Angel Morales y Francisco Segovia. Programación
orientada a objetos, Aplicaciones con Smalltalk. Madrid:
Ed. Paraninfo, 1993.
 H. Deitel y P. Deitel. Cómo programar en JAVA. México:
Prentice Hall, 1998.
 Weiss, Mark Allen. Estructura de datos: compatible con
Java 2 / Mark Allen Weiss. – Madrid : Addison Wesley, 2000.
– 776 p.
 Bertrand Meyer. Construcción de software orientado a
objetos. 2a. ed. Madrid: Prentice Hall, 1998.
 James Martin y James Odell. Análisis y diseño orientado a
objetos. México: Prentice Hall, 1992.
Referencias

 Análisis de la estructura de un objeto


[Link]
 Análisis del comportamiento de un objeto
[Link]
 Conceptos básicos de Objetos
[Link]
 Tutorial de java
[Link]
 Ingeniería de software orientada a objeto
[Link] [Link]
 Programación Orientada a Objetos
[Link]

También podría gustarte