Java Intro

  • Uploaded by: Cindy
  • 0
  • 0
  • May 2020
  • PDF

This document was uploaded by user and they confirmed that they have the permission to share it. If you are author or own the copyright of this book, please report to us by using this DMCA report form. Report DMCA


Overview

Download & View Java Intro as PDF for free.

More details

  • Words: 4,131
  • Pages: 38
UPSUM MBA.RAFAEL ADONAHI AGUILERA ALFARO PROGRAMACION III

Nota: Este programa esta hecho para la versión 6 de NetBeans. Nota: antes de seguir adelante es conveniente que hagamos un repaso sobre la convención en Java respecto a la utilización de las letras mayúsculas y minúsculas en los nombres en el Apéndice - Convenciones Java y UML Mayúsculas y minúsculas (I) El IDE NetBeans es un entorno de desarrollo Open Source escrito en Java. Como este será el entorno de desarrollo utilizado durante el curso, es conveniente realizar un programa donde veamos todos los temas que vemos en la parte inferior, que será la impresión de nuestro nombre crear un nuevo proyecto crear un nuevo paquete crear una nueva Clase compilar una Clase ejecutar una Clase

Convenciones Java y UML Mayúsculas y minúsculas (I) En Java existen una serie de convenciones con lo que respecta a la escritura de los Paquetes, Clases, Métodos y Variables. Paquete todas las letras en minúsculas esteesunpaquete Clases la primera letra de la primera palabra compuesta en mayúsculas la primera letra de la segunda y restantes palabras compuesta en mayúsculas EstaEsUnaClase Métodos la primera letra de la primera palabra compuesta en minúsculas la primera letra de la segunda y restantes palabras compuesta en mayúsculas esteEsUnMetodo() Variables igual que los métodos estaEsUnaVariable

MBA.RAFAEL ADONAHI AGUILERA ALFARO PROGRAMACION III UNIVERSIDAD PRIVADA DEL SUR DE MÉXICO

Crear un nuevo proyecto NetBeans al igual que la mayoría de los entornos de desarrollo, aloja sus aplicaciones en proyectos •estos proyectos sólo tienen sentido cuando estamos desarrollando cuando una aplicación pasa a producción, el concepto de proyecto del entorno de desarrollo se pierde En nuestro caso, crearemos un proyecto llamado rafaelaguilera siguiendo los siguientes pasos elegimos Archivo | Nuevo Proyecto...

MBA.RAFAEL ADONAHI AGUILERA ALFARO PROGRAMACION III UNIVERSIDAD PRIVADA DEL SUR DE MÉXICO

en el cuadro de dialogo New Project elegimos Java y Java Application y seguidamente hacemos clic sobre el botón

MBA.RAFAEL ADONAHI AGUILERA ALFARO PROGRAMACION III UNIVERSIDAD PRIVADA DEL SUR DE MÉXICO

en el cuadro de diálogo Nuevo aplicación javao tenemos que rellenar los siguientes campos •Nuevo proyecto: prorafaelaguilera durante el curso seguiremos una convención a nivel didáctico que va a consistir en poner el prefijo pro a todos los nombres de los proyectos que crearemos •Ubicación del proyecto: C:\isg\j2se\prorafaelaguilera vamos a hacer clic sobre el botón EXAMINAR para indicar que queremos que nuestro proyecto se aloje en tal directorio, o para cambiar la ruta. Crear clase principal: no lo marcamos Configurar como proyecto principal: Lo marcamos

MBA.RAFAEL ADONAHI AGUILERA ALFARO PROGRAMACION III UNIVERSIDAD PRIVADA DEL SUR DE MÉXICO

Crear un nuevo paquete Cuando estamos realizando aplicaciones , tenemos que incluir las Clases de nuestra aplicación en paquetes (packages) para poder obtener una serie de ventajas que ya veremos más adelante •estos paquetes tienen sentido tanto en el proceso de desarrollo como en el de producción •los paquetes no están ligados a un entrono de desarrollo, sino que es una parte integral y esencial del lenguaje Java En nuestro caso, crearemos un paquete llamado paqrafaelaguilera siguiendo los siguientes pasos nos situamos en la ventana Proyectos y con el botón derecho del ratón seleccionamos la carpeta Paquete Java correspondiente al proyecto prorafaelaguilera que acabamos de crear. elegimos Nuevo | Paquete Java...

MBA.RAFAEL ADONAHI AGUILERA ALFARO PROGRAMACION III UNIVERSIDAD PRIVADA DEL SUR DE MÉXICO

MBA.RAFAEL ADONAHI AGUILERA ALFARO PROGRAMACION III UNIVERSIDAD PRIVADA DEL SUR DE MÉXICO

y en el cuadro de diálogo Nuevo Paquete de Java introducimos el nombre del paquete paqrafaelaguilera y hacemos clic sobre el botón

MBA.RAFAEL ADONAHI AGUILERA ALFARO PROGRAMACION III UNIVERSIDAD PRIVADA DEL SUR DE MÉXICO

Crear una nueva Clase En Java los programas o aplicaciones se escriben en ficheros que tienen la extensión .java •una aplicación puede tener uno o más ficheros con extensión .java •cada uno de estos ficheros .java contiene una Clase cada vez que se crea una nueva Clase, se crea su correspondiente fichero con el nombre de la Clase y con extensión .java En nuestro caso, vamos a crear una Clase que la vamos a llamar Rafaelaguilera siguiendo los siguientes pasos nos situamos en la ventana Proyecto y con el botón derecho del ratón seleccionamos el paquete paqrafaelaguilera elegimos nuevo | Otros...

MBA.RAFAEL ADONAHI AGUILERA ALFARO PROGRAMACION III UNIVERSIDAD PRIVADA DEL SUR DE MÉXICO

en el cuadro de diálogo Archivo Nuevo elegimos la categoría Java y el tipo de fichero Clase main Java y hacemos clic sobre el botón

MBA.RAFAEL ADONAHI AGUILERA ALFARO PROGRAMACION III UNIVERSIDAD PRIVADA DEL SUR DE MÉXICO

el campo de Texto Nombre de la clase indicamos que la Clase se va a llamar Rafaelaguilera y hacemos clic sobre el botón

MBA.RAFAEL ADONAHI AGUILERA ALFARO PROGRAMACION III UNIVERSIDAD PRIVADA DEL SUR DE MÉXICO

MBA.RAFAEL ADONAHI AGUILERA ALFARO PROGRAMACION III UNIVERSIDAD PRIVADA DEL SUR DE MÉXICO

Este es el código generado por el Asistente de NetBeans

package paqrafaelaguilera; public class Rafaelaguilera { public static void main(String[] args) { // TODO code application logic here } }

•package paqrafaelaguilera; oen esta primera línea de código, estamos indicando que la clase Rafaelaguilera pertenece al paquete paqrafaelaguilera •public class Rafaelaguilera { } oaquí estamos declarando el nombre de la Clase oes muy importante mencionar que todo código Java que se escriba tiene que estar obligatoriamente incluido dentro de una Clase es decir el código java siempre estará dentro del bloque (indicado entre llaves {}) de esa Clase •public static void main(String[] args) { } oaquí estamos declarando el método main(...) ode momento saber que la MVJ (Máquina virtual Java) cuando tiene que ejecutar la aplicación Rafaelaguilera, lo primero que hace es buscar este método como punto de entrada a la aplicación Y para que nos muestre el mensaje ISC.MBA.RAFAEL ADONAHI AGUILERA ALFARO..., tenemos que añadir el siguiente código al método main(...) Nota: Podemos ahorrarnos toda la escritura de la línea System.out.println(""); escribiendo sout y seguidamente presionando la tecla tabulador

MBA.RAFAEL ADONAHI AGUILERA ALFARO PROGRAMACION III UNIVERSIDAD PRIVADA DEL SUR DE MÉXICO

public static void main(String[] args) { System.out.println(“ISC.MBA.RAFAEL ADONAHI AGUILERA ALFARO"); }

•System.out.prinln(“ISC.MBA.RAFAEL ADONAHI AGUILERA ALFARO"); ode momento sólo saber que “ISC.MBA.RAFAEL ADONAHI AGUILERA ALFARO" es un String que se muestra como mensaje de salida

MBA.RAFAEL ADONAHI AGUILERA ALFARO PROGRAMACION III UNIVERSIDAD PRIVADA DEL SUR DE MÉXICO

Compilar una Clase En Java, las Clases compiladas se encuentran en ficheros que tienen la extensión .class •al contenido de estas clases se le denomina código byte •si no tuviéramos un IDE como NetBeans tendríamos que ejecutar el comando javac En nuestro caso, compilaremos la Clase Rafaelaguilera situándonos en la ventana Proyectos. Seguidamente seleccionamos con el botón derecho del ratón la Clase Rafaelaguilera.java y elegimos CompilareArchivo F9. Esta acción hace que Netbeans ejecute de forma transparente para nosotros el comando javac

MBA.RAFAEL ADONAHI AGUILERA ALFARO PROGRAMACION III UNIVERSIDAD PRIVADA DEL SUR DE MÉXICO

Ejecutar una Clase A diferencia de los lenguajes compilados que ejecutamos ficheros con la extensión .exe, en java se ejecutan los ficheros con extensión .class •si no tuviéramos un IDE como NetBeans tendríamos que ejecutar el comando java, cuya utilización ya veremos más adelante Para ejecutar la Clase Rafaelaguilera nos vamos a situar en la ventana Proyectos. Seguidamente seleccionamos con el botón derecho del ratón la Clase Rafaelaguilera.java y elegimos Ejecutar Archivo Mayúsculas+F6

MBA.RAFAEL ADONAHI AGUILERA ALFARO PROGRAMACION III UNIVERSIDAD PRIVADA DEL SUR DE MÉXICO

finalmente ya vemos el mensaje “ISC.MBA. Rafael Adonahi Aguilera" en la ventana Output

MBA.RAFAEL ADONAHI AGUILERA ALFARO PROGRAMACION III UNIVERSIDAD PRIVADA DEL SUR DE MÉXICO

JAVA Y UML Consideraciones sobre UML UML (Unified Modeling Language) es un lenguaje estándar para escribir planos de software. UML permite modelar desde sistemas de información empresariales hasta aplicaciones distribuidas basadas en web. Alguien que pretenda desarrollar software con exito debe crear software de calidad que satisfaga las necesidades cambiantes de sus cLientes. El desarrollo debe ser predecible, con un uso eficiente de recursos. El software debe tener una sólida base arquitectónica que sea flexible al cambio. Esto generará un negocio sostenible. El modelado es la parte medular de todas las actividades que conducen a la creación de software de calidad.

MBA.RAFAEL ADONAHI AGUILERA ALFARO PROGRAMACION III UNIVERSIDAD PRIVADA DEL SUR DE MÉXICO

Para qué se construyen modelos? Algunas de las respuestas posibles son Para comprender mejor el sistema que está bajo desarrollo Para descubrir posibilidades de simplificación y reutilización Para minimizar los posibles riesgos UML es un lenguaje para visualizar, especificar, construir y documentar. Siendo lo suficientemente expresivo, permite modelar sistemas que no son software . Se ha usado en dominios tales como: Sistemas de información corporativos Entidades financieras Telecomunicaciones Transporte Defensa Desarrollos aeroespaciales Ciencias Servicios distribuidos basados en web

Java es, entre otras cosas: Orientado a objetos Portable Open source Sin costo Eficiente Seguro Amplia integración a la web Robusto

Identificar y plantear el problema Para producir software que cumpla su propósito hay que obtener los requisitos del sistema, esto se consigue conociendo de una forma disciplinada a los usuarios y haciéndolos participar de manera activa para que no queden “cabos sueltos”. Para conseguir un software de calidad, que sea duradero y fácil de mantener hay que idear una sólida base arquitectónica que sea flexible al cambio. Para desarrollar software rápida y eficientemente; minimizando el trabajo de recodificación y evitando crear miles de líneas de código inútil hay que disponer, además de la gente y las herramientas necesarias, de un enfoque apropiado. Para conseguir que a la hora de desarrollar software de manera industrial se obtenga un producto de calidad, es completamente necesario seguir cierta pautas y no abordar los problemas sin pensarlo, con el fin de obtener un modelo que represente lo suficientemente bien el problema que hacemos de abordar. El modelado es la espina dorsal del desarrollo de software de calidad. Se construyeron modelos para poder comunicarnos con otros, para explicar el comportamiento del sistema a desarrollar, para comprender nosotros mismos, mejor ese sistema, para controlar el riesgo y en definitiva para poder atacar problemas que sin el modelado su resolución seria imposible, tanto desde el punto de vista de los desarrolladores(no se pueden cumplir los plazos estimado, no se consigue ajustar los presupuestos) como desde el punto de vista del cliente, desde que no se cumplen las especificaciones hasta fallos que dejan inutilizando el sistema. Cuando nos referimos al desarrollo de software en el ámbito industrial, no se pretende que la capacidad de modelar se reduzca a empresas que disponen de gran numero de empleados o empresas que han de abordar proyectos eminentemente grandiosos, si no que nos referimos, si no que nos referimos a la capacidad de obtener un producto comercial(sea cual sea su costo o tamaño) que cumpla lo que en la industria se suele denominar como calidad total y que además pueda reportar beneficios a corto o mediano plazo, evitando, por ejemplo, implantaciones casi eternas debido a las falta de previsión o al haber abordado los problemas muy a la ligera. Por todas estas razones es inevitable el uso de modelos. Un modelo es una simplificación de la realidad. El modelo nos proporciona los planos de un sistema, desde los más generales, que proporcionan una visión general del sistema, hasta los mas detallados. En un modelo se han de incluir los elementos que tengan más relevancia y omitir los que no son interesantes para el nivel de abstracción que se ha elegido.

. A través del modelado conseguimos cuatro objetivos Los modelos ayudan a visualizar como es o queremos que sea un sistema Los modelos nos permiten especificar la estructura o el comportamiento de un sistema Los modelos nos proporcionan plantilla que nos guían en las construcciones de un sistema. Los modelos documentan decisiones que hemos adoptado

En la realidad, no siempre se hace un modelado formal, la probabilidad de que exista un modelado formal para abordar un sistema es inversamente proporcional a la complejidad del mismo, esto es, cuanto mas fácil es un problema, menos tiempo se pasa modelando y esto es por que cuando hay que aportar unas solución a un problema complejo el uso del modelado nos ayuda a comprenderlo, mientras que cuando tenemos un problema fácil el uso del modelado que hacemos se reduce a representar mentalmente el problema o como mucho a escribir unos cuantos garabatos sobre un papel.

Hay cuatro principios básicos, estos son fruto de la experiencia de las ramas de la ingeniería: a) la elección de que modelos se creen influye directamente sobre como se acomete el problema. Hay que seleccionar el modelo adecuado para cada momento y dependiendo de que modelo se elija se obtendrán diferentes beneficios y diferentes costos.En la industria de software se ha comprobado que un modelado orientado a objetos proporciona una arquitectura mas flexible y readaptable que otros por ejemplo orientados ala funcionalidad o a los datos. b)Todo modelo puede ser expresado a diferentes niveles de precision.Esto es, necesario poder selecciona el nivel de detalle que se desea ya que en diferentes partes de un proyecto y en diferentes etapas se tendrán determinadas necesidades. c) Los mejores modelos están ligados a la realidad. Lo principal es tener modelos que nos permitan representar la realidad mas claramente posible, pero no sólo esto, tenemos que saber, exactamente cuando se apartan de la realidad para no caer en la ocultación de ningún detalle importante. d) Un único modelo no es suficiente. Cualquier sistema que no se trivial se afronta mejor desde pequeños modelos casi independientes, que los podamos construir y estudiar independientemente y que nos representen las parte mas diferenciados del sistemas y sus interrelaciones.

Para poner un poco de orden sobre todo lo que respecta a la modelizacion de sistemas de software, aparece UML (unified modeling lenguaje, Lenguaje unificado de modelado) que pretende unificar las 3 metodologías difundidas (OMT, Bootch y OOSE) e intentar que la industria de software termine su maduración como ingeniería. Y lo consigue en tal manera que lo que UML proporciona son las herramientas necesarias para poder obtener los planos de software equivalente a los que se utilizan en la construcción, la mecánica o la industria aeroespacial. UML abarca todas la fases del ciclo de vida de un proyecto, soporta diferente maneras de visualización dependiendo de quien tenga que interpretar los planos en que fase del proyecto se encuentre. Aquí vuelvo a poner la definición de modelo, para que quede mas claro el concepto. ¿Que es un modelo? Es una simplificación de la realidad. El modelo nos proporciona los planos de un sistema, desde los mas generales, que proporcionan una visión general del sistema, hasta lo mas detallado. En un modelo de tienen que incluir los elemento que tengan mas reelevancia y omitir los que no son interesante para el nivel de abstracción que se ha elegido.

Modelar sus clases Vas a ver un ejemplo de un modelado de clases en UML, repetiremos algunos conceptos como clases, una clases es una descripción de un conjunto de objetos que comparten los mismos atributos, operaciones, relaciones y semántica. Hay que hacer una especial diferenciación para no confundir el concepto de clases con el objeto.Un objeto es una instancia individual de una clase, así podríamos tener una clase que fuera de monitores y un objeto de la clase de monitores que fuera un monitor marca “A” de 17 pulgadas, con la pantalla plana.En UML se usa un rectángulo para representar las classes, con distintos compartimientos para indicar sus atributos y sus operaciones. Una clase se identifica por un nombre que la distingue del resto, el nombre es una cadena de texto. Ese nombre sólo se denomina nombre simple, un nombre de camino consta del nombre de la clase precedido del nombre del paquete en el que se encuentra incluida. En las figuras posteriores podemos ver la estructura de una clases y distintos nombre de camino y nombres simples

MONITOR MARCA MODELO ENCENDER ()

Nombre Atributos Operaciones

Un atributo es una propiedad de una clase identificada con un nombre, describe un rango de valores que pueden tomas las instancias de la propiedad. Los atributos representan propiedades comunes a todos los objetos de una determinada clase, por ejemplo todos los monitores tienen la propiedad dimensión, que se suele medir en pulgadas. Un cliente tiene las propiedades nombre, apellidos, dirección, teléfono. Los atributos son propiedades interesantes de las clases. Una instancia de una determinada clase tendrá valores concretos para sus atributos, mientras que las clases tienen rangos de valores que pueden admitir sus atributos. El nombre de los atributos es un texto que normalmente se escribe en minúsculas si solo es una palabra o la primera palabra del nombre del atributo en minúsculas y el resto de las palabras con la primera letra en mayúsculas, por ejemplo, nombrePropietario. Una operación es una implementación de un servicio que puede ser requerido a cualquier objeto de la clase para que muestre su comportamiento. Una operación representa algo que el objeto puede hacer, por ejemplo, un comportamiento esperado por cualquier usuario de un monitor es que este pueda encender y apagar.El nombre de las operaciones sigue las mismas reglas de notación que los atributos pero suelen ser verbos que indican una acción o comportamiento de clase.

Modelar relaciones entre clases Las relaciones son la manera de representa las interacciones entre clases, ejemplo, un teclado el cual sin estar conectado a un CPU es totalmente inútil, además si la CPU cambiase su conector de teclado este ya no se podría conectar a no ser que cambiase el también. Para representar con UML como se conectan las cosas entres si, ya sea logia o ficiscamente, utilizamos las relaciones. Existen 3 tipos de relaciones importantes: Dependencias, generalizaciones y asociaciones. Dependencia: Es la relación de uso entre dos elementos de manera que un cambio en la especificación del elemento independiente puede afectar a otro elemento implicado en la relación.. Ejemplo: Supongamos que tenemos una clase que representa un aparato reproductor de video, dependemos directamente de la clase de canal ya que grabaremos un canal u otro dependiendo de cual tenga seleccionando aparato de video. A su vez clase televisión también depende de la clase canal para poder visualizar un determinado canal por la televisión.

Video

Televisión canal

Cabezales Tipo Reproducción

Pulgadas num Canales

Frecuencia poner () pasar() rebobinar() parar() grabar(c:canal)

buscar() fijar()

encender () apagar() cambiar(c:Canal)

En esta figura podemos observar un ejemplo de relación de dependencia. Si en algún momento la clase canal cambiara (se modificara o añadiera la nueva funcionalidad) las clases video y televisión (que dependen de ella) podrían verse afectadas por el cambio y dejar de funcionar. Como podemos observar en esta figura tanto el método grabar () de la clase video, como al método cambiar() de la clase televisión se le ha añadido mas semántica representando el parámetro c del tipo canal. Este es un mecanismo común en UML de diseño avanzado de clases. Cuando queremos aportar mas información sobre una clase y sus métodos existe una nomenclatura bien definida para determinar mas los atributos y métodos de la clase indicando si son ocultos o públicos, tipo de datos, parámetros y que datos retornan.

Generalización: Una relación entre un elemento general (llamado súper clase o padre) y un caso mas especifico de ese elemento (llamado subclase o hijo).La generalización implica que los objetos hijo se pueden utilizar en cualquier lugar donde aparece el padre, pero no a la inversa. La clase hijo siempre hereda todos los atributos y métodos de sus clases padres y a menudo (no siempre) el hijo extiende los atributos y operaciones del padre. Una operación de un hijo puede tener la misma signatura que en el padre pero la operación puede ser definida por el hijo, esto se le conoce como polimorfismo.La generalización se representa mediante una flecha dirigida con la punta hueca. Una clase puede tener ninguno, uno o varios padres. Una clase sin padre y uno o mas hijos se denomina clase raíz o clase base. Una clase sin hijos se denomina clase hoja. Una clase con un único padre se dice que utiliza herencia simple y una clase con varios padres se dice que utiliza múltiple. UML utiliza relaciones de generalización para el modelado de clases e interfaces, pero también se utilizan para establecer generalizaciones entre otros elementos.

Figura

Origen Mover() Cambiar tamaño() dibujar()

Rectangulo

Circulo

Polígono

Esquina:Pu nto

Radio:Float

Puntos:list a

dibujar()

Cuadrado

Mediante las relaciones de generalización podemos ver que un cuadrado es un tipo de rectángulo que a su vez es un tipo de figura. Con esta relación podemos representar la herencia, de este modo, la clase cuadrado, simplemente por herencia sabemos que tiene dos atributos, esquina (heredado de su padre rectángulo)y origen(heredado del padre rectángulo, la clase figura, que se puede decir que es su abuelo). Lo mismo ocurre con las operaciones, la clase cuadrado dispone de las operaciones mover (), cambiar tamaño () y dibujar () heredadas todas desde figura. Normalmente la herencia simple es suficiente para modelar los problemas a los que enfrentamos pero en ciertas ocasiones conviene modelar mediante herencia múltiple aunque vistos en esta situación se ha de ser extremadamente cuidadoso en no realizar herencia múltiple desde padres que solapen la estructura o comportamiento:

Ejemplo de herencia múltiple

Vehiculo

Vehiculo Terrestre

Coche

Moto

Vehiculo Acuatico

Tanque

Barco

Submarino

Vehiculo Aereo

Vehiculo Anfibio

Avión

Globo

Asociación: Es una relación estructural que específica que los objetos de un elemento esta conectados con los objetos de otro. Dad una asociación entre dos clases, se puede navegar desde un objeto de una de ellas hasta uno de los objetos de la otra, y vicervera Es posible que la asociación se de de manera recursiva en un objeto, esto significa que dado un objeto de la clase se puede conectar con otros objetos de la misma clase. También es posible, auque menos frecuente, que se conecten mas de dos clases, esta se suellen llamar asociaciones n-arias. Las relaciones de asociaciones se utilizan cuando se quieren representar relaciones estructurales. A parte de la forma básica de representar las asociaciones, mediante una linea continua entre las clases involucradas en la relacion, existe cuatro adornos que se aplican a las asociaciones para facilitar su comprensión: Nombre: Se utiliza para describir la naturaleza de la relación. Para que no existe ambigüedad en su significado se le puede dar una dirección al nombre por medio de una flecha que apunte en la dirección que se pretende que el nombre sea leído. Rol: Cuando una clase participa en una asociación esta tiene un rol especifico que juega en dicha asociación. El rol es la cara que dicha clase presenta a la clase que se encuentra en el otro extremo. Las clases pueden jugar el mismo o diferentes toles en otras asociaciones.

Multiplicidad: En muchas situaciones del modelado es conveniente señalar cuantos objetos se pueden conectar a través de una instancia de la asociación. Este cuantos se denomina multiplicidad del rol en la asociación y se expresa con un rango de valores o un valor explicito. Cuando se indica multiplicidad en un extremo de una asociación se esta indicando que, para cada objeto de la clase en el extremo opuesto debe haber tantos objetos en este extremo.Se puede indicar la multiplicidad de exactamente uno, cero o uno (0…1), muchos (0,,,*), uno o mas(1,,,,*) e incluso un numero exacto (por ejemplo,5) Agregación: Una asociación normal entres dos clases representa una relación estructural entre iguales, es decir, ambas clases están conceptualmente al mismo nivel. A veces interesa representar relaciones del tipo “todo/parte” en las cuales una cosa representa la cosa grande (el todo) que consta de elementos mas pequeños (las partes).este tipo de relación se denomina agregación la cual representa una relación del tipo “tiene-un”. Una agregación es solo un tipo especial de asociación, esta se especifica añadiendo simplemente un rombo vació en la parte del todo. Composición: Es una variación de la agregación simple que añade una semántica importante. La composición es una forma de agregación, con una fuerte relación de pertenencia y vidad coincidentes de la parte del todo. Las partes con una multiplicidad no fijada puede crearse después de la parte que representa el todo (la parte compuesta) una vez creadas pertenecen a ella de manera que viven y mueren con ella. Las partes pueden ser eliminadas antes que el todo sea destruido pero una vez que este se elimine todas sus partes serán destruidas.El todo, se ha de encargar de toda la gestión de sus partes, creación, mantenimiento, disposición veamos el ejemplo de composición donde un marco pertenece a una ventana, pero ese marco no es compartido por ninguna otra ventana, esto contrasta con la agregación simple en la que una parte puede ser compartida por varios objetos agregados, ejemplo una pared puede ser compartida por varias habitaciones.

Ejemplo de asociación y sus partes

Multiplicidad

Persona

nombre

1.. * Trabaja Para Empleado

* patrón

Nombre del rol

Empresa

Ejemplo de agregación 1

*

Empresa

Departamento

parte

todo Ejemplo de Composición

Ventana

todo

1

Composición

*

Marco

parte

Related Documents

Java Intro
May 2020 6
Java Intro
May 2020 7
Java Intro
May 2020 11
Intro De Java Script
October 2019 18
Intro To Java
November 2019 16

More Documents from "Gopinath"

May 2020 6
Pa Usa
May 2020 8
Cap Ii
May 2020 16
December 2019 10