![Page 1: Desarrollo de Aplicaciones Web II - Sesión 04 - Programación Orientada a Objetos](https://reader033.vdocumento.com/reader033/viewer/2022060115/557ae370d8b42a8f648b5376/html5/thumbnails/1.jpg)
Didier Fabián Granados Muñoz
Sesión No. 4 – Programación Orientada a Objetos
Agosto 26 de 2008
![Page 2: Desarrollo de Aplicaciones Web II - Sesión 04 - Programación Orientada a Objetos](https://reader033.vdocumento.com/reader033/viewer/2022060115/557ae370d8b42a8f648b5376/html5/thumbnails/2.jpg)
Se originan y apoyan a partir de modelos de programación ó
desarrollos tecnológicos.
Se soportan en mayor o menor grado en los principios de
ingeniería.
Las necesidades del negocio contribuyen a su fortalecimiento.
Generalmente son evolucionistas: apropian las fortalezas de
enfoques anteriores.
![Page 3: Desarrollo de Aplicaciones Web II - Sesión 04 - Programación Orientada a Objetos](https://reader033.vdocumento.com/reader033/viewer/2022060115/557ae370d8b42a8f648b5376/html5/thumbnails/3.jpg)
Análisis y diseño estructurado como
evolución de la programación
estructurada (Orientada a procesos /
Orientada a datos)
Modularidad alrededor de la
funcionalidad
Análisis y diseño orientado a objetos
como evolución de la programación
orientada a objetos
Modularidad alrededor de las entidades
relevantes del problema
Énfasis en reutilización (herencia)
Énfasis en cohesión y acoplamiento
![Page 4: Desarrollo de Aplicaciones Web II - Sesión 04 - Programación Orientada a Objetos](https://reader033.vdocumento.com/reader033/viewer/2022060115/557ae370d8b42a8f648b5376/html5/thumbnails/4.jpg)
Procedimientos
Datos
![Page 5: Desarrollo de Aplicaciones Web II - Sesión 04 - Programación Orientada a Objetos](https://reader033.vdocumento.com/reader033/viewer/2022060115/557ae370d8b42a8f648b5376/html5/thumbnails/5.jpg)
“Universo de objetos responsables que
se comunican por medio de mensajes para
cumplir unos objetivos”
![Page 6: Desarrollo de Aplicaciones Web II - Sesión 04 - Programación Orientada a Objetos](https://reader033.vdocumento.com/reader033/viewer/2022060115/557ae370d8b42a8f648b5376/html5/thumbnails/6.jpg)
IHacerReserva
ITomarReserva
<<comp_espec>>
SistemaReservas
<<comp_espec>>
SistemaFacturacionIFacturacion
<<comp_espec>>
ClienteAdm
IClienteAdm
<<comp_espec>>
HotelAdm
IHotelAdm
• Se hace énfasis en separación de la interfaz (contrato) de la implementación.
• Los servicios provistos por el contenedor (middleware) facilitan la
instanciación de los objetos concretos encargados de prestar los servicios
Contenedor
Desarrollo basado en
componentes CBSE
(Component Based
Software Engineering)
![Page 7: Desarrollo de Aplicaciones Web II - Sesión 04 - Programación Orientada a Objetos](https://reader033.vdocumento.com/reader033/viewer/2022060115/557ae370d8b42a8f648b5376/html5/thumbnails/7.jpg)
Desarrollo Orientado a
Servicios (SODA)
Cluster de
Servidores de
Aplicaciones
Aplicaciones
Legadas
Servidor de
Procesos
(BPM)
Base de
Datos
Sistema
Batch
Portal de
Servicios Integrados
Énfasis en definición de funcionalidades de granularidad
gruesa, denominadas servicios, que interactúa con
aplicaciones y otros servicios a través de modelos de
comunicación basado en mensajes débilmente acoplados.
![Page 8: Desarrollo de Aplicaciones Web II - Sesión 04 - Programación Orientada a Objetos](https://reader033.vdocumento.com/reader033/viewer/2022060115/557ae370d8b42a8f648b5376/html5/thumbnails/8.jpg)
Desarrollo orientado a aspectosAproximación que permite analizar los asuntos de interés de un sistema (concerns) y detectar la funcionalidad transversal (crosscutting concerns) en más de un punto del sistema.
![Page 9: Desarrollo de Aplicaciones Web II - Sesión 04 - Programación Orientada a Objetos](https://reader033.vdocumento.com/reader033/viewer/2022060115/557ae370d8b42a8f648b5376/html5/thumbnails/9.jpg)
![Page 10: Desarrollo de Aplicaciones Web II - Sesión 04 - Programación Orientada a Objetos](https://reader033.vdocumento.com/reader033/viewer/2022060115/557ae370d8b42a8f648b5376/html5/thumbnails/10.jpg)
![Page 11: Desarrollo de Aplicaciones Web II - Sesión 04 - Programación Orientada a Objetos](https://reader033.vdocumento.com/reader033/viewer/2022060115/557ae370d8b42a8f648b5376/html5/thumbnails/11.jpg)
Bueno… y qué es un paradigma?
Un paradigma es un conjunto de teorías generales,
suposiciones, leyes o técnicas de que se vale una escuela de
análisis o comunidad científica para evaluar todas las cosas.
![Page 12: Desarrollo de Aplicaciones Web II - Sesión 04 - Programación Orientada a Objetos](https://reader033.vdocumento.com/reader033/viewer/2022060115/557ae370d8b42a8f648b5376/html5/thumbnails/12.jpg)
“Un paradigma es un conjunto de
creencias compartidas o de sabiduría
convencional acerca de las cosas”.
Thomas Kuhn.
![Page 13: Desarrollo de Aplicaciones Web II - Sesión 04 - Programación Orientada a Objetos](https://reader033.vdocumento.com/reader033/viewer/2022060115/557ae370d8b42a8f648b5376/html5/thumbnails/13.jpg)
Bueno… y entonces…
![Page 14: Desarrollo de Aplicaciones Web II - Sesión 04 - Programación Orientada a Objetos](https://reader033.vdocumento.com/reader033/viewer/2022060115/557ae370d8b42a8f648b5376/html5/thumbnails/14.jpg)
Es un paradigma de la programación
de computadores.
Hace referencia al conjunto de
teorías, estándares, modelos y
métodos que permiten organizar el
conocimiento.
Proporciona un medio bien definido
para visualizar el dominio del
problema.
Implementa en un lenguaje de
programación la solución a ese
problema.
![Page 15: Desarrollo de Aplicaciones Web II - Sesión 04 - Programación Orientada a Objetos](https://reader033.vdocumento.com/reader033/viewer/2022060115/557ae370d8b42a8f648b5376/html5/thumbnails/15.jpg)
En otras palabras…
La Programación Orientada a Objetos es intentar llevar a un
programa de computador una visión de un problema que sea
lo más cercana posible a la realidad, de acuerdo al ámbito en el
que se desarrolla el mismo.
![Page 16: Desarrollo de Aplicaciones Web II - Sesión 04 - Programación Orientada a Objetos](https://reader033.vdocumento.com/reader033/viewer/2022060115/557ae370d8b42a8f648b5376/html5/thumbnails/16.jpg)
Programación Estructurada
Conocida como programación
tipo “spaguetti”.
El código spaguetti es un término
peyorativo para los programas de
computación que tienen una
estructura de control de flujo
compleja e incomprensible.
Se deriva del hecho que este tipo
de código parece asemejarse a un
plato de spaguettis, es decir, un
montón de hilos intrincados y
anudados.
![Page 17: Desarrollo de Aplicaciones Web II - Sesión 04 - Programación Orientada a Objetos](https://reader033.vdocumento.com/reader033/viewer/2022060115/557ae370d8b42a8f648b5376/html5/thumbnails/17.jpg)
Programación Estructurada
El elemento básico es la función.
Presta atención al conjunto de
acciones que manipulan el flujo de
datos (desde la situación inicial a la
final)
Programación Orientada a Objetos
El elemento básico es el objeto.
Presta atención a la interrelación que
existe entre los datos y las acciones a
realizar con ellos.
![Page 18: Desarrollo de Aplicaciones Web II - Sesión 04 - Programación Orientada a Objetos](https://reader033.vdocumento.com/reader033/viewer/2022060115/557ae370d8b42a8f648b5376/html5/thumbnails/18.jpg)
El mundo está lleno de objetos reales, los
cuales se pueden representar como tales
en una solución computarizada.
![Page 19: Desarrollo de Aplicaciones Web II - Sesión 04 - Programación Orientada a Objetos](https://reader033.vdocumento.com/reader033/viewer/2022060115/557ae370d8b42a8f648b5376/html5/thumbnails/19.jpg)
Por ejemplo… un automóvil¿Qué características puede tener?
Color
Marca
Clase
Línea
Modelo
Placa
Carrocería
Cilindraje
![Page 20: Desarrollo de Aplicaciones Web II - Sesión 04 - Programación Orientada a Objetos](https://reader033.vdocumento.com/reader033/viewer/2022060115/557ae370d8b42a8f648b5376/html5/thumbnails/20.jpg)
Y… ¿qué tal algo más familiar?Un computador tiene, entre otras cosas:
Marca
Disco duro
Procesador
Memoria
Teclado
Mouse
Monitor
Parlantes
![Page 21: Desarrollo de Aplicaciones Web II - Sesión 04 - Programación Orientada a Objetos](https://reader033.vdocumento.com/reader033/viewer/2022060115/557ae370d8b42a8f648b5376/html5/thumbnails/21.jpg)
O ustedes mismos…Un estudiante tiene muchas características,
entre ellas:
Nombre
Apellidos
Edad
Teléfono
Dirección
Carrera
…
![Page 22: Desarrollo de Aplicaciones Web II - Sesión 04 - Programación Orientada a Objetos](https://reader033.vdocumento.com/reader033/viewer/2022060115/557ae370d8b42a8f648b5376/html5/thumbnails/22.jpg)
Los objetos enunciados anteriormente no solo tienen
sus características. También tienen la capacidad de
ejecutar diferentes acciones.
![Page 23: Desarrollo de Aplicaciones Web II - Sesión 04 - Programación Orientada a Objetos](https://reader033.vdocumento.com/reader033/viewer/2022060115/557ae370d8b42a8f648b5376/html5/thumbnails/23.jpg)
Un automóvil puede…
Correr
Hacer ruido
Encender las luces
Bajar vidrios
Limpiar su parabrisas
Frenar
Pitar
Estacionarse
![Page 24: Desarrollo de Aplicaciones Web II - Sesión 04 - Programación Orientada a Objetos](https://reader033.vdocumento.com/reader033/viewer/2022060115/557ae370d8b42a8f648b5376/html5/thumbnails/24.jpg)
Por un computador se puede…
Iniciar su sistema operativo
Mostrar los archivos
Ejecutar programas
Navegar por internet
Colocar música
Escribir documentos
Ver fotografías
Chatear...
![Page 25: Desarrollo de Aplicaciones Web II - Sesión 04 - Programación Orientada a Objetos](https://reader033.vdocumento.com/reader033/viewer/2022060115/557ae370d8b42a8f648b5376/html5/thumbnails/25.jpg)
Un estudiante puede…
Hablar
Leer
Escribir
Hacer preguntas
Desplazarse
Ver
Escuchar
…
![Page 26: Desarrollo de Aplicaciones Web II - Sesión 04 - Programación Orientada a Objetos](https://reader033.vdocumento.com/reader033/viewer/2022060115/557ae370d8b42a8f648b5376/html5/thumbnails/26.jpg)
La POO brinda a través de sus herramientas, la
facilidad de concebir, analizar, modelar, diseñar e
implementar el mundo real de manera fiel a como se
presenta en la realidad.
La POO trata de amoldarse al modo de pensar del
hombre y no al de la máquina.
Cada forma de pensar y ver el mundo es diferente,
sin embargo no se trata de programar orientado a
objetos, se trata de programar bien aprovechando
las ventajas de POO.
![Page 27: Desarrollo de Aplicaciones Web II - Sesión 04 - Programación Orientada a Objetos](https://reader033.vdocumento.com/reader033/viewer/2022060115/557ae370d8b42a8f648b5376/html5/thumbnails/27.jpg)
![Page 28: Desarrollo de Aplicaciones Web II - Sesión 04 - Programación Orientada a Objetos](https://reader033.vdocumento.com/reader033/viewer/2022060115/557ae370d8b42a8f648b5376/html5/thumbnails/28.jpg)
Clase Objeto
![Page 29: Desarrollo de Aplicaciones Web II - Sesión 04 - Programación Orientada a Objetos](https://reader033.vdocumento.com/reader033/viewer/2022060115/557ae370d8b42a8f648b5376/html5/thumbnails/29.jpg)
“Una clase representa a
un conjunto de objetos
que comparten estructura
y comportamiento
común” [Booch].
Es el molde o plantilla
con el que se puede
construir objetos. En
otras palabras, son
abstracciones de objetos.
![Page 30: Desarrollo de Aplicaciones Web II - Sesión 04 - Programación Orientada a Objetos](https://reader033.vdocumento.com/reader033/viewer/2022060115/557ae370d8b42a8f648b5376/html5/thumbnails/30.jpg)
Un objeto es cualquier cosa. Y es
en serio! Un objeto es cualquier
cosa de la cual podamos emitir
un concepto, o descripción.
En términos formales de la POO,
un objeto es una instancia de
una clase, llamando instanciar al
hecho de producir y completar un
objeto llenando con valores sus
atributos.
![Page 31: Desarrollo de Aplicaciones Web II - Sesión 04 - Programación Orientada a Objetos](https://reader033.vdocumento.com/reader033/viewer/2022060115/557ae370d8b42a8f648b5376/html5/thumbnails/31.jpg)
![Page 32: Desarrollo de Aplicaciones Web II - Sesión 04 - Programación Orientada a Objetos](https://reader033.vdocumento.com/reader033/viewer/2022060115/557ae370d8b42a8f648b5376/html5/thumbnails/32.jpg)
Características o atributos
Son los campos o propiedades de una
clase.
Ayudan a definir su estructura y permite
diferenciarlo de otros objetos.
Se define con un identificador y un tipo,
el cual indica los valores que puede
almacenar.
El conjunto de valores de los campos
definen el estado del objeto.
![Page 33: Desarrollo de Aplicaciones Web II - Sesión 04 - Programación Orientada a Objetos](https://reader033.vdocumento.com/reader033/viewer/2022060115/557ae370d8b42a8f648b5376/html5/thumbnails/33.jpg)
Acciones o Comportamientos
Servicios, Métodos, Funciones o
Procedimientos.
Estos son los servicios que provee
una clase, la forma en que es posible
comunicarse con un objeto.
Son la implementación algoritmos que representa una
operación o función que un objeto realiza.
El conjunto de los métodos de un objeto determinan su
comportamiento.
![Page 34: Desarrollo de Aplicaciones Web II - Sesión 04 - Programación Orientada a Objetos](https://reader033.vdocumento.com/reader033/viewer/2022060115/557ae370d8b42a8f648b5376/html5/thumbnails/34.jpg)
Atributos
Color
Marca
Clase
Línea
Modelo
Placa
Carrocería
Cilindraje
No. de Puertas
Clase: Automóvil
Acciones
Correr
Hacer ruido
Encender las luces
Bajar vidrios
Limpiar su
parabrisas
Frenar
Pitar
Estacionarse
Automóvil
![Page 35: Desarrollo de Aplicaciones Web II - Sesión 04 - Programación Orientada a Objetos](https://reader033.vdocumento.com/reader033/viewer/2022060115/557ae370d8b42a8f648b5376/html5/thumbnails/35.jpg)
Automóvil
Mazda 3 Chevrolet Aveo Renault Twingo
Esta es la clase
Y estos son objetos o instancias de la clase Automóvil:
![Page 36: Desarrollo de Aplicaciones Web II - Sesión 04 - Programación Orientada a Objetos](https://reader033.vdocumento.com/reader033/viewer/2022060115/557ae370d8b42a8f648b5376/html5/thumbnails/36.jpg)
Instanciación
Es la acción de construir un objeto de una clase.
¿Cómo se hace en POO?
Generalmente se utiliza la palabra clave “new”.
Clase instancia = new Clase();
Esto no necesariamente aplica para todas las clases, pues hay tipos que
no se dejan instanciar… pero eso se verá luego.
![Page 37: Desarrollo de Aplicaciones Web II - Sesión 04 - Programación Orientada a Objetos](https://reader033.vdocumento.com/reader033/viewer/2022060115/557ae370d8b42a8f648b5376/html5/thumbnails/37.jpg)
Automovil
Automovil Mazda3 = new Automovil()
![Page 38: Desarrollo de Aplicaciones Web II - Sesión 04 - Programación Orientada a Objetos](https://reader033.vdocumento.com/reader033/viewer/2022060115/557ae370d8b42a8f648b5376/html5/thumbnails/38.jpg)
Atributos
Rojo
Chevrolet
Particular
Aveo GTI
2009
MON377
Hatchback
1600
3 puertas
Estado del Objeto: Chevrolet Aveo
Acciones
Correr
Hacer ruido
Encender las luces
Bajar vidrios
Limpiar su
parabrisas
Frenar
Pitar
Estacionarse
Chevrolet Aveo
![Page 39: Desarrollo de Aplicaciones Web II - Sesión 04 - Programación Orientada a Objetos](https://reader033.vdocumento.com/reader033/viewer/2022060115/557ae370d8b42a8f648b5376/html5/thumbnails/39.jpg)
Atributos
Gris
Renault
Particular
Twingo U
2007
FGW924
Hatchback
1600
3 puertas
Estado del Objeto: Renault Twingo
Acciones
Correr
Hacer ruido
Encender las luces
Bajar vidrios
Limpiar su
parabrisas
Frenar
Pitar
Estacionarse
Renault Twingo
![Page 40: Desarrollo de Aplicaciones Web II - Sesión 04 - Programación Orientada a Objetos](https://reader033.vdocumento.com/reader033/viewer/2022060115/557ae370d8b42a8f648b5376/html5/thumbnails/40.jpg)
![Page 41: Desarrollo de Aplicaciones Web II - Sesión 04 - Programación Orientada a Objetos](https://reader033.vdocumento.com/reader033/viewer/2022060115/557ae370d8b42a8f648b5376/html5/thumbnails/41.jpg)
Encapsulamiento [1]
Consiste en ocultar los detalles de
la implementación de un objeto,
a la vez que se provee una
interfaz pública por medio de sus
métodos permitidos.
También se define como la
propiedad de los objetos de
permitir acceso a su estado
solamente a través de su interfaz
o de relaciones preestablecidas
con otros objetos.
![Page 42: Desarrollo de Aplicaciones Web II - Sesión 04 - Programación Orientada a Objetos](https://reader033.vdocumento.com/reader033/viewer/2022060115/557ae370d8b42a8f648b5376/html5/thumbnails/42.jpg)
Encapsulamiento [2]
Tipos de encapsulamiento.
Privado: Atributo o método con
el acceso privado solo puede ser
modificado por medio de los
métodos del mismo objeto que
lo contiene. De esta manera si
tenemos un atributo y queremos
cambiar su valor con un método
de otro objeto nos dará error de
acceso.Lo que está dentro de
la casa es privado
![Page 43: Desarrollo de Aplicaciones Web II - Sesión 04 - Programación Orientada a Objetos](https://reader033.vdocumento.com/reader033/viewer/2022060115/557ae370d8b42a8f648b5376/html5/thumbnails/43.jpg)
Encapsulamiento [3]
Tipos de encapsulamiento.
Público: Un método o atributo
publico puede ser accedido y
usado desde cualquier objeto, sin
restricciones, desde cualquier
parte del programa.
Puertas, ventanas, techo…
los ve todo el mundo
![Page 44: Desarrollo de Aplicaciones Web II - Sesión 04 - Programación Orientada a Objetos](https://reader033.vdocumento.com/reader033/viewer/2022060115/557ae370d8b42a8f648b5376/html5/thumbnails/44.jpg)
Encapsulamiento [4]
Tipos de encapsulamiento.
Protegido: Un atributo o
método protegido es accesible
por el objeto en sí y por sus
clases derivadas, las que heredan
de el.
El concepto de herencia se verá a
continuación…
Los vidrios de las ventanas
están protegidos por rejas
![Page 45: Desarrollo de Aplicaciones Web II - Sesión 04 - Programación Orientada a Objetos](https://reader033.vdocumento.com/reader033/viewer/2022060115/557ae370d8b42a8f648b5376/html5/thumbnails/45.jpg)
Herencia [1]
Es uno de los mecanismos de la
programación orientada a objetos,
por medio del cual una clase se deriva
de otra, compartiendo los atributos y
métodos de la primera.
La clase desde la cual se hace la
derivación se llama superclase o
clase padre, de manera que extiende
su funcionalidad.
La clase derivada se llama clase hija
o subclase.
![Page 46: Desarrollo de Aplicaciones Web II - Sesión 04 - Programación Orientada a Objetos](https://reader033.vdocumento.com/reader033/viewer/2022060115/557ae370d8b42a8f648b5376/html5/thumbnails/46.jpg)
Herencia [2]
Un ejemplo sencillo…
Automóvil
Barco
Medios de Transporte
AvionetaMotocicleta
![Page 47: Desarrollo de Aplicaciones Web II - Sesión 04 - Programación Orientada a Objetos](https://reader033.vdocumento.com/reader033/viewer/2022060115/557ae370d8b42a8f648b5376/html5/thumbnails/47.jpg)
Herencia [3]
O algo más complejo…
Mamíferos Aves
Reptiles
Animales
![Page 48: Desarrollo de Aplicaciones Web II - Sesión 04 - Programación Orientada a Objetos](https://reader033.vdocumento.com/reader033/viewer/2022060115/557ae370d8b42a8f648b5376/html5/thumbnails/48.jpg)
Polimorfismo
Una misma operación puede
realizarse de formas distintas en
clases distintas. La semántica es
común pero la implementación varía
en cada clase.
Así como la herencia está relacionada
con las clases y su jerarquía, el
polimorfismo se relaciona con los
métodos.
![Page 49: Desarrollo de Aplicaciones Web II - Sesión 04 - Programación Orientada a Objetos](https://reader033.vdocumento.com/reader033/viewer/2022060115/557ae370d8b42a8f648b5376/html5/thumbnails/49.jpg)
Sobrecarga de métodos
Es la capacidad que posee una clase
de tener varios métodos con el
mismo nombre y con igual retorno,
pero que se diferencian en sus
argumentos.
De esta manera el objeto al que se
envía el mensaje sabe que método es
el que debe de ejecutar.
Pueden comportarse de forma
distinta según la naturaleza de estos
argumentos. cambiarColor(rojo, gris)
cambiarColor(negro)
![Page 50: Desarrollo de Aplicaciones Web II - Sesión 04 - Programación Orientada a Objetos](https://reader033.vdocumento.com/reader033/viewer/2022060115/557ae370d8b42a8f648b5376/html5/thumbnails/50.jpg)
Tipificación
Es la aplicación de las características de la clase al objeto, de tal
manera que los objetos de distintos tipos no pueden
intercambiarse, o sólo se pueden intercambiar en forma
restringida.
Existen diferentes formas de tipificación:
Tipificación estática: se hace en tiempo de compilación.
Tipificación fuerte:
Asociación dinámica: se hace en tiempo de ejecución.
![Page 51: Desarrollo de Aplicaciones Web II - Sesión 04 - Programación Orientada a Objetos](https://reader033.vdocumento.com/reader033/viewer/2022060115/557ae370d8b42a8f648b5376/html5/thumbnails/51.jpg)
Concurrencia
Es la propiedad que distingue a un objeto activo de otro que no
está activo. Se puede considerar el activar al mismo tempo a
varios objetos realizando diferentes tareas para un mismo
proceso.
Persistencia
Es la propiedad que tiene un objeto de trascender en el tiempo,
ya que continúa existiendo después de que su creador deja de
existir, o en el espacio, donde el objeto sigue existiendo aún y
cuando no exista el espacio donde fue creado.
![Page 52: Desarrollo de Aplicaciones Web II - Sesión 04 - Programación Orientada a Objetos](https://reader033.vdocumento.com/reader033/viewer/2022060115/557ae370d8b42a8f648b5376/html5/thumbnails/52.jpg)
class Domain Objects
Automóv il
Motor
Renault
Mazda
Chev rolet
![Page 53: Desarrollo de Aplicaciones Web II - Sesión 04 - Programación Orientada a Objetos](https://reader033.vdocumento.com/reader033/viewer/2022060115/557ae370d8b42a8f648b5376/html5/thumbnails/53.jpg)
En UML, una clase está representada por un rectángulo con tres
secciones.
La primera sección
corresponde al nombre de la
clase.
En la segunda sección se
ubican los atributos de la
clase.
Y en la tercera sección se
ubican los métodos de la
clase.
![Page 54: Desarrollo de Aplicaciones Web II - Sesión 04 - Programación Orientada a Objetos](https://reader033.vdocumento.com/reader033/viewer/2022060115/557ae370d8b42a8f648b5376/html5/thumbnails/54.jpg)
Los atributos se ingresan en la primera sección.
Deben ir acompañados de sus correspondientes tipos de datos y
encapsulamiento.
• Nótese el orden de
aparición:
Primero aparece el tipo
de encapsulamiento:
+ Público
- Privado
# Protegido
Luego, el nombre del
atributo, seguido de
dos puntos.
Y por último, el tipo del
atributo.
![Page 55: Desarrollo de Aplicaciones Web II - Sesión 04 - Programación Orientada a Objetos](https://reader033.vdocumento.com/reader033/viewer/2022060115/557ae370d8b42a8f648b5376/html5/thumbnails/55.jpg)
Los atributos se ingresan en la segunda sección.
Se representan de la misma manera que los atributos, aunque con
características adicionales..
Primero aparece el tipo de
encapsulamiento:
+ Público
- Privado
# Protegido
Luego, el nombre del
método, seguido de los
tipos de sus parámetros
correspondientes en
paréntesis.
Y por último, el tipo del
atributo, después de los dos
puntos.
![Page 56: Desarrollo de Aplicaciones Web II - Sesión 04 - Programación Orientada a Objetos](https://reader033.vdocumento.com/reader033/viewer/2022060115/557ae370d8b42a8f648b5376/html5/thumbnails/56.jpg)
Las subclases deben tener una línea terminada en una flecha grande que
apunta hacia la clase padre.
class System
Chev rolet
Automóv il
Mazda Renault
![Page 57: Desarrollo de Aplicaciones Web II - Sesión 04 - Programación Orientada a Objetos](https://reader033.vdocumento.com/reader033/viewer/2022060115/557ae370d8b42a8f648b5376/html5/thumbnails/57.jpg)
Las subclases solo deben representar sus elementos propios, ya que, por la
representación UML, se entiende que contiene los elementos de la clase
padre.
Un taxi es un automóvil con número de operación y que trabaja para una empresa.
![Page 58: Desarrollo de Aplicaciones Web II - Sesión 04 - Programación Orientada a Objetos](https://reader033.vdocumento.com/reader033/viewer/2022060115/557ae370d8b42a8f648b5376/html5/thumbnails/58.jpg)
Es la manera como se relacionan dos o
más clases.
Un objeto conoce otro (tiene una
referencia).
Un objeto puede solicitar una operación
en otro objeto pero no es responsable
de él.
La relación de asociación es más débil
que la de agregación…. Y qué es la
agregación?
Un automóvil sabe qué es un motor, pero este
posee igualmente sus especificaciones.
![Page 59: Desarrollo de Aplicaciones Web II - Sesión 04 - Programación Orientada a Objetos](https://reader033.vdocumento.com/reader033/viewer/2022060115/557ae370d8b42a8f648b5376/html5/thumbnails/59.jpg)
Un objeto es propietario o responsable
de otro objeto.
La relación empleada aquí es la
siguiente: "es parte de".
Implica que ambos objetos tienen el
mismo tiempo de vida.
En UML se representa con un rombo
vacío, el cual se coloca en el extremo
contrario a la clase que es parte de la
otra.
Efectivamente, un motor es parte de un automóvil!
![Page 60: Desarrollo de Aplicaciones Web II - Sesión 04 - Programación Orientada a Objetos](https://reader033.vdocumento.com/reader033/viewer/2022060115/557ae370d8b42a8f648b5376/html5/thumbnails/60.jpg)
Es dinámica, en tiempo de ejecución.
Los objetos adquieren referencias de
otros objetos.
Los objetos tienen que respetar las
interfaces de los otros objetos.
Exige un diseño cuidadoso de las interfaces.
Hay menos dependencias de
implementación.
Habrá más objetos en el sistema y por
tanto el comportamiento del sistema
dependerá de las interacciones entre
objetos en vez de estar definido en una
clase.
En UML se representa de manera similar
a la agregación, pero con el rombo
lleno.
Efectivamente, un automóvil está compuesto, entre otras
cosas, de un motor.
![Page 61: Desarrollo de Aplicaciones Web II - Sesión 04 - Programación Orientada a Objetos](https://reader033.vdocumento.com/reader033/viewer/2022060115/557ae370d8b42a8f648b5376/html5/thumbnails/61.jpg)
Hubo varios conceptos de los que no se habló en clase, pero
es bueno que lo consulten, ya que son importantes en las
relaciones entre clases:
Genericidad.
Excepciones.
Interfaces.
Clases abstractas.
![Page 62: Desarrollo de Aplicaciones Web II - Sesión 04 - Programación Orientada a Objetos](https://reader033.vdocumento.com/reader033/viewer/2022060115/557ae370d8b42a8f648b5376/html5/thumbnails/62.jpg)
![Page 63: Desarrollo de Aplicaciones Web II - Sesión 04 - Programación Orientada a Objetos](https://reader033.vdocumento.com/reader033/viewer/2022060115/557ae370d8b42a8f648b5376/html5/thumbnails/63.jpg)