Documentos de Académico
Documentos de Profesional
Documentos de Cultura
com
Composición en JAVA
La composición consiste en crear una clase nueva agrupando objetos de
clases que ya existen. Una composición agrupa uno o más objetos para
construir una clase, de manera que las instancias de esta nueva clase
contienen uno o más objetos de otras clases. Normalmente los objetos
contenidos se declaran con acceso private y se inicializan en el constructor de
la clase.
La clase Vehiculo está compuesta de objetos de tipo String. Los atributos
matricula, marca, modelo y color en realidad son objetos de la clase String.
?
1
2
3 public class Vehiculo {
private String matricula;
4 private String marca;
5 private String modelo;
6 private String color;
7 private double tarifa;
8 private boolean disponible;
// se omiten los métodos ‘get’ y ‘set’ de la clase
9 public Vehiculo(String matricula,
10 String marca,
11 String modelo,
12 String color,
double tarifa) {
13 this.matricula = matricula;
14 this.marca = marca;
15 this.modelo = modelo;
16 this.color = color;
17 this.tarifa = tarifa;
this.disponible = false;
18 }
19 }
20
21
Para hacer una composición utilizando objetos de una clase diferente de String,
lo primero es definir una nueva clase. La clase Cliente formará junto con
Vehiculo la clase VehiculoAlquilado utilizando la composición.
?
1 public class Cliente {
private String nif;
2 private String nombre;
3 private String apellidos;
4 // se omiten los métodos ‘get’ y ‘set’ de la clase
5 public Cliente(String nif, String nombre, String apellidos) {
6 this.nif = nif;
this.nombre = nombre;
7 this.apellidos = apellidos;
8 }
http://www.ingenieriasystems.com
9 }
10
11
?
public class VehiculoAlquilado {
1 private Cliente cliente;
2 private Vehiculo vehiculo;
3 private int diaAlquiler;
4 private int mesAlquiler;
private int añoAlquiler;
5 private int totalDiasAlquiler;
6 public VehiculoAlquilado(Cliente cliente,
7 Vehiculo vehiculo,
8 int diaAlquiler,
9 int mesAlquiler,
int añoAlquiler,
10 int totalDiasAlquiler) {
11 this.cliente = cliente;
12 this.vehiculo = vehiculo;
13 this.diaAlquiler = diaAlquiler;
this.mesAlquiler = mesAlquiler;
14 this.añoAlquiler = añoAlquiler;
15 this.totalDiasAlquiler = totalDiasAlquiler;
16 }
17 // los métodos ‘get’ de los atributos de tipo objeto
18 // Cliente y Vehiculo
public Cliente getCliente() {
19 return this.cliente;
http://www.ingenieriasystems.com
20 }
21 public Vehiculo getVehiculo() {
return this.vehiculo;
22 }
23 }
24
25
26
27
28
29
?
1
2
3 public class MisVehiculos {
4 public static void main(String args[]) {
5 // se crean dos instancias de la clase Vehiculo
Vehiculo vehiculo1 = new Vehiculo("4050 ABJ",
6
"VW",
7 "GTI",
8 "Blanco",
9 100.0);
10 Vehiculo vehiculo2 = new Vehiculo("2345 JVM",
"SEAT",
11 "León",
12 "Negro",
13 80.0);
14 // se crea una instancia de la clase Cliente
15 Cliente cliente1 = new Cliente("30435624X", "Juan", "Pérez");
// se crea una instancia de la clase VehiculoAlquilado que
16 // relaciona al cliente1 con el vehiculo1, el vehículo se
17 // alquila con fecha 11/11/2011 durante 2 días
18 VehiculoAlquilado alquiler1 = new VehiculoAlquilado(cliente1,
19 vehiculo1,
11,
20 11,
21 2011,
22 2);
23 }
24 }
25
26
http://www.ingenieriasystems.com
?
1 alquiler1.getCliente().getNIF();
2 alquiler1.getVehiculo().getMatricula();
?
1
System.out.println("Vehículo alquilado")
2
3 System.out.println("Cliente : " +
4 alquiler1.getCliente().getNIF() + " " +
5 alquiler1.getCliente().getNombre() + " " +
6 alquiler1.getCliente().getApellidos());
System.out.println("Vehículo: " +
7 alquiler1.getVehiculo().getMatricula());
8