El documento describe la colaboración entre clases en programación orientada a objetos. Explica que la colaboración ocurre cuando una clase llama a los métodos de otra clase. Proporciona un ejemplo de colaboración entre las clases Vehículo y Cliente, donde un objeto Cliente contiene un objeto Vehículo y puede acceder a sus métodos para imprimir información del vehículo. El programa permite agregar un cliente y vehículo, cambiar el precio del vehículo, calcular el valor total e imprimir los datos del cliente y vehículo
2. POO - COLABORACION
Colaboración
Desde el momento que existe una llamada al objeto de una
clase, desde otra clase, existe Colaboración de clases.
La figura representa la colaboración que presta Carrera a
Estudiante.
3. POO - COLABORACION
Colaboración
• La colaboración de clases es una analogía de la relación natural que
existe entre los objetos en el mundo real.
• La colaboración permite que una clase se comunique con otra clase
con el propósito de utilizar los métodos de esta ultima para mejorar
algún servicio o mantener una relación lógica de dependencia.
Ejemplo:
•A continuación se presente un ejemplo de colaboración simple entre
un cliente y vehículo
•La clase contenedora del vehículo es el cliente.
4. POO - COLABORACION
Colaboración
public class Vehiculo
{ // ATRIBUTOS
private String patente;
private String marca;
private String modelo;
private int valor;
/*Constructor SIN PARAMETROS class Vehiculo */
public Vehiculo()
{// initialise instance variables
patente=marca=modelo=null;
valor = 0;
}
/*Constructor CON PARAMETROS class Vehiculo */
public Vehiculo(String patente,String marca,String modelo,int valor)
{ this.patente=patente;
this.marca=marca;
this.modelo=modelo;
this.valor = valor;
}
//ACCESADORES
public String getPatente() {return patente;}
public String getMarca() {return marca;}
public String getModelo() {return modelo;}
public int getValor() {return valor;}
5. POO - COLABORACION
Colaboración
//MUTANTES
public void setPatente(String patente) {this.patente=patente;}
public void setMarca(String marca) {this.marca=marca;}
public void setModelo(String modelo) {this.modelo=modelo;}
public void setValor(int valor) {this.valor = valor;}
//CUSTOMIZED
public void imprimirVehiculo()
{ System.out.println("DATOS DEL VEHICULO");
System.out.println("******************");
System.out.println("PATENTE :"+getPatente());
System.out.println("MARCA :"+getMarca());
System.out.println("MODELO :"+getModelo());
System.out.println("VALOR :"+getValor());
}
}
6. POO - COLABORACION
Colaboración
public class Cliente
{// Atributos
private String rut;
private String nombre;
private String fono;
Vehiculo vehi;
/*Constructor SIN PARAMETROS de Cliente*/
public Cliente()
{ // initialise instance variables
rut=nombre=fono=null;
}
/*Constructor CON PARAMETROS de Cliente*/
public Cliente(String rut,String nombre,String fono,Vehiculo vehi)
{ this.rut=rut;
this.nombre=nombre;
this.fono=fono;
this.vehi=vehi;//traspaso del objeto externo al interno
}
7. POO - COLABORACION
Colaboración
//ACCESADORES
public String getRut() {return rut; }
public String getNombre() {return nombre; }
public String getFono() {return fono; }
public Vehiculo getVehi() {return vehi; }
//MUTANTES
public void setRut(String rut) {this.rut=rut;}
public void setNombre(String nombre) {this.nombre=nombre;}
public void setFono(String fono) {this.fono=fono;}
public void setVehi(Vehiculo vehi) {this.vehi=vehi;}
//CUSTOMIZED
public void imprimirCliente()
{ System.out.println("DATOS DEL CLIENTE");
System.out.println("*****************");
System.out.println("RUT ; "+getRut());
System.out.println("NOMBRE :"+getNombre());
System.out.println("TELEFONO :"+getFono());
}
}
8. POO - COLABORACION
Colaboración
import java.io.*;
public class ControlCliente
{ static InputStreamReader isr =new InputStreamReader(System.in);
static BufferedReader teclado=new BufferedReader(isr);
static Cliente clie;
public static void main(String[] args) throws Exception
{ int op=0,val=0,total=0;
String rut,nom,fono,pat,mar,mode;
Cliente clie=new Cliente();//Instanciacion y Limpieza
do{
System.out.println("MENU DE LA AUTOMOTORA");
System.out.println("*********************");
System.out.println("1.- AGREGAR CLIENTE Y VEHICULO");
System.out.println("2.- CAMBIAR PRECIO VEHICULO");
System.out.println("3.- ESTIMAR VALOR VEHICULO");
System.out.println("4.- PRESENTAR DATOS DEL CLIENTE Y VEHICULO");
System.out.println("5.- SALIR");
System.out.println("=====================");
System.out.print("SELECCIONE OPCION :");
op=Integer.parseInt(teclado.readLine());
switch(op)
9. POO - COLABORACION
Colaboración
{ case 1:
System.out.println("AGREGAR CLIENTE Y VEHICULO");
System.out.println("DATOS DEL CLIENTE");
System.out.print("RUT :"); rut=teclado.readLine();
System.out.print("NOMBRE :"); nom=teclado.readLine();
System.out.print("TELEFONO :"); fono=teclado.readLine();
System.out.println("DATOS DEL VEHICULO");
System.out.print("PATENTE :");pat=teclado.readLine();
System.out.print("MARCA :");mar=teclado.readLine();
System.out.print("MODELO :");mode=teclado.readLine();
System.out.print("VALOR PARCIAL :");val=Integer.parseInt(teclado.readLine());
clie=new Cliente(rut,nom,fono, new Vehiculo(pat,mar,mode,val));
break;
case 2:
System.out.println("CAMBIAR PRECIO VEHICULO");
System.out.print("INGRESE NUEVO PRECIO :");
val=Integer.parseInt(teclado.readLine());
clie.getVehi().setValor(val);
break;
case 3:
System.out.println("ESTIMAR VALOR TOTAL VEHICULO");
val=clie.getVehi().getValor();
System.out.println("VALOR :"+val);
System.out.println("DATOS :"+clie.getVehi().getValor());
total=(int)(val*19/100);//Casting de entero o natural
System.out.println("VALOR REAL DEL VEHICULO "+total);
break;
10. POO - COLABORACION
Colaboración
case 4:
System.out.println("PRESENTAR DATOS DEL CLIENTE Y VEHICULO");
System.out.println("######################################");
clie.imprimirCliente();
//Pedir datos del vehículo en forma colaborativa
clie.getVehi().imprimirVehiculo();
break;
case 5:
System.out.println("SALIENDO DE LA APLICACION CLIENTE.........");
System.exit(0);
break;
default:
System.out.println("OPCIONES VALIDAS 1/2/3/4/5......");
break;
}
} while(op!=5);
}
}