Sei sulla pagina 1di 5

Ciencia para el progreso

UNIVERSIDAD AUTNOMA DEL CARIBE


FACULTAD DE INGENIERA
PROGRAMA DE ING. DE SISTEMAS
2006-01

LABORATORIO DE
PROGRAMACIN
GENERAL - BI0002
SEMANA

TALLER
TEMA: CLASES COMPUESTAS Y VECTOR DE OBJETOS.
I.

OBJETIVOS.
Aplicar el concepto de clases compuestas en java en la solucin de un
problema.

II.

CONCEPTUALIZACION
La clase compuesta es aquella que tiene atributos que son asimismo referencias a
objetos de clases. Estas referencias pueden apuntar a objetos creados por fuera de
clase en cuyo caso deberan inicializarse por el constructor de la clase compuesta.
En otros casos los objetos se crean dentro de la clase en el constructor o en otro
mtodo.
De las clases compuestas se crean objetos compuestos que tienen una relacin
tiene-un, o es parte de, con los objetos componentes. Estos a su vez pueden ser
tambin compuestos.
Carro

Moto
r

chasi
s

Para modelar la relacin entre la clase compuesta y sus otras clases se utiliza la
relacin Agregacin.

Agregacin:
Para modelar objetos complejos, n bastan los tipos de datos bsicos
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 aplicacin,
tenemos dos posibilidades:

Por Valor: Es un tipo de relacin esttica, en donde el tiempo de


vida del objeto incluido esta condicionado por el tiempo de vida
del que lo incluye. Este tipo de relacin es comunmente llamada
Composicin (el Objeto base se contruye a partir del objeto
incluido, es decir, es "parte/todo").

Por Referencia: Es un tipo de relacin dinmica, en donde el


tiempo de vida del objeto incluido es independiente del que lo
incluye. Este tipo de relacin es comunmente llamada

Programa de Ing. de Sistemas UAC.

Ciencia para el progreso

UNIVERSIDAD AUTNOMA DEL CARIBE


FACULTAD DE INGENIERA

LABORATORIO DE
PROGRAMACIN
GENERAL - BI0002

PROGRAMA DE ING. DE SISTEMAS


2006-01

SEMANA

Agregacin (el objeto base utiliza al incluido para su


funcionamiento).
Un Ejemplo es el siguiente:

En donde se destaca que:


Un Almacen posee Clientes y Cuentas (los rombos van en el objeto que posee las
referencias).
Cuando se destruye el Objeto Almacen tambin son destruidos los objetos Cuenta
asociados, en cambio no son afectados los objetos Cliente asociados.
La composicin (por Valor) se destaca por un rombo relleno.
La agregacin (por Referencia) se destaca por un rombo transparente.
La flecha en este tipo de relacin indica la navegabilidad del objeto refereniado.
Cuando no existe este tipo de particularidad la flecha se elimina.

III.

TALLER EXPLICATIVO.
Se trabajara con varias clases, cada clase deber estar en un archivo de java. Todos
los archivos deben de quedar en la misma carpeta porque el paquete al cual
pertenecen es el mismo directorio.
//Archivo Cliente.java
public class Cliente{
private String cedula,nom;
public Cliente(String cedula,String nom)
{
this.cedula=cedula;
this.nom=nom;
}
public String getCedula()
{
return cedula;
}
public String getNom()
{
return nom;
}
public void mostrar()
{
System.out.println(" ced"+cedula+" "+"nom "+nom);
}
}
// Archivo Articulo.java

Programa de Ing. de Sistemas UAC.

Ciencia para el progreso

UNIVERSIDAD AUTNOMA DEL CARIBE


FACULTAD DE INGENIERA
PROGRAMA DE ING. DE SISTEMAS
2006-01

LABORATORIO DE
PROGRAMACIN
GENERAL - BI0002
SEMANA

public class Articulo{


private String ref,nombre;
private float costo,exis;
public Articulo(String ref,String nombre,float costo,float exis)
{
this.ref=ref;
this.costo=costo;
this.exis=exis;
this.nombre=nombre;
}
public void Adicionar(float e)
{
exis=exis+e;
}
public void promcosto(float nuevocosto)
{
if(nuevocosto!=costo)
{
costo=(costo+nuevocosto)/2;
}
}
public String getRef()
{
return ref;
}
public void mostrar()
{
System.out.println(" ref "+ref+" costo="+costo+" exis
"+exis);
}
}
//Archivo OrdenCompra.java
public class OrdenCompra{
private static int cod=0;
private String codorden;
Cliente c;
Articulo a;
Date fo ;
float cant,costo,total;
public OrdenCompra(Cliente c, Articulo a,float cant,float costo)
{
this.cant=cant;
this.costo=costo;
this.c=c;
this.a=a;
total=costo*cant;
cod++;
codorden=String.valueOf(cod);
fo= new Date();
fo.setYear(2004);
a.Adicionar(cant);
a.promcosto(costo);

Programa de Ing. de Sistemas UAC.

Ciencia para el progreso

UNIVERSIDAD AUTNOMA DEL CARIBE


FACULTAD DE INGENIERA

LABORATORIO DE
PROGRAMACIN
GENERAL - BI0002

PROGRAMA DE ING. DE SISTEMAS


2006-01

SEMANA

}
public void imprimir()
{
System.out.print(" orden "+codorden);
System.out.println(" cliente "+c.getCedula()+"
"+c.getNom());
System.out.println(" Articulo "+a.getRef()+" "+cant+" cos
"+costo+" total="+total);
System.out.print(" fecha Orden "+fo.getDate()+"/"+fo.getMonth()
+"/"+fo.getYear());
}
public static void main(String hhh[])
{
Cliente c = new Cliente("7112","Carlos H");
c.mostrar();
Articulo a=new Articulo("01","silla cc",23500,10);
a.mostrar();
OrdenCompra o1= new OrdenCompra(c,a,10,24000);
o1.imprimir();
a.mostrar();
}
}

//Tres archivos, complelos y ejecute el archivo OrdenCompra


IV. TALLER EN CLASE

Crear los mtodos get para la clase OrdenCompra


Implemente un men para :
o Crear clientes, articulo y ordenes de compra
o Consulta
o Listado de clientes con ordenes de compra
o Nota: utilice vectores de objetos

V. TALLER EN CASA.
La Biblioteca de la universidad le pide hacer un programa para gestionar el
prstamo y devolucin de sus libros. La biblioteca maneja informacin como
nombre, ciudad, nmero de libros y numero de libros prestados.
Se sabe que una biblioteca tiene libros con las siguientes caractersticas:
Libros de consulta
oSe pueden prestar hasta por 4 das
oTienen como caractersticas autores, titulo, editorial cantidad etc.
oMulta por da $1000
En la biblioteca se tiene la informacin de todos los libros, cuando un lector busque
un libro determinado se debe verificar que existen ejemplares para prestar el libro.

Programa de Ing. de Sistemas UAC.

Ciencia para el progreso

UNIVERSIDAD AUTNOMA DEL CARIBE


FACULTAD DE INGENIERA
PROGRAMA DE ING. DE SISTEMAS
2006-01

LABORATORIO DE
PROGRAMACIN
GENERAL - BI0002
SEMANA

Si no hay ejemplares debe mostrar un mensaje en este sentido. Cada vez que se
preste hay que registrar a quien se le presta y en que fecha. (Suponer que por cada
cdigo de libro hay un libro)
Resuelva el problema de la gestin de prstamos y devoluciones, Haciendo un
programa OO que involucre clases, clases compuestas y encapsulacion
La solucin deber contener informacin para la biblioteca como:
Total de libros prestados.
Total recogido por multa.
Prstamos, devolucin y consulta de libros por cdigo.
VI.

BIBLIOGRAFIA
Bibliografa fundamental y complementaria existente en la biblioteca UAC

1) AGUILAR, LUIS. Programacin Orientada a objetos. Mc Graw Hill


2) WU. Introduccin a la programacin orientada a objetos con Java. Mc Graw Hill.
3) VOSS GREG. Programacin Orientada a objetos una introduccin. MC Graw Hill.

4) COHOON, JAMES P. Programacin y Diseo en C++: Introduccin a la


programacin y al diseo orientado a objetos / 2 ed.
5) Meyer, Bertrand. Construccin de Software Orientado a Objetos / 2 ed.
6) Villalobos Jorge. Diseo y Manejo de Estructuras de datos en C. MC Graw Hill

Programa de Ing. de Sistemas UAC.

Potrebbero piacerti anche