162
2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 1 IMPLEMENTACION DE APLICACIONES INTERNET I Unidad 2: Programación orientada a objeto

2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 1 IMPLEMENTACION DE APLICACIONES INTERNET

Embed Size (px)

Citation preview

Page 1: 2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 1 IMPLEMENTACION DE APLICACIONES INTERNET

2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 1

IMPLEMENTACION DE APLICACIONES INTERNET I

Unidad 2:

Programación orientada a objeto

Page 2: 2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 1 IMPLEMENTACION DE APLICACIONES INTERNET

2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 2

Contenidos

Paradigmas de Programación

Clases y Objetos

Modificadores de Acceso

¿Qué es UML?

Principios de la Orientación a Objetos

Conceptos del Diseño Orientado a Objetos

Page 3: 2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 1 IMPLEMENTACION DE APLICACIONES INTERNET

2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 3

Objetivos

Describir el Paradigma de Orientación a Objetos incluyendo los conceptos relacionados al análisis, diseño y programación.

Mostrar cómo aplicar los conceptos fundamentales de programación orientada a objetos utilizando Microsoft Visual C#.NET.

Page 4: 2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 1 IMPLEMENTACION DE APLICACIONES INTERNET

2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 4

Introducción

Un programa cumple su objetivo utilizando únicamente funciones y ciertas estructuras de control 'enfoque estructurado'

Desarrollado década de los 70’s Impulsado principalmente por Pascal y C

Programas más avanzados y complicados Disparan la búsqueda de un nuevo enfoque,

másRápidoCorrectoEconómico (Reutilización)

Page 5: 2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 1 IMPLEMENTACION DE APLICACIONES INTERNET

2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 5

Introducción (2)

Esta búsqueda concibe Programación Orientada a Objetos (POO) Comienza con lenguajes

SmallTalk Eiffel C++ Logra apogeo con Java

Page 6: 2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 1 IMPLEMENTACION DE APLICACIONES INTERNET

2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 6

Introducción (3) Paradigmas:

Programación imperativa

Programación funcional

Programación lógica

Nuevo Paradigma: Programación orientada a objeto

(POO).

Page 7: 2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 1 IMPLEMENTACION DE APLICACIONES INTERNET

2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 7

Paradigmas de Programación Hay para todos los gustos:

Estructurados (C, Pascal, Basic, etc.) Funcionales (Categorical Abstract Machine

Language - CAML) Declarativos (Prolog) Orientados a Objetos (C#, VB.NET, Smalltalk,

Java) Orientados a Aspectos Híbridos (Lisp, Visual Basic) Incomprensibles....

Cada enfoque tiene sus ventajas y desventajas Cada uno es más apropiado para ciertas cosas

Page 8: 2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 1 IMPLEMENTACION DE APLICACIONES INTERNET

2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 8

El mundo color de Objetos

Todo el mundo está compuesto de entidades que se relacionan e interactúan entre si

¿Qué es un Objeto? Todo es un Objeto ¡¿~?!

¿Es lo mismo de siempre con otro nombre? Pensar en Objetos ….

No es el último grito de la moda (1980s)

Page 9: 2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 1 IMPLEMENTACION DE APLICACIONES INTERNET

2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 9

El mundo color de Objetos (2)

¿Por qué Orientación a Objetos (OO)?

Se parece más al mundo real.

Permite representar modelos complejos.

Muy apropiada para aplicaciones de negocios.

Las empresas ahora sí aceptan la OO.

Las nuevas plataformas de desarrollo la han adoptado. (Java / .NET)

Page 10: 2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 1 IMPLEMENTACION DE APLICACIONES INTERNET

2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 10

Programación Orientada a ObjetosProgramación Orientada a Objetos

• La programación orientada a objetos es una modelación sobre la observación del mundo real.

• El poder crear objetos y combinarlos es lo que da como resultado una programación orientada a objetos.

• La característica más importante en la programación orientada a objetos es la Clase.

Page 11: 2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 1 IMPLEMENTACION DE APLICACIONES INTERNET

2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 11

Conceptos de la POO

Conceptos fundamentales que sustentan la POO: Clase

Objeto

Instancia

Atributos

Métodos

La POO trata de amoldarse al modo de pensar del hombre y no a la de la máquina.

Page 12: 2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 1 IMPLEMENTACION DE APLICACIONES INTERNET

2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 12

Principales Lenguajes OO

Simula

Smalltalk

Object Pascal

Eiffel

C++

Java

C#

Page 13: 2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 1 IMPLEMENTACION DE APLICACIONES INTERNET

2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 13

Simula

Simula I (1964) y Simula 67 (1967), desarrollados en el Centro de Computación de Noruega por Ole-Johan Dahl y Kristen Nygaard, son los dos primeros lenguajes orientados a objetos.

Influenciado por Algol 60.

Simula 67 introdujo los principales conceptos de OOP: clases, objetos, encapsulamiento, herencia simple, sobrecarga (overriding) de métodos, y recuperación de memoria disponible (garbage collection)

Page 14: 2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 1 IMPLEMENTACION DE APLICACIONES INTERNET

2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 14

Smalltalk Smalltalk (1972) fue desarrollado en Xerox PARC por

Alan Kay, Dan Ingalls y Adele Goldberg.

Influenciado por Simula y Lisp.

Lenguaje orientado a objetos puro.

Soporta clases, metaclases, encapsulación, herencia simple, polimorfismo, garbage collection

En Smalltalk, todo es un objeto y cada objeto pertenece a una clase.

Page 15: 2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 1 IMPLEMENTACION DE APLICACIONES INTERNET

2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 15

C++ C++ (1983) fue desarrollado en Bell Laboratories por

Bjarne Stroustrup.

Influenciado por C y Simula.

Lenguaje orientado a objetos híbrido, compatible con C.

Soporta clases, encapsulación, sobrecarga de funciones y operadores, herencia múltiple, polimorfismo, clases/funciones parametrizadas (genéricas).

Page 16: 2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 1 IMPLEMENTACION DE APLICACIONES INTERNET

2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 16

Eiffel

Eiffel (1986) fue desarrollado por Bertrand Meyer.

Influenciado por Smalltalk y ADA.

Provee soporte para “Diseño por Contrato”: invariantes, pre-condiciones y postcondiciones.

Soporta clases, encapsulación, sobrecarga de operadores, herencia múltiple, polimorfismo, clases parametrizadas (genéricas), garbage collection.

Page 17: 2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 1 IMPLEMENTACION DE APLICACIONES INTERNET

2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 17

Java Java (1995) fue desarrollado en Sun

Microsystems por James Gosling, Bill Joy y Guy Steele.

Influenciado por C++.

Java es un lenguaje orientado a objetos más puro que C++ y menos puro que Smalltalk.

Soporta clases, encapsulación, herencia simple, polimorfismo, interfaces, garbage collection.

Page 18: 2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 1 IMPLEMENTACION DE APLICACIONES INTERNET

2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 18

C#

C# (2000) fue creado en Microsoft por Anders Hejlsberg.

Influenciado por Java: objetos manejados mediante referencias, herencia simple e interfaces, garbage collection; y C++ (sobrecarga de operadores).

Novedades: propiedades, eventos, delegados.

Permite crear código intermedio que corre en el Common Language Runtime (CLR), en .NET

Page 19: 2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 1 IMPLEMENTACION DE APLICACIONES INTERNET

2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 19

Comparación de Lenguajes

Page 20: 2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 1 IMPLEMENTACION DE APLICACIONES INTERNET

2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 20

Principios

En los objetos de la vida real, sin importar cuales sean, podemos distinguir:

que se clasifican en tipos,

que tienen características, y

que podemos interactuar con ellos (sin importar de que forma se haga).

Page 21: 2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 1 IMPLEMENTACION DE APLICACIONES INTERNET

2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 21

¿Qué es un Objeto? Informalmente, un objeto representa una

entidad del mundo real.

Entidades Físicas

(Ej.: Vehículo, Casa, Producto)

Entidades Conceptuales

(Ej.: Proceso Químico, Transacción Bancaria)

Entidades de Software

(Ej.: Lista Enlazada, Interfaz Gráfica)

Page 22: 2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 1 IMPLEMENTACION DE APLICACIONES INTERNET

2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 22

Tipos de Objetos

Los objetos tienen una jerarquía conceptual:

Objetos de cocina

Objetos de oficina

Objetos de un auto (motor, parabrisas, etc.)

Esta jerarquía es sumamente práctica y sencilla de recordar.

Page 23: 2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 1 IMPLEMENTACION DE APLICACIONES INTERNET

2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 23

Características de los Objetos

Aunque dos objetos sean del mismo tipo, dos autos por ejemplo, cada uno tiene características distintivas únicas:

el color,

el número de cilindros,

el número de válvulas,

número de asientos

Significa que aunque dos o más objetos sean del mismo tipo cada uno posee características únicas que lo definen.

Page 24: 2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 1 IMPLEMENTACION DE APLICACIONES INTERNET

2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 24

Interacción con los Objetos

Se refiere a una interfaz o un método de comunicación con tales objetos:

Podemos acelerar el auto, encender el televisor, vaciar el basurero, cerrar la cortina, operar el microondas, etc.

El origen del nombre "métodos" (para las funciones) viene de esta idea: los métodos son la manera de comunicación, interacción y manipulación con los objetos.

Page 25: 2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 1 IMPLEMENTACION DE APLICACIONES INTERNET

2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 25

Definición de Objeto

Definición Formal (Rumbaugh):

“Un objeto es un concepto, abstracción o cosa con un significado y límites claros en el problema en cuestión”

Un objeto posee (Booch): Estado Comportamiento Identidad

Page 26: 2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 1 IMPLEMENTACION DE APLICACIONES INTERNET

2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 26

Un objeto posee Estado

Lo que el objeto sabe

El estado de un objeto es una de las posibles condiciones en que el objeto puede existir.

El estado normalmente cambia en el transcurso del tiempo.

El estado de un objeto es implementado por un conjunto de propiedades (atributos), además de las conexiones que puede tener con otros objetos.

Page 27: 2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 1 IMPLEMENTACION DE APLICACIONES INTERNET

2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 27

Un objeto posee Comportamiento

Lo que el objeto puede hacer

El comportamiento de un objeto determina cómo éste actúa y reacciona frente a las peticiones de otros objetos.

Es modelado por un conjunto de mensajes a los que el objeto puede responder (operaciones que puede realizar).

Se implementa mediante métodos.

Page 28: 2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 1 IMPLEMENTACION DE APLICACIONES INTERNET

2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 28

Un objeto posee Identidad

Cada objeto tiene una identidad única, incluso si su estado es idéntico al de otro objeto.

Page 29: 2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 1 IMPLEMENTACION DE APLICACIONES INTERNET

2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 29

Objetos en C#

Archivo de clase que contiene:

Un tipo (constructor)

características (variables)

Una serie de métodos (interfaz de comunicación)

“un archivo de clase lleno de funciones relacionadas”

Aprender POO es aprender a organizar mejor las funciones.

Page 30: 2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 1 IMPLEMENTACION DE APLICACIONES INTERNET

2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 30

“Hola mundo” en C#

class MainClass{

public static void Main(string[] args) {

Console.WriteLine( "Hola Mundo!");

}

}

Page 31: 2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 1 IMPLEMENTACION DE APLICACIONES INTERNET

2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 31

Objetos ó archivos de clases

Estructura básica

1. Constructores (o inicializadores)

2. Funciones Públicas

3. Funciones Privadas

Page 32: 2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 1 IMPLEMENTACION DE APLICACIONES INTERNET

2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 32

¿Qué es una Clase?

Una clase es una descripción de un grupo de objetos con: Propiedades en común: atributos. Comportamiento similar: operaciones. La misma forma de relacionarse con otros

objetos: relaciones. Una semántica en común: significan lo mismo.

Una clase es una abstracción que: Enfatiza las características relevantes. Suprime otras características: simplificación.

Un objeto es una instancia de una clase.

Page 33: 2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 1 IMPLEMENTACION DE APLICACIONES INTERNET

2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 33

Objetos y Clases Una clase es una definición abstracta de un objeto:

Define la estructura y el comportamiento compartidos por los objetos.

Sirve como modelo para la creación de objetos.

Los objetos pueden ser agrupados en clases.

Page 34: 2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 1 IMPLEMENTACION DE APLICACIONES INTERNET

2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 34

Ejemplo de una Clase Clase: Curso Estado (Atributos)

Nombre Ubicación Días Ofrecidos Horario de Inicio Horario de Término

Comportamiento (Métodos) Agregar un Alumno Borrar un Alumno Entregar un Listado del Curso Determinar si está Completo

Page 35: 2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 1 IMPLEMENTACION DE APLICACIONES INTERNET

2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 35

Modificadores de Acceso

Permiten definir el nivel de acceso (visibilidad) de los miembros (atributos o métodos) de una clase.

Público: Cualquier clase puede “ver” los miembros públicos de otra clase.

Privado: Sólo la clase puede ver sus propios miembros privados.

Existen otros dos modificadores para propósitos específicos: Paquete y Protegido.

Page 36: 2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 1 IMPLEMENTACION DE APLICACIONES INTERNET

2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 36

La base de esta tecnología es:

Modelar

con base en

Entidades

los problemas que se desea resolver…

… relevantes  y tangibles en el problema.

Modelamiento

Page 37: 2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 1 IMPLEMENTACION DE APLICACIONES INTERNET

2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 37

Abstracción

El modelo define una perspectiva abstracta del problema:

Los datos que son afectados.

Las operaciones que son identificadas.

Page 38: 2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 1 IMPLEMENTACION DE APLICACIONES INTERNET

2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 38

Definición

La Programación Orientada a Objetos es un método de implementación en el que:

Los programas se organizan como colecciones de objetos.

Cada uno de los cuales representa una instancia de alguna clase, y cuyas clases pertenecen a una jerarquía”.

Page 39: 2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 1 IMPLEMENTACION DE APLICACIONES INTERNET

2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 39

Propiedades de la POO Propiedades, que lo llevan a ser un estilo

de desarrollo que permite crear código reutilizable son:

Encapsulamiento

Polimorfismo

Herencia

Page 40: 2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 1 IMPLEMENTACION DE APLICACIONES INTERNET

2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 40

EncapsulamientoAbstracción que permite ignorar los detalles no esenciales de un objeto, manteniendo un modelo simplificado.

Page 41: 2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 1 IMPLEMENTACION DE APLICACIONES INTERNET

2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 41

EncapsulamientoEl encapsulamiento permite ocultar tanto

el tipo de datos como

las operaciones

El encapsulamiento mediante objetos incluye:

Privacidad de datos.

Compartir datos con otro objeto.

Datos "globales" compartidos por otros objetos.

Un conjunto de mensajes al cual un objeto responde.

Page 42: 2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 1 IMPLEMENTACION DE APLICACIONES INTERNET

2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 42

Encapsulamiento

Todos ellos están encapsulados o contenidos dentro de la misma, de manera que son propiedad de dicha clase.

Esos métodos y atributos pueden ser utilizados por otras clases sólo si la clase que los encapsula le brinda los permisos necesarios para ello.

Toda clase tiene una serie de atributos y métodos asociados a ella.

Page 43: 2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 1 IMPLEMENTACION DE APLICACIONES INTERNET

2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 43

Encapsulamiento

Page 44: 2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 1 IMPLEMENTACION DE APLICACIONES INTERNET

2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 44

El polimorfismo permite que una misma operación pueda llevarse a cabo de forma diferente en clases diferentes.

Por ejemplo, la operación mover, es distinta para una pieza de ajedrez que para una ficha de damas, pero ambos objetos pueden ser movidos.

Una operación es una acción o transformación que realiza o padece un objeto.

La implementación específica de una operación determinada en una clase determinada se denomina método.

Polimorfismo

Page 45: 2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 1 IMPLEMENTACION DE APLICACIONES INTERNET

2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 45

Polimorfismo Capacidad de que dos clases diferentes

respondan de forma distinta a un mismo mensaje.

Esto quiere decir que dos clases que tengan un método con el mismo nombre, y que respondan al mismo tipo de mensaje (es decir, que reciba los mismo parámetros), ejecutarán acciones distintas.

Page 46: 2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 1 IMPLEMENTACION DE APLICACIONES INTERNET

2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 46

Herencia Una clase (clase hija) puede heredar, de

otra clase (clase padre):

Atributos y

Métodos

Em pleado Cliente Alum no

PersonaN om b re

D irecc ió n

Page 47: 2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 1 IMPLEMENTACION DE APLICACIONES INTERNET

2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 47

Desarrollando una Clase Una clase describe un grupo de objetos que

comparten propiedades y métodos comunes.

Una clase es una plantilla que define qué forma tienen los objetos de la clase.

Una clase se compone de dos tipos de campos:

Información: campos (atributos, propiedades)

Comportamiento: métodos (operaciones, funciones)

Page 48: 2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 1 IMPLEMENTACION DE APLICACIONES INTERNET

2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 48

Clases como abstracciones

Atributos

Métodos

Clase:

Representan el estado de un objeto (Variables de ejemplar)

Representan el comportamiento de un objeto. (Funciones miembro).

Las clases son abstracciones que representan a un conjunto de objetos con un comportamiento e interfaz común.

Page 49: 2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 1 IMPLEMENTACION DE APLICACIONES INTERNET

2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 49

Instancias - Objetos Una Instancia u Objeto es una ocurrencia

o representante de la clase.

Es una variable del tipo de una clase.

Clases ObjetosPersona J uanPerro SamiraProducto ChocolateComputador DellFracción FStack S

Page 50: 2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 1 IMPLEMENTACION DE APLICACIONES INTERNET

2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 50

Ejemplo de instancia de objetos

Clase: Estudiante

Objeto: A

Métodos

Inscribir

Consultar

Nombre: Juan

Objeto: B

Métodos

Inscribir

Consultar

Nombre: María

Declarativa: Estudiante A, B

Page 51: 2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 1 IMPLEMENTACION DE APLICACIONES INTERNET

2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 51

Atributos Son aquellas características que se asocian

a un tipo de objeto (clase). Nombre Rut Edad Matrícula Dirección

Los atributos que se asocian a una clase, dependen en gran medida del uso que se le dará dentro del sistema que se diseña actualmente, pero también pueden ser definidos pensando en futuras implementaciones.

Page 52: 2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 1 IMPLEMENTACION DE APLICACIONES INTERNET

2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 52

Métodos Representan todas aquellas acciones que puede

realizar un objeto de una clase.

La clase Perro puede tener los métodos: Correr, Comer, Bañar Ladrar,

En la implementación, estos métodos son segmentos de código similares a los procedimientos y funciones utilizadas en la programación modular.

Page 53: 2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 1 IMPLEMENTACION DE APLICACIONES INTERNET

2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 53

Unidad de datos y procesos

En la POO se dice que en un objeto: "se unen datos y procesos".

En la programación estructurada, estaban separados en forma de variables y funciones.

Objeto. Instanciación de objetos

Variable. Declaración de variables.

POO Procedural

Page 54: 2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 1 IMPLEMENTACION DE APLICACIONES INTERNET

2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 54

Inicio y fin de Objetos

Un objeto consta de: Un tiempo de vida. Estado. Comportamiento(s).

Atributos

Métodos

Cada objeto es responsable de inicializarse y destruirse en forma correcta.

Page 55: 2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 1 IMPLEMENTACION DE APLICACIONES INTERNET

2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 55

La duración de un objeto en un programa siempre está limitada en el tiempo.

Tiempo de vida de un objeto

La mayoría de los objetos sólo existen durante una parte de la ejecución del programa. Los objetos son creados mediante un mecanismo denominado instanciación. Cuando dejan de existir se dice que son destruidos.

Page 56: 2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 1 IMPLEMENTACION DE APLICACIONES INTERNET

2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 56

Queda definido por sus atributos.

Con él se definen las propiedades del objeto y las condiciones en que se encuentra en un momento determinado de su existencia.

Estado de un objeto

Page 57: 2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 1 IMPLEMENTACION DE APLICACIONES INTERNET

2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 57

Lo definen los métodos de la clase.

Todo objeto debe de presentar una interfaz.Esta interfaz queda definida por sus métodos, para que el resto de los objetos que forman parte del programa puedan interactuar con él.

Comportamiento de un objeto

Page 58: 2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 1 IMPLEMENTACION DE APLICACIONES INTERNET

2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 58

Mensaje

Un programa en ejecución es una colección de objetos que interactúan, son creados y destruidos.

La interacción se basa en mensajes que son enviados de un objeto a otro, donde el emisor le pide al receptor que aplique un método a sí mismo.

Mecanismo por el cual se solicita una acción sobre el objeto.

Page 59: 2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 1 IMPLEMENTACION DE APLICACIONES INTERNET

2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 59

Ejemplo

• Considerar la siguiente acción en el computador:

Ambiente procedimental

Se identifican las funciones que resuelven el problema.

Ambiente OO

Se identifican los objetos que interactúan.

Al presionar una tecla, para que aparezca el carácter en la pantalla

Page 60: 2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 1 IMPLEMENTACION DE APLICACIONES INTERNET

2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 60

Ambiente Procedimental

1.Esperar, hasta que una tecla es presionada.

2.Obtener el valor de la tecla.

3.Escribir el valor de la tecla en la posición actual del cursor.

4.Avanzar la posición del cursor.

Page 61: 2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 1 IMPLEMENTACION DE APLICACIONES INTERNET

2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 61

Procedimental

Procedimiento 1

Procedimiento 2

Procedimiento 3

DATOS

Page 62: 2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 1 IMPLEMENTACION DE APLICACIONES INTERNET

2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 62

Ambiente Orientado a Objeto

1. Tecla

2. Pantalla Una vez que una tecla recibe un mensaje

de cambiar su estatus al estado "estar presionada", su objeto correspondiente, manda un mensaje al objeto que representa a la pantalla.

Este mensaje le solicita al objeto pantalla que despliegue el valor asociado a la tecla presionada.

Page 63: 2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 1 IMPLEMENTACION DE APLICACIONES INTERNET

2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 63

POO

MétodosDATOS

MétodosDATOS

Métodos MétodosDATOS DATOS

Page 64: 2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 1 IMPLEMENTACION DE APLICACIONES INTERNET

2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 64

Conceptos de la POO

Conceptos fundamentales que sustentan la POO:

Clase

Objeto

Instancia

Atributos

Métodos

La POO trata de amoldarse al modo de pensar del hombre y no al de la máquina.

Page 65: 2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 1 IMPLEMENTACION DE APLICACIONES INTERNET

2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 65

Mensajes y métodos Un objeto (agente emisor) envía un mensaje a otro objeto

(agente receptor).

El mensaje tiene codificada la petición de una acción.

El mensaje incluye la información necesaria (argumentos) para satisfacer la petición.

Si el receptor acepta el mensaje, acepta la responsabilidad de ejecutar la acción indicada.

En respuesta a un mensaje, el receptor ejecuta un método para satisfacer la petición.

Page 66: 2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 1 IMPLEMENTACION DE APLICACIONES INTERNET

2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 66

Clases y ejemplares

Todos los objetos son ejemplares de una clase.

La clase del receptor determina el método que se activa como respuesta a un mensaje.

Todos los objetos de una clase usan el mismo método en respuesta a mensajes similares.

Page 67: 2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 1 IMPLEMENTACION DE APLICACIONES INTERNET

2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 67

Clases y Métodos Un objeto tiene dos caras: una exterior, que

ve el usuario, y una interior, que sólo ve el programador.

El usuario ve nada más que un conjunto de operaciones que definen el comportamiento de la abstracción.

El programador ve las variables de datos que se usan para mantener el estado interno del objeto.

Un ejemplar es un representante de una clase.

Page 68: 2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 1 IMPLEMENTACION DE APLICACIONES INTERNET

2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 68

Clases y Métodos Una variable de ejemplar es una variable

interna mantenida por un ejemplar.

Cada ejemplar tiene su propia colección de variables de ejemplar.

Las variables de ejemplar sólo son modificables por los métodos definidos en la clase.

Un objeto es la combinación de estado y comportamiento.

Page 69: 2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 1 IMPLEMENTACION DE APLICACIONES INTERNET

2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 69

Clases y Métodos El estado lo determinan las variables de

ejemplar. El comportamiento lo determinan los

métodos. Desde el exterior, los clientes (Usuarios)

sólo pueden ver el comportamiento de los objetos.

Desde el interior, los métodos proporcionan el comportamiento apropiado mediante las modificaciones del estado del objeto.

Page 70: 2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 1 IMPLEMENTACION DE APLICACIONES INTERNET

2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 70

Clases y Objetos

Objeto Clase

María Persona

Page 71: 2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 1 IMPLEMENTACION DE APLICACIONES INTERNET

2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 71

Un objeto es una entidad, física o conceptual, con propiedades o atributos que responde a un conjunto determinado de mensajes.

Un mensaje es un mandato que el objeto debe obedecer.

Objetos y mensajes

Page 72: 2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 1 IMPLEMENTACION DE APLICACIONES INTERNET

2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 72

Algunos de estos mensajes le solicitan al objeto que lleve a cabo una determinada acción sin esperar que el objeto dé respuesta a cambio.

Otros mensajes solicitan del objeto cierta información, por lo que el objeto debe responder dando esa información.

Tipos de mensajes

Page 73: 2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 1 IMPLEMENTACION DE APLICACIONES INTERNET

2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 73

Una clase define a un grupo de objetos que tienen el mismo comportamiento y propiedades comunes.

De esta forma, los objetos Silvestre, Garfield y Misifús pertenecen a la clase Gato y los objetos Juan Pérez y Pedro González pertenecen a la clase Persona.

¿Qué es una Clase?

Page 74: 2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 1 IMPLEMENTACION DE APLICACIONES INTERNET

2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 74

ClasesClases

Una Clase tiene características y conductas, las cuales se reflejan con variables y métodos respectivamente:

int x, y;char ch; Variables (características)Variables (características)

Métodos (conductas)Métodos (conductas)

Page 75: 2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 1 IMPLEMENTACION DE APLICACIONES INTERNET

2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 75

En una clase Animal, podríamos tener las siguientes características:

Número de Extremidades.

Tamaño.

Color de Piel.

Podríamos tener las siguientes conductas:

Crecer.

Comer.

Reproducir.

Morir.

ClasesClases

Page 76: 2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 1 IMPLEMENTACION DE APLICACIONES INTERNET

2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 76

La clase está formada entonces por:

1. Variables de instancia, también conocidas como variables de objeto o variables de estado.

2. Métodos, utilizados por las variables de instancia o de estado para lograr un objetivo.

ClasesClases

Page 77: 2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 1 IMPLEMENTACION DE APLICACIONES INTERNET

2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 77

SintaxisSintaxis para definir una clase para definir una clase

class classname { Declaración de la variable de instancia1;Declaración de la variable de instancia2;...Declaración de otras variables de

instancia ... Definición de método1Definición de método2 ... Definición de otros métodos ... }

Page 78: 2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 1 IMPLEMENTACION DE APLICACIONES INTERNET

2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 78

Uso de las clasesUso de las clases

• Una clase se puede utilizar a través de sus objetos.

• Declaración de un objeto:

Clase objeto;

ejemplo: Figura2d cuadrado;

• Creación de un objeto:

objeto = new Constructor(parametros);

ejemplo: cuadrado = new Figura2d();

Page 79: 2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 1 IMPLEMENTACION DE APLICACIONES INTERNET

2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 79

Definiendo la clase Personapublic class Persona{ // En seguida se declaran las variables de instancia o atributos public String nombre; public int edad; public int alto; public String sex;

// Después se declaran los métodos de la clase Persona public void drawPerson(Graphics g, int x, int y) { // Escribir las instrucciones necesarias para dibujar a la persona en las posiciones (x, y) en el elemento gráfico g. } public double grow(double increment) { // Escribir las instrucciones necesarias para incrementar el tamaño de la persona. }}

Page 80: 2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 1 IMPLEMENTACION DE APLICACIONES INTERNET

2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 80

Pilares de la Orientación a Objetos

RelacionesRelaciones

HerenciaHerencia

AbstracciónAbstracción

Encapsulamiento Encapsulamiento

Page 81: 2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 1 IMPLEMENTACION DE APLICACIONES INTERNET

2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 81

Abstracción

Ignorancia Selectiva: La abstracción nos ayuda a trabajar con cosas

complejas. Se enfoca en lo importante. Ignora lo que no es importante: simplifica.

Una clase es una abstracción en la que: Se enfatizan las características relevantes. Se suprimen otras características.

Una clase debe capturar una y solo una abstracción clave.

Page 82: 2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 1 IMPLEMENTACION DE APLICACIONES INTERNET

2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 82

Encapsulamiento Principio que establece que los atributos propios de

un objeto no deben ser visibles desde otros objetos.

Deben ser declarados como privados.

Permite abstraer al resto del mundo de la complejidad de la implementación interna.

Permite exponer el estado del objeto sólo a través del comportamiento que le hayamos definido mediante miembros públicos.

¿Por qué es útil?

Punto de Control/Validación.

Mejor respuesta ante los Cambios.

Page 83: 2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 1 IMPLEMENTACION DE APLICACIONES INTERNET

2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 83

Relaciones Todo sistema abarca muchas clases y

objetos.

Los objetos contribuyen en el comportamiento de un sistema colaborando entre si.

La colaboración se logra a través de las relaciones.

Existen dos tipos principales de relaciones

Asociación

Agregación

Page 84: 2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 1 IMPLEMENTACION DE APLICACIONES INTERNET

2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 84

Relaciones de Asociación Una asociación es una conexión entre dos clases que

representa una comunicación.

Una asociación puede tener nombre.

La comunicación puede ser tanto uni como bi-direccional (por defecto).

La multiplicidad es el número de instancias que participan en una asociación.

Ejemplo: Una Persona es Dueña de un Vehículo. Un Vehículo Pertenece a una Persona.

Persona Vehiculo-dueño

Page 85: 2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 1 IMPLEMENTACION DE APLICACIONES INTERNET

2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 85

Relaciones de Agregación La agregación es una forma especial de asociación

donde un todo se relaciona con sus partes.

También se conoce como “una parte de” o una relación de contención.

Ejemplo:

Una Puerta es una parte de un Vehículo.

El Vehículo es azul, la Puerta es Azul.

Mover el Vehículo implica mover la Puerta.

+Mover()

-color

Vehiculo Puerta

Page 86: 2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 1 IMPLEMENTACION DE APLICACIONES INTERNET

2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 86

Herencia Es una relación entre clases en la

cual una clase comparte la estructura y comportamiento definido en otra clase (Grady - Booch).

Cada clase que hereda de otra posee:

Los atributos de la clase base además de los propios.

Soporta todos o algunos de los métodos de la clase base.

Una subclase hereda de una clase base.

+Avanzar()+Detenerse()

-pasajeros

Transporte

Automóvil Avión

Clase BaseClase Base

Clases Derivadas oClases Derivadas o

subclasessubclases

Page 87: 2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 1 IMPLEMENTACION DE APLICACIONES INTERNET

2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 87

HerenciaHerencia

• La herencia permite crear subclases que heredan tanto las variables de estado como los métodos de su superclase.

• Una subclase puede utilizar las variables y los métodos que tiene la clase que le hereda, sin necesidad de definirlos.

Page 88: 2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 1 IMPLEMENTACION DE APLICACIONES INTERNET

2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 88

Clase A

Clase B

Clase C

public class A

{

}

public class B extends A

{

}

public class C extends B

{

}

hereda

hereda

Herencia (2)Herencia (2)

Page 89: 2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 1 IMPLEMENTACION DE APLICACIONES INTERNET

2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 89

Clase A

Clase B

Clase C

public class A

{

}

public class B extends A

{

}

public class C extends B

{

}

Cuando se usa un método, lo busca aquí primero.

Si no encuentra busca aquí.

Si no encontró abajo busca aquí.

Herencia (3)Herencia (3)

Page 90: 2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 1 IMPLEMENTACION DE APLICACIONES INTERNET

2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 90

Ventajas de la Herencia

•Ahorra tiempo al reutilizar el código.

•Reduce errores porque se utiliza algo que ya fue probado.

•“Divide y vencerás”

class Cuenta //Clase Base{ }class CtaCte : Cuenta //Clase Derivada{ }

Page 91: 2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 1 IMPLEMENTACION DE APLICACIONES INTERNET

2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 91

Sobreescritura (Sobreescritura (OverridingOverriding))

• Al heredar de una clase, una subclase puede sobreescribir métodos de acuerdo a sus necesidades, de tal forma que el objeto que se cree utilizará el método de la subclase y no el de la clase ancestro.

• Una subclase puede definir otras variables y otros métodos que no están en la super clase de donde está heredando.

Page 92: 2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 1 IMPLEMENTACION DE APLICACIONES INTERNET

2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 92

Sobreescritura

Escribir un método en la subclase que tenga el mismo nombre y parámetros que su superclase.

Appletpaint(Graphics g )

PersonAppletpaint(Graphics g )

Page 93: 2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 1 IMPLEMENTACION DE APLICACIONES INTERNET

2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 93

Alcance de las variables de Instancia y Locales

• Variables de instancia: si declaramos las variables inmediatamente después de abrir la clase, se dice que son variables de instancia (atributos) y pueden ser utilizadas por TODOS los métodos de esa clase.

• Variables locales: si las variables son declaradas DENTRO de un método, dicha variable solo puede ser utilizada por ese método.

Page 94: 2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 1 IMPLEMENTACION DE APLICACIONES INTERNET

2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 94

Paso de parámetros

Un método puede ser definido para aceptar cero o más parámetros.

Cada elemento en la lista de parámetros es especificado por su tipo y nombre.

Los parámetros en la definición del método son llamados parámetros formales.

Los valores pasados a un método cuando es llamado se llaman parámetros actuales.

Page 95: 2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 1 IMPLEMENTACION DE APLICACIONES INTERNET

2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 95

Paso de parámetros Los parámetros también actúan como variables

locales.

Cuando se pasa un parámetro, se construye una copia del valor y es asignada al parámetro formal. Ejemplo:

suma(5,4);

..

int suma ( int operando1, int operando2){

return operando1+operando2;

}

Page 96: 2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 1 IMPLEMENTACION DE APLICACIONES INTERNET

2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 96

Convenciones para nombrar variables de instancia y clases:

• Los identificadores para variables de instancia deben empezar con minúscula y hacer cambio a mayúscula cuando sean varias palabras: numEmpleado.

• Los identificadores para las variables locales y parámetros deben ser cortos y significativos.

• Los nombre de las clases deben empezar con mayúsculas y ser cortos y descriptivos.

Page 97: 2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 1 IMPLEMENTACION DE APLICACIONES INTERNET

2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 97

MétodosMétodos

• Los métodos son las acciones que pueden realizar las instancias de objeto de una clase.

• Un método es una agrupación de instrucciones que pueden ejecutar algo útil para las variables de instancia y posiblemente regresar algo.

• Ejemplos:public void HacerDeposito(int importe) //No devuelve valor{}

public int ObtenerInventario(int codArticulo) //Devuelve un entero{}

Page 98: 2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 1 IMPLEMENTACION DE APLICACIONES INTERNET

2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 98

Sintaxis general de un método

public tipoRetorno nombreMetodo( TipoParam1 param1, TipoParam2 param2,...) {

tipo1 varLocal1;

tipo2 varLocal2; ...

estatuto1;

estatuto2; ... }

Page 99: 2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 1 IMPLEMENTACION DE APLICACIONES INTERNET

2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 99

Métodos

• Los métodos pueden tener valor de retorno. Ejemplo:

public double promedio(double a, double b){

return (a+b)/2; }

• O pueden NO tener valor de retorno. Ejemplo:

public void dibuja(Graphics g) {

g.drawRect(20,20,50,60); }

Page 100: 2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 1 IMPLEMENTACION DE APLICACIONES INTERNET

2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 100

Llamadas a Llamadas a métodosmétodos

Un método llama a otro de la misma clase:

Forma general:

metodo ( parametros);

Ejemplos:

dameTuEdad();

deposita(1000);

double y=promedio(9.5,10.0);

Page 101: 2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 1 IMPLEMENTACION DE APLICACIONES INTERNET

2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 101

Un método llama a otro de otra clase:

Forma general:

objeto.metodo(parametros);

Ejemplos:

maria.dameTuEdad();

cuentaBancaria.deposita(1000);

Llamadas a Llamadas a métodos (2)métodos (2)

Page 102: 2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 1 IMPLEMENTACION DE APLICACIONES INTERNET

2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 102

EncapsulamientoEncapsulamiento

• El acceso a un método o a una variable desde otra clase solo se logra si estos han sido declarados como públicos.

• Si dentro de una clase las variables de instancia o los métodos se definen como privados solo podrán ser usadas dentro de esa clase (encapsulamiento).

• La clase tendrá entonces métodos privados que servirán para hacer operaciones con las variables de estado, pero también tendrá métodos públicos que servirán para poder utilizar las variables de estado desde otra clase.

Page 103: 2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 1 IMPLEMENTACION DE APLICACIONES INTERNET

2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 103

Constructores

• Los constructores son métodos que sirven para construir, crear o inicializar un objeto o instancia de una clase.

• NO tienen un valor de retorno (ni siquiera void).

• Se deben llamar IGUAL que la clase.

• Si no se especifica, C# proporciona automáticamente un constructor (vacío) para la clase.

Page 104: 2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 1 IMPLEMENTACION DE APLICACIONES INTERNET

2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 104

Constructores (2) Puede tener parámetros, que son usados

para inicializar algunas variables en el objeto.

Ejemplo:

class CuentaBanco{

int numCuenta, saldo1;

CuentaBanco(int num, int saldo){

num_cuenta=num;

saldo1=saldo;

}}

Page 105: 2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 1 IMPLEMENTACION DE APLICACIONES INTERNET

2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 105

Constructores (3)

Son invocados con el operador new durante la creación de un objeto.

Por ejemplo, el constructor CuentaBanco puede ser definido con dos parámetros que indican su balance inicial:

miCuenta= new CuentaBanco(1001, 650);

Page 106: 2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 1 IMPLEMENTACION DE APLICACIONES INTERNET

2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 106

Definición de clase Persona sin Definición de clase Persona sin constructorconstructorpublic class Persona {

String nombre;

int edad, altura; String sexo;

String construye(int e, int a, String s){

edad=e; altura=a; sexo=s;}

String dameDatos(Graphics g){

g.drawString(“edad ”+edad+” altura”+altura,50,50 )}}

Page 107: 2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 1 IMPLEMENTACION DE APLICACIONES INTERNET

2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 107

Sobrecarga (Overloading)

• Escribir un método en la misma clase, que tenga el mismo nombre pero diferente numero de parámetros.

public class Person// Métodos Constructores public Person( ) ... public Person(String name, int age) ...public void HacerDeposito(int importe) {}

public void HacerDeposito(int importe, bool acreditar){}

Page 108: 2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 1 IMPLEMENTACION DE APLICACIONES INTERNET

2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 108

Clases y Objetos

Mamiferos perro

Clase Objeto

Page 109: 2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 1 IMPLEMENTACION DE APLICACIONES INTERNET

2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 109

Un objeto tiene: estado - características descriptivas que

definen al objeto. comportamientos - que es lo que puede hacer

(o se puede hacer) con ese objeto. Por ejemplo, una cuenta de banco

tiene número de cuenta, tiene un saldo, se le puede depositar, se le puede retirar, se le puede obtener su saldo.

Clases y Objetos

Page 110: 2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 1 IMPLEMENTACION DE APLICACIONES INTERNET

2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 110

Acciones del Constructor

Inicializan la clase: le dan un estado inicial estable listo para su uso.

Al declarar un entero, éste tomaba el valor cero como estado inicial, para ser cambiado.

Los constructores hacen lo mismo pero para las clases.

Page 111: 2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 1 IMPLEMENTACION DE APLICACIONES INTERNET

2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 111

Definiendo constructores

En un auto el constructor sería el equivalente de encender el motor.

En un computador el constructor iniciaría el Sistema Operativo.

En una calculadora el constructor encendería el display y activaría las teclas para su uso.

“Lo primero que debemos pensar es en cómo definir un constructor”

Page 112: 2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 1 IMPLEMENTACION DE APLICACIONES INTERNET

2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 112

Características de los constructores

"Constructor" es sólo un nombre más elegante para referirnos a una función.

En cierta forma también es una función pero es una muy especial porque no tiene tipo y no devuelve valores.

Sólo es una sección de código que se ejecutará antes que las demás.

Page 113: 2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 1 IMPLEMENTACION DE APLICACIONES INTERNET

2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 113

Inicio de variables en los Constructores

Es un área perfecta para inicializar muchas variables, ya que se ejecutará antes que ninguna otra parte del programa.

También es llamado función inicializadora de variables.

class CtaCte{ public CtaCte(){...} //Const. por default public CtaCte(int i){...} //Const. con un parametro}

Page 114: 2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 1 IMPLEMENTACION DE APLICACIONES INTERNET

2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 114

C# - Propiedades

Propiedad: característica o atributo de un objetoPropiedad: característica o atributo de un objetoclass CtaCte{ int balance; public int Balance { get { return balance; } set { balance = value; } }}

CtaCte cc = new CtaCte();cc.Balance = 100; //AsignaciónMostrar(cc.Balance); //Obtención

Page 115: 2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 1 IMPLEMENTACION DE APLICACIONES INTERNET

2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 115

Funciones públicas o métodos públicos Funciones de la clase que podemos usar

libremente en el momento que se necesiten.

¿Bajo qué condiciones deben ser públicas?

Cuando se quieren llamar desde fuera de la clase (desde el exterior).

Un método público sirve para modificar el estado interno de los objetos.

Page 116: 2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 1 IMPLEMENTACION DE APLICACIONES INTERNET

2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 116

Funciones privadas o métodos privados

Son las que NO son accesibles desde el exterior de la clase.

Estas funciones sólo se necesitan dentro de la misma clase.

No es importante que se tenga acceso a ellas desde el exterior.

Page 117: 2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 1 IMPLEMENTACION DE APLICACIONES INTERNET

2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 117

Ejemplo métodos Públicos y Privados

Pseudocódigo:

Constructor:    Reloj negro, hora inicial 12:00am; Funciones Públicas:    Apagar    Encender    Poner despertador; Funciones Privadas:    Mecanismo interno de control    Mecanismo interno de baterías    Mecanismo de agujas

Page 118: 2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 1 IMPLEMENTACION DE APLICACIONES INTERNET

2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 118

Ejemplo métodos Públicos y Privados

Pseudocódigo:

Constructor:    PC DELL, sistema operativo Windows XP, encendido Funciones Públicas:    Apagado    Teclado    Pantalla    Impresora    Parlantes Funciones Privadas:    Caché del sistema    Procesador    Dispositivo de Almacenamiento    Motherboard

Page 119: 2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 1 IMPLEMENTACION DE APLICACIONES INTERNET

2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 119

Métodos Públicos y Privados

El programador puede modificar todo el código fuente:

No tiene relación con seguridad.

Tiene relación con la optimización y organización eficiente del código.

Existe un modificador más, además de "public" y "private“, que es "protected“, el cual restringe el acceso para clases de otros paquetes.

Page 120: 2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 1 IMPLEMENTACION DE APLICACIONES INTERNET

2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 120

Resumen sobre métodos públicos y privados

Distintos modificadores y restricciones que imponen a las variables y a los métodos

acceso\modificador sin modificador public private protected private protected

misma clase sí sí sí sí sí

subclase sí sí no sí sí

clase ajena sí sí no sí no

Page 121: 2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 1 IMPLEMENTACION DE APLICACIONES INTERNET

2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 121

Ejemplopublic class reloj {    private int horas, minutos, segundos;   //constructor    public reloj() {       horas = 12;       minutos = 0;       segundos = 0;    }   //funcion pública    public void cambiarHora(int h, int m, int s) {       horas = h;       minutos = m;       segundos = s;    }    //otra función pública    public String obtenerHora() {       return "Hora: " + horas + " Minutos: "       + minutos + " Segundos: " + segundos;    } }

Page 122: 2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 1 IMPLEMENTACION DE APLICACIONES INTERNET

2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 122

Ejemplo (2)

Contiene dos funciones públicas y un constructor.

La palabra clave public al inicio permite que cualquier navegador tenga acceso libre para abrir la clase.

Las primeras tres variables int son private, cierran literalmente el acceso a cualquiera que intente manipularlas desde fuera de la clase.

En cierto modo private les pone un candado para que nadie excepto la misma clase pueda modificarlos.

Page 123: 2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 1 IMPLEMENTACION DE APLICACIONES INTERNET

2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 123

Ejemplo (3) No se ve muy clara la utilidad del constructor:

No es llamado en ninguna parte de la clase.

No tiene tipo y tampoco devuelve ningún valor.

Inicializa las variables horas, minutos y segundos. La función pública cambiarHora es de tipo void lo

que significa que no devuelve ningún valor:

Recibe tres argumentos enteros que sirven para reajustar los valores de horas, minutos y segundos.

Como esta función esta trabajando dentro de la misma clase, puede acceder libremente a estas variables aunque sean private.

Page 124: 2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 1 IMPLEMENTACION DE APLICACIONES INTERNET

2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 124

Ejemplo (4)

La función obtenerHora es de tipo String:

Devuelve una cadena de texto que muestra la hora completa juntando el contenido de todas las variables.

Page 125: 2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 1 IMPLEMENTACION DE APLICACIONES INTERNET

2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 125

Ejemplo (5)

La clase reloj es un objeto.

¿Cómo la utilizamos?

Se debe crear una clase que instancia o llama y utiliza el objeto creado.

Page 126: 2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 1 IMPLEMENTACION DE APLICACIONES INTERNET

2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 126

Ejemplo de instancia (en JAVA)

import java.awt.*; import java.applet.Applet; public class UsoReloj extends Applet {    reloj R;   //inicializar applet    public void init() {       R = new reloj();       R.cambiarHora(12, 23, 34);    }   //dibujar en la pantalla una cadena    public void paint(Graphics g) {       g.drawString(R.obtenerHora(), 20, 20);

   } }

Page 127: 2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 1 IMPLEMENTACION DE APLICACIONES INTERNET

2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 127

Ejemplo de instancia

El applet UsoReloj tiene dos métodos y una sola variable

La variable R, es de tipo reloj

para inicializarlo llamamos a su constructor mediante: R = new reloj();

Lo anterior se llama instanciar el objeto

R.cambiarHora(12, 23, 34)

Accede a la función pública cambiarHora dentro de la clase reloj

R.obtenerHora( )

Esta función no recibe argumentos y devuelve un String

Page 128: 2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 1 IMPLEMENTACION DE APLICACIONES INTERNET

2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 128

Instancias del objeto

Java no solo permite manejar una sola variable de una clase (objeto).

Se pueden crear tantas como se quiera de ella.

Cada una con sus propias funciones y variables públicas o privadas identificadas por la etiqueta o nombre que se les de.

Java jamás las confundirá ni las mezclará.

Page 129: 2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 1 IMPLEMENTACION DE APLICACIONES INTERNET

2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 129

Instancias del objeto

import java.awt.*; import java.applet.Applet; public class UsoRelojes extends Applet {    reloj R; reloj A;    reloj B; reloj C;   //inicializar applet    public void init() {       R = new reloj();       R.cambiarHora(12, 23, 34);       A = new reloj();       A.cambiarHora(12, 12, 0);       B = new reloj();       B.cambiarHora(9, 43, 29);       C = new reloj();       C.cambiarHora(0, 0, 0);    }

Page 130: 2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 1 IMPLEMENTACION DE APLICACIONES INTERNET

2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 130

Instancias del objeto

  //dibujar en la pantalla una cadena    public void paint(Graphics g) {       g.drawString("R " + R.obtenerHora(), 20, 20);       g.drawString("A " + A.obtenerHora(), 20, 40);       g.drawString("B " + B.obtenerHora(), 20, 60);       g.drawString("C " + C.obtenerHora(), 20, 80);    } }

Page 131: 2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 1 IMPLEMENTACION DE APLICACIONES INTERNET

2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 131

Reutilización del Software

Es fácil crear varios relojes con una sola clase reloj.

Esta facilidad se llama Reutilización del Software

“Codifique una vez y úselo cuantas veces quiera.”

Page 132: 2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 1 IMPLEMENTACION DE APLICACIONES INTERNET

2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 132

Interfaces

Recurso de diseño soportado por los lenguajes orientados a objetos que permite definir comportamiento.

Permite que clases que no están estrechamente relacionadas entre sí deban tener el mismo comportamiento.

La implementación de una interfaz es un contrato que obliga a la clase a implementar todos los métodos definidos en la interfaz

Page 133: 2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 1 IMPLEMENTACION DE APLICACIONES INTERNET

2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 133

Interfaces (2)

¿ De que clase heredaría la clase Hidroavión ?¿ De que clase heredaría la clase Hidroavión ?

Vehiculo

Avión Barco

Aereo TerrestreAcuatico

Automóvil

Page 134: 2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 1 IMPLEMENTACION DE APLICACIONES INTERNET

2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 134

Interfaces (3)

Se crean las interfaces que definen comportamiento.

Hidroavión deberá definir los comportamientos de cada una de las interfaces que implemente.

Hidroavion

+Navegar()

«interface»Acuatico

+Volar()

«interface»Aereo

Page 135: 2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 1 IMPLEMENTACION DE APLICACIONES INTERNET

2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 135

Es la propiedad que tienen los objetos de permitir invocar genéricamente un comportamiento (método) cuya implementación será delegada al objeto correspondiente recién en tiempo de ejecución.

El polimorfismo tiende a existir en las relaciones de herencia, pero no siempre es así.

Polimorfismo

Page 136: 2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 1 IMPLEMENTACION DE APLICACIONES INTERNET

2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 136

Polimorfismo - Ejemplo

La definición del método reside en la clase base.

La implementación del método reside en la clase derivada.

La invocación es resuelta al momento de ejecución.

Transporte

Avanzar

Frenar

Transporte

Avanzar

Frenar

Transporte

Avanzar

Frenar

Transporte

Avanzar

Frenar

Page 137: 2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 1 IMPLEMENTACION DE APLICACIONES INTERNET

2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 137

¿Qué es UML? “UML es un lenguaje visual para especificar, construir

y documentar sistemas” (OMG - Object Management Group)

Unified (UNIFICADO): El aporte de muchos métodos y notaciones Independiente de implementaciones, plataformas y

lenguajes Modeling (MODELADO):

Los modelos son utilizados en todas las ingenierías Language (LENGUAJE):

Si hay gente, requieren comunicarse. Si se tienen que comunicar, se tienen que entender. Para entenderse necesitan un lenguaje común

¡UML no es Metodología!

Page 138: 2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 1 IMPLEMENTACION DE APLICACIONES INTERNET

2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 138

Una Clase en UML

Una clase está compuesta de tres secciones: La primera sección contiene el nombre de

la clase La segunda sección muestra la estructura

(atributos) La tercera sección muestra el

comportamiento (operaciones) La segunda y la tercera sección pueden ser

suprimidas Modificadores de Acceso

Los miembros públicos se denotan con el signo “+”

Los miembros privados se denotan con el signo “–”

+AgregarAlumno()+BorrarAlumno()+GenerarListadoCurso()+EstaCompleto()

-nombre-ubicacion-dias-inicio-fin

Curso

Page 139: 2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 1 IMPLEMENTACION DE APLICACIONES INTERNET

2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 139

¿Qué son las clases?

Una clase describe un conjunto de objetos con un rol ó roles equivalentes en un sistema.

Los objetos, y su división en clases, derivan de:

Cosas tangibles, ó “del mundo real”: libro, curso.

Roles: estudiante, pasajero.

Eventos: llegada, salida, compra.

Interacciones: encuentro, intersección.

Page 140: 2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 1 IMPLEMENTACION DE APLICACIONES INTERNET

2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 140

Identificación de clases

¿Qué hace que un modelo de clases sea bueno?

1. Cada comportamiento que requiera el sistema debe ser proporcionado por los objetos de las clases que se elijan.

2. Un buen modelo de clases está formado, dentro de lo posible, por clases que representan elementos permanentes de los objetos del dominio, independientemente de la funcionalidad requerida en un momento dado.

El secreto de un buen diseño orientado a objetos está en terminar con un modelo de clases que:

no distorsione la realidad conceptual del dominio, y que

permita una implementación coherente de la funcionalidad requerida.

Page 141: 2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 1 IMPLEMENTACION DE APLICACIONES INTERNET

2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 141

Como construir un modelo de clases

La colección de clases en un modelo de diseño probablemente cambiará a lo largo de las iteraciones del desarrollo.

Primero se identifican las clases mas relevantes de los objetos del dominio: pertenecientes al problema obviamente; en vez de aquellas clases introducidas para resolverlo.

Existen dos tendencias principales que se complementan:

1. Diseño dirigido por los datos.

2. Diseño dirigido por la responsabilidad.

Page 142: 2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 1 IMPLEMENTACION DE APLICACIONES INTERNET

2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 142

Datos versus Responsabilidad Las clases tienen tanto datos como responsabilidades.

Una imperfección del diseño dirigido a los datos es que supone la identificación de todos los datos del sistema, para dividirlos en clases antes de considerar las responsabilidades de las clases.

Una técnica: Identificación de nombres.

Una imperfección del diseño dirigido a la responsabilidad es que supone la identificación de todas las responsabilidades en el sistema y su división en clases antes de considerar los datos.

Una técnica: Tarjetas Clase, Responsabilidades, Colaboración – CRC.

Page 143: 2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 1 IMPLEMENTACION DE APLICACIONES INTERNET

2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 143

Identificación de nombres

Se procede en dos etapas:

1. Identificar las clases candidatas seleccionando todos los nombres y locuciones nominales de la especificación de requisitos del sistema.

2. Descartar candidatas inapropiadas, renombrando las clases restantes, si es necesario.

Page 144: 2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 1 IMPLEMENTACION DE APLICACIONES INTERNET

2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 144

Razones para descartar una clase Redundante: A la misma clase se le ha dado mas de un nombre. Deben

distinguirse objetos parecidos que no poseen diferencias suficientes para catalogarlos en clases distintas.

Impreciso: No se puede especificar el significado de un nombre. Hay que eliminar la ambigüedad previo a la decisión si es clase.

Evento u operación: Hace referencia a algo que se hace para, por ó en el sistema.

Metalenguaje: El nombre forma parte de la manera en que se definen las cosas.

Fuera del alcance del sistema: El nombre importa para describir cómo funciona el sistema, no sus aspectos internos.

Atributo: El nombre referencia algo simple, sin comportamiento, que es atributo de otra clase.

Page 145: 2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 1 IMPLEMENTACION DE APLICACIONES INTERNET

2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 145

Tarjetas CRC

Se almacenan:

1. El nombre de la clase

2. Las responsabilidades

3. Los colaboradores

La responsabilidad de la clase describe su propósito a alto nivel.

Una clase debe tener, como máximo, entre tres y cuatro responsabilidades. Frecuentemente tienen una sola.

Demasiadas responsabilidades se corresponden con una cohesión débil del modelo.

Muchos colaboradores indican un fuerte acoplamiento.

Page 146: 2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 1 IMPLEMENTACION DE APLICACIONES INTERNET

2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 146

Asociaciones Corresponden con verbos.

Expresan las relaciones entre clases.

Hay instancias de asociaciones: enlaces, al igual que instancias de clases: objetos. Una instancia de asociación relaciona un par de objetos.

La clase A está asociada con la clase B si:

Un objeto de la clase A envía un mensaje a un objeto de la clase B.

Un objeto de la clase A crea un objeto de la clase B.

Un objeto de la clase A tiene un atributo cuyos valores son objetos ó colecciones de objetos de la clase B.

Un objeto de la clase A recibe un mensaje con un objeto de la clase B como parámetro.

Page 147: 2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 1 IMPLEMENTACION DE APLICACIONES INTERNET

2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 147

Operaciones de una clase Definen las maneras en que los objetos pueden

interactuar.

Un objeto envía un mensaje a otro solicitándole que realice una operación.

El receptor invocará a uno de sus métodos para realizar dicha operación.

El emisor no sabe que método será invocado, ya que puede haber muchos métodos implementando dicha operación en diferentes niveles de la jerarquía.

La firma (signature) de una operación da el selector, los nombres y tipos de cualquier parámetro formal ó argumento de la operación, así como el tipo del valor de retorno.

Page 148: 2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 1 IMPLEMENTACION DE APLICACIONES INTERNET

2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 148

Atributos de una clase

Describen los datos contenidos en un objeto de la clase.

Representación de una clase en UML.

Page 149: 2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 1 IMPLEMENTACION DE APLICACIONES INTERNET

2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 149

Vistas de operaciones y atributos Se tiene una aproximación conceptual y pragmática, que se

intenta hacer consistente.

Permite identificar:

que datos están conceptualmente asociados con un objeto de esa clase, y

que mensajes parece razonables esperar que entienda un objeto.

Debe comprobarse que se han incluido los datos y el comportamiento suficientes para los datos en cuestión, por lo que deberá considerarse cómo trabajan juntos los objetos de las diversas clases para satisfacer los requerimientos del sistema.

Las tarjetas CRC apoyan esta última observación.

Page 150: 2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 1 IMPLEMENTACION DE APLICACIONES INTERNET

2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 150

Ejemplo de diagrama de clases: Una Cuenta Corriente posee como características:

balance

Puede realizar las operaciones de:

depositar

girar

balance

El diseño asociado es:

Page 151: 2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 1 IMPLEMENTACION DE APLICACIONES INTERNET

2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 151

Vista de la clase en el modelo

Page 152: 2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 1 IMPLEMENTACION DE APLICACIONES INTERNET

2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 152

Atributos y Métodos Atributos:

Los atributos o características de una Clase pueden ser de tres tipos: los que definen el grado de comunicación y visibilidad de ellos con el entorno, estos son:

public (+): Indica que el atributo será visible tanto dentro como fuera de la clase, es decir, es accesible desde todos lados.

private (-): Indica que el atributo sólo será accesible desde dentro de la clase: sólo sus métodos lo pueden acceder.

protected (#): Indica que el atributo no será accesible desde fuera de la clase, pero si podrá ser accedido por métodos de la clase además de las subclases que se deriven.

Métodos:

Los métodos u operaciones de una clase son la forma en como ésta interactúa con su entorno, éstos pueden tener las características:

public (+): Indica que el método será visible tanto dentro como fuera de la clase, es decir, es accesible desde todos lados.

private (-): Indica que el método sólo será accesible desde dentro de la clase: sólo otros métodos de la propia clase lo pueden acceder.

protected (#): Indica que el método no será accesible desde fuera de la clase, pero si podrá ser accedido por métodos de la clase, además de por métodos de las subclases que se deriven.

Page 153: 2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 1 IMPLEMENTACION DE APLICACIONES INTERNET

2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 153

Relaciones entre clases Para describir como se pueden interrelacionar dos o

más clases, cada una con características y objetivos diferentes, es necesario explicar el concepto de cardinalidad de relaciones: Multiplicidades.

En UML, la cardinalidad de las relaciones indica el grado y nivel de dependencia.

Se anota en cada extremo de la relación y éstas pueden ser:

uno o muchos: 1..* (1..n)

0 o muchos: 0..* (0..n)

número exacto ó fijo: m (m denota el número).

Page 154: 2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 1 IMPLEMENTACION DE APLICACIONES INTERNET

2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 154

Herencia (Especialización / Generalización) Indica que una subclase

hereda los métodos y atributos especificados por una Super Clase.

Por tanto, la Subclase, además de poseer sus propios métodos y atributos, poseerá las características y atributos visibles de la Super Clase (public y protected).

El ejemplo especifica que Auto y Camión heredan de Vehículo.

Page 155: 2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 1 IMPLEMENTACION DE APLICACIONES INTERNET

2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 155

Agregación Para modelar objetos complejos no bastan los tipos de datos

básicos que proveen los lenguajes: enteros, reales y secuencias de caracteres.

Cuando se requiere componer objetos que son instancias de clases definidas por el desarrollador de la aplicación, tenemos dos posibilidades:

1. Por Valor: Es un tipo de relación estática, en donde el tiempo de vida del objeto incluido esta condicionado por el tiempo de vida del que lo incluye. Este tipo de relación es comúnmente llamada Composición: el Objeto base se construye a partir del objeto incluido, es decir, es "parte/todo".

2. Por Referencia: Es un tipo de relación dinámica, en donde el tiempo de vida del objeto incluido es independiente del que lo incluye. Este tipo de relación es comúnmente llamada Agregación: el objeto base utiliza al incluido para su funcionamiento.

Page 156: 2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 1 IMPLEMENTACION DE APLICACIONES INTERNET

2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 156

Ejemplo de Agregación

Page 157: 2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 1 IMPLEMENTACION DE APLICACIONES INTERNET

2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 157

Asociación

Permite asociar objetos que colaboran entre si.

No es una relación fuerte, es decir, el tiempo de vida de un objeto no depende del otro.

Ejemplo:

Page 158: 2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 1 IMPLEMENTACION DE APLICACIONES INTERNET

2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 158

Dependencia o Instanciación (uso)

Representa un tipo de relación muy particular, en la que una clase es instanciada: su instanciación es dependiente de otro objeto/clase.

Se denota por una flecha punteada.

El uso más particular de este tipo de relación es para denotar la dependencia que tiene una clase de otra, como por ejemplo una aplicación grafica que instancia una ventana: la creación del Objeto Ventana esta condicionado a la instanciación proveniente desde el objeto Aplicación.

Page 159: 2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 1 IMPLEMENTACION DE APLICACIONES INTERNET

2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 159

Clase Abstracta Una clase abstracta se denota con el nombre de la

clase y de los métodos con letra "itálica".

Esto indica que la clase definida no puede ser instanciada pues posee métodos abstractos: métodos que aún no han sido definidos, es decir, sin implementación.

La única forma de utilizarla es definiendo subclases que implementen los métodos abstractos definidos.

Page 160: 2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 1 IMPLEMENTACION DE APLICACIONES INTERNET

2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 160

Clase parametrizada Una clase parametrizada se denota con un subcuadro en el extremo

superior de la clase, en donde se especifican los parámetros que deben ser pasados a la clase para que esta pueda ser instanciada.

El ejemplo típico es el caso de un Diccionario, en donde una llave o palabra tiene asociado un significado, pero en este caso las llaves y elementos pueden ser genéricos.

La genericidad puede venir dada de una plantilla (template), como en el caso de C++, o bien de alguna estructura predefinida: especialización a través de clases.

En el ejemplo no se especificaron los atributos del Diccionario, pues ellos dependerán exclusivamente de la implementación que se le quiera dar.

Page 161: 2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 1 IMPLEMENTACION DE APLICACIONES INTERNET

2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 161

Fuentes de información

Juan José Aranda Aboy:

Programación en Objetos

Fundamentos de UML parte 1

Programa Microsoft Desarrollador Cinco Estrellas:

DCE0_IntroduccionOrientacionAObjetos.ppt

DCE0_ProgramacionOO_C#_VBNET.ppt

Page 162: 2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 1 IMPLEMENTACION DE APLICACIONES INTERNET

2008 Universidad de Las Américas - Implementación de Aplicaciones para la Internet - Dr. Juan José Aranda Aboy 162

Referencias en Internet - UML Desarrollo Orientado a Objetos con UML

Tutorial de UML DCC UChile (versión ZIP)

Introducción a UML

UML con ArgoUML y Poseidon

UML® Resource Page

TOUR POR UML

Programación: Ingeniería de Software:

¿Qué es UML?

UML: Análisis y Diseño Orientado a Objetos

UML Guía Visual

Base de Datos y UML