03.11.2014 Views

LABORATORIO PROGRAMACIÓN JAVA SESIÓN 5 - 1: POO ...

LABORATORIO PROGRAMACIÓN JAVA SESIÓN 5 - 1: POO ...

LABORATORIO PROGRAMACIÓN JAVA SESIÓN 5 - 1: POO ...

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

<strong>LABORATORIO</strong> <strong>PROGRAMACIÓN</strong> <strong>JAVA</strong><br />

<strong>SESIÓN</strong> 5 - 1:<br />

<strong>POO</strong> BÁSICO EN <strong>JAVA</strong><br />

En esta sesión realizaremos programas orientados a objetos básicos utilizando el lenguaje Java. Se<br />

pretende enseñar cómo realizar aplicaciones OO utilizando varias clases.<br />

1. <strong>POO</strong> CON <strong>JAVA</strong><br />

A continuación realizaremos unos ejemplos de utilización de las distintas técnicas de <strong>POO</strong> que nos<br />

proporciona Java. Con estos ejemplos aprenderemos la utilización de las interfaces, la herencia y las<br />

clases con métodos estáticos.<br />

1. Ejemplo de definición y utilización de una interface:<br />

interface Trabajo<br />

{<br />

double pagarSueldo(double horas);<br />

}<br />

public class Empresa1 implements Trabajo<br />

{<br />

//Esta empresa paga a 12 euros la hora de trabajo<br />

public double pagarSueldo(double horas)<br />

{<br />

return horas*12;<br />

}<br />

}<br />

public class Empresa2 implements Trabajo<br />

{<br />

//Esta empresa paga a 15 euros la hora de trabajo<br />

public double pagarSueldo(double horas)<br />

{<br />

return horas*15;<br />

}<br />

}<br />

2. Construir una interface en Java que contenga los siguientes métodos:<br />

interface ModuloCalculo<br />

{<br />

double suma(double a, double b);<br />

double resta(double a, double b);<br />

double multiplica(double a, double b);<br />

double divide(double a, double b);<br />

}<br />

1


3. Construir una clase en Java que implemente la interface anterior:<br />

public class ModuloCalculoImpl implements ModuloCalculo<br />

{<br />

public double suma(double a, double b)<br />

{<br />

return a+b;<br />

}<br />

public double resta(double a, double b)<br />

{<br />

return a-b;<br />

}<br />

public double multiplica(double a, double b)<br />

{<br />

return a*b;<br />

}<br />

public double divide(double a, double b)<br />

{<br />

return a/b;<br />

}<br />

}<br />

4. Construir una clase en Java que haga uso de la clase anterior y que sume 2+3, y multiplique el<br />

resultado por 8:<br />

public class PruebaMCI<br />

{<br />

public static void main (String args[])<br />

{<br />

ModuloCalculoImpl mci = new ModuloCalculoImpl();<br />

System.out.println( mci.multiplica(mci.suma(2, 3), 8) );<br />

}<br />

}<br />

5. Crear una nueva clase a partir de la clase ModuloCalculoImpl que tenga la operación módulo (%).<br />

public class ModuloCalculoImpl2 extends ModuloCalculoImpl<br />

{<br />

public double modulo(double a, double b)<br />

{<br />

return a % b;<br />

}<br />

}<br />

6. Construir una clase en Java que haga uso de la clase anterior y que sume 2+3, y calcule el módulo<br />

de la división por 3:<br />

public class PruebaMCI2<br />

{<br />

public static void main (String args[])<br />

{<br />

ModuloCalculoImpl2 mci2 = new ModuloCalculoImpl2();<br />

System.out.println( mci2.modulo(mci2.suma(2, 3), 3) );<br />

}<br />

}<br />

2


7. Construir una clase en Java que contenga métodos estáticos:<br />

public class Operaciones<br />

{<br />

public static double suma(double a, double b)<br />

{<br />

return a+b;<br />

}<br />

public static double resta(double a, double b)<br />

{<br />

return a-b;<br />

}<br />

public static double multiplica(double a, double b)<br />

{<br />

return a*b;<br />

}<br />

public static double divide(double a, double b)<br />

{<br />

return a/b;<br />

}<br />

public static double modulo(double a, double b)<br />

{<br />

return a % b;<br />

}<br />

}<br />

8. Construir una clase en Java que haga uso de la clase anterior y que sume 2+3, y multiplique el<br />

resultado por 8:<br />

public class PruebaOperaciones<br />

{<br />

public static void main (String args[])<br />

{<br />

System.out.println( Operaciones.multiplica(Operaciones.suma(2, 3), 8) );<br />

}<br />

}<br />

3


2. Ejemplo <strong>POO</strong> Coche<br />

A continuación realizaremos un programa orientado a objetos para la instanciación y manejo de objetos<br />

de tipo coche. Lo primero que haremos será crear un proyecto en NetBeans donde crearemos las clases.<br />

Para ello, en NetBeans pulsamos en el icono de nuevo proyecto y seleccionamos la categoría “General”<br />

y dentro “Java Application”. Rellenamos con la información mostrada a continuación:<br />

Una vez creado el proyecto pulsamos en el icono de nuevo fichero y seleccionamos la categoría “Java<br />

Classes” y dentro “Java Class”, incluyendo todas las clases que creemos dentro del paquete<br />

“vehiculos”:<br />

4


En primer lugar se crean los atributos: marca, modelo, matrícula y velocidad; los tres primeros de tipo<br />

String y el último int. Para ello situamos el cursor sobre la zona de código y seleccionamos “Insert<br />

Code” y en el menú desplegable que aparece seleccionamos “Add Property”.<br />

En el cuadro de diálogo que se muestra se indica el tipo de acceso, el tipo de atributo, el nombre del<br />

atributo (también se puede indicar si se quiere inicializar); incluso se pueden generar los “getter” y los<br />

“setter”.<br />

5


De la misma forma se procedería para los otros tres atributos: marca, modelo y velocidad. Obteniendo<br />

al final:<br />

6


Los métodos get y set ya han sido creados según se iban creando los atributos. En caso de no haberlos<br />

implementado a la vez que los atributos se podría hacer de la siguiente forma: pulsamos con el botón<br />

derecho del ratón en Coche y seleccionamos “Refactor” y “Encapsulate Fields”, después pulsamos<br />

“Refactor”:<br />

El último paso que queda es crear el constructor, para ello situamos el cursor sobre la zona de código y<br />

seleccionamos “Insert Code” (como para los Atributos) y en el menú desplegable que aparece<br />

seleccionamos “Constructor”. En el cuadro de diálogo se marcan los atributos que vayan a ser<br />

utilizados:<br />

7


El código final de la clase es el siguiente:<br />

- Clase Coche:<br />

package vehiculos;<br />

public class Coche {<br />

/** Creates a new instance of Coche */<br />

public Coche(String matricula, String marca, String modelo, int velocidad) {<br />

this.matricula = matricula;<br />

this.marca = marca;<br />

this.modelo = modelo;<br />

this.velocidad = velocidad;<br />

}<br />

//Atributos<br />

private String matricula;<br />

private String marca;<br />

private String modelo;<br />

private int velocidad;<br />

//Métodos<br />

public String getMatricula() {<br />

return matricula;<br />

}<br />

public void setMatricula(String matricula) {<br />

this.matricula = matricula;<br />

}<br />

public String getMarca() {<br />

return marca;<br />

}<br />

public void setMarca(String marca) {<br />

this.marca = marca;<br />

}<br />

8


}<br />

public String getModelo() {<br />

return modelo;<br />

}<br />

public void setModelo(String modelo) {<br />

this.modelo = modelo;<br />

}<br />

public int getVelocidad() {<br />

return velocidad;<br />

}<br />

public void setVelocidad(int velocidad) {<br />

this.velocidad = velocidad;<br />

}<br />

Para probar la clase Coche crearemos una clase con un método main, para hacerlo, pulsamos en el<br />

icono de nuevo fichero (“New File”) y seleccionamos la categoría “Java” y dentro “Java Main Class”:<br />

9


- Clase PruebaCoches:<br />

package vehiculos;<br />

public class PruebaCoches {<br />

/** Creates a new instance of PruebaCoches */<br />

public PruebaCoches() {<br />

}<br />

/**<br />

* @param args the command line arguments<br />

*/<br />

public static void main(String[] args) {<br />

// TODO code application logic here<br />

Coche c1 = new Coche("1234 BCD", "Opel", "Astra", 0);<br />

Coche c2 = new Coche("2345 CDE", "BMW", "S1", 80);<br />

Coche c3 = new Coche("3456 DEF", "Audi", "A3", 100);<br />

}<br />

}<br />

c1.setVelocidad(60);<br />

System.out.println("velocidad: " + c1.getVelocidad());<br />

Ahora solo nos falta ejecutarlo para crear los objetos c1, c2 y c3, además de probar a llamar al método<br />

setVelocidad . Extenderlo con más objetos y con más llamadas a métodos.<br />

3. Ejercicio Banco 1<br />

Se pretende realizar una pequeña aplicación en Java para la gestión de las cuentas de un banco. La<br />

aplicación se compondrá de una clase Cuenta para representar las cuentas y PruebaCuentas para<br />

instanciar y gestionar diversos objetos de tipo cuenta. La clase Cuenta debe contar como mínimo con<br />

los atributos: número de cuenta (String), titular (String), saldo (double) y fecha de apertura (Calendar).<br />

Extraer los métodos get y set correspondientes y añadirle los métodos retirar e ingresar dinero.<br />

10


4. Ejemplo <strong>POO</strong> Empleados<br />

El siguiente ejemplo de <strong>POO</strong> consiste en la creación de una serie de clases que nos permiten gestionar<br />

los empleados de una empresa.<br />

Crearemos una librería de Java que luego podremos utilizar en diversos proyectos. Para ello en<br />

NetBeans pulsamos en el icono de nuevo proyecto y seleccionamos la categoría “General” y dentro<br />

“Java Class Library”:<br />

11


Una vez creado el proyecto crearemos las distintas clases que formarán la librería que serán: Persona,<br />

Empleado y Departamento.<br />

Para crear estas clases pulsamos el icono de nuevo fichero y seleccionamos la categoría “Java Classes”<br />

y dentro “Java Class”, incluyendo todas las clases dentro del paquete “empleados”:<br />

El código de las tres clases es el siguiente:<br />

- Clase Persona:<br />

package empleados;<br />

public class Persona {<br />

//Atributos<br />

private String DNI;<br />

private String nombre;<br />

protected int edad;<br />

protected String estado;<br />

//Constructor<br />

public Persona(String p_dni, String p_nombre, int p_edad, String p_estado) {<br />

DNI = p_dni; nombre = p_nombre;<br />

edad = p_edad; estado = p_estado;<br />

}<br />

//Métodos<br />

public String getDNI() { return DNI; }<br />

public String getNombre() { return nombre; }<br />

public int getEdad() { return edad; }<br />

public void cumpleaños() { edad += 1; }<br />

public String getEstado() { return estado; }<br />

public void setEstado(String nuevo) { estado = nuevo; }<br />

12


Devuelve información textual de una persona<br />

public String toString() {<br />

return DNI + " " + nombre;<br />

}<br />

}<br />

- Clase Empleado:<br />

package empleados;<br />

public class Empleado extends Persona {<br />

}<br />

//Atributos<br />

private String categoria;<br />

private double sueldo;<br />

private Departamento dept;<br />

//Constructor<br />

public Empleado(String p_dni, String p_nombre, int p_edad, String p_estado,<br />

String categoria, double sueldo, Departamento dept) {<br />

super(p_dni, p_nombre, p_edad, p_estado); //constructor clase padre<br />

this.categoria = categoria;<br />

this.sueldo = sueldo;<br />

this.dept = dept;<br />

}<br />

//Métodos<br />

public String getCategoria() { return categoria; }<br />

public void setCategoria(String nueva) { categoria = nueva; }<br />

public double getSueldo() { return sueldo; }<br />

public Departamento getDepartamento() { return dept; }<br />

public void setDepartamento(Departamento otroDept) { dept = otroDept; }<br />

public void subeSueldo(double cantidad) { sueldo += cantidad; }<br />

public void subeSueldo(int porcentaje) {<br />

sueldo += (sueldo * porcentaje/100);<br />

}<br />

//Redefine el método cumpleaños<br />

public void cumpleaños() {<br />

edad += 1;<br />

if (edad >65) estado = "JUBILADO";<br />

}<br />

//Imprime los datos del empleado<br />

public String toString() {<br />

return "Empleado: " + super.toString() + " - Categoría: " + categoria<br />

+ " - Sueldo: " + sueldo + " # Departamento: " + dept.toString();<br />

}<br />

13


- Clase Departamento:<br />

package empleados;<br />

import java.util.Vector;<br />

public class Departamento {<br />

//Atributos<br />

private String id;<br />

private String nombre;<br />

private String localizacion;<br />

private Vector empleadosDept;<br />

//Constructor<br />

public Departamento( String p_id, String p_nombre, String p_loc ) {<br />

id = p_id;<br />

nombre = p_nombre;<br />

localizacion = p_loc;<br />

empleadosDept = new Vector();<br />

}<br />

//Métodos<br />

public String getIdDept() {<br />

return this.id;<br />

}<br />

public String getNombreDept() {<br />

return this.nombre;<br />

}<br />

public void setNombreDept(String nombreDept) {<br />

this.nombre = nombreDept;<br />

}<br />

public String getLocalizacionDept() {<br />

return this.localizacion;<br />

}<br />

public void setLocalizacionDept(String localizacionDept) {<br />

this.localizacion = localizacionDept;<br />

}<br />

public Vector getEmpleadosDept() {<br />

return this.empleadosDept;<br />

}<br />

// Inserta un nuevo empleado en el departamento. Si lo inserta devuelve true<br />

public boolean setEmpleadoDept(Empleado emp) {<br />

if (!empleadosDept.contains(emp)) {<br />

this.empleadosDept.add(emp);<br />

return true;<br />

} else return false;<br />

}<br />

// Borra un empleado del departamento. Si lo borra devuelve true<br />

public boolean borraEmpleadoDept(Empleado emp) {<br />

if (empleadosDept.contains(emp)) {<br />

this.empleadosDept.remove(emp);<br />

return true;<br />

} else return false;<br />

}<br />

14


Imprime los datos del Departamento<br />

public String toString() {<br />

return getIdDept() + " - " + getNombreDept() + " - "<br />

+ getLocalizacionDept();<br />

}<br />

}<br />

Para probar la librería vamos a realizar un segundo proyecto llamado “PruebaEmpleados” de tipo “Java<br />

Application” dentro de la categoría “General”:<br />

Una vez creado accedemos a las propiedades del proyecto e incluimos la librería pulsando en<br />

“AddProject” y seleccionando el proyecto Empleados:<br />

15


‣ Rellenamos la clase “Main” como sigue:<br />

package pruebaempleados;<br />

import empleados.*;<br />

public class Main {<br />

public static void main(String[] args) {<br />

// TODO code application logic here<br />

//Creamos dos empleados<br />

Departamento dep1 = new Departamento("1","Prensa", "Madrid");<br />

Empleado emp1 =<br />

new Empleado("153647458S","Pepe",65,"casado","Jefe",1500,dep1);<br />

Empleado emp2 =<br />

new Empleado("452697419Z","Maria",25,"soltera","Redactora",1000,dep1);<br />

}<br />

//Aplicamos métodos<br />

System.out.println("Empleado 1: " + emp1.toString());<br />

System.out.println("Empleado 2: " + emp2.toString());<br />

emp1.cumpleaños();<br />

emp1.subeSueldo(100.0);<br />

System.out.println("Nombre: " + emp1.getNombre() + " Estado: "<br />

+ emp1.getEstado() + " Sueldo: " + emp1.getSueldo());<br />

emp2.subeSueldo(10);<br />

System.out.println("Nombre: " + emp2.getNombre() + " Sueldo: "<br />

+ emp2.getSueldo());<br />

}<br />

5. Ejercicio Banco 2<br />

Se pretende modificar la aplicación de la gestión de las cuentas del banco de forma que se tenga una<br />

relación de asociación entre las cuentas y los clientes del banco. Para realizarlo tendremos que crear<br />

una clase Cliente que represente los clientes del banco. La clase Cliente debe contar como mínimo con<br />

los atributos: DNI (String), nombre (String), dirección (String) y fecha de nacimiento (Calendar) con<br />

sus métodos get y set correspondientes. Las clases deben representar la relación de asociación entre<br />

cuentas y clientes con la inclusión del atributo cuentas de tipo ArrayList en la clase Cliente y el atributo<br />

titulares de tipo ArrayList en la clase Cuenta. Se deben proporcionar los métodos necesarios para<br />

insertar y borrar clientes y cuentas.<br />

16


6. Solución Ejercicio 1<br />

Se pretende realizar una pequeña aplicación en Java para la gestión de las cuentas de un banco. La<br />

aplicación se compondrá de una clase Cuenta para representar las cuentas y PruebaCuentas para<br />

instanciar y gestionar diversos objetos de tipo cuenta. La clase Cuenta debe contar como mínimo con<br />

los atributos: número de cuenta (String), titular (String), saldo (double) y fecha de apertura (Calendar).<br />

Extraer los métodos get y set correspondientes y añadirle los métodos retirar e ingresar dinero.<br />

- Clase Cuenta:<br />

package banco;<br />

import java.util.Calendar;<br />

public class Cuenta {<br />

/** Creates a new instance of Cuenta */<br />

public Cuenta(String numero, String titular, double saldo) {<br />

this.numero = numero;<br />

this.titular = titular;<br />

this.saldo = saldo;<br />

this.fechaApertura = Calendar.getInstance();<br />

}<br />

private String numero;<br />

private String titular;<br />

private double saldo;<br />

private Calendar fechaApertura;<br />

public String getNumero() {<br />

return numero;<br />

}<br />

public String getTitular() {<br />

return titular;<br />

}<br />

public void setTitular(String titular) {<br />

this.titular = titular;<br />

}<br />

public double getSaldo() {<br />

return saldo;<br />

}<br />

public void setSaldo(double saldo) {<br />

this.saldo = saldo;<br />

}<br />

public Calendar getFechaApertura() {<br />

return fechaApertura;<br />

}<br />

public void setFechaApertura(Calendar fechaApertura) {<br />

this.fechaApertura = fechaApertura;<br />

}<br />

public void ingresar(double cantidad) {<br />

this.saldo += cantidad;<br />

17


}<br />

public void retirar(double cantidad) {<br />

this.saldo -= cantidad;<br />

}<br />

public String toString() {<br />

return "Cuenta: " + this.numero + " - " + this.titular<br />

+ " - " + this.saldo;<br />

}<br />

}<br />

- Clase PruebaCuentas:<br />

package banco;<br />

public class PruebaCuentas {<br />

public static void main(String[] args) {<br />

// TODO code application logic here<br />

Cuenta c1 = new Cuenta("1","Pepe",100);<br />

Cuenta c2 = new Cuenta("2","Maria",200);<br />

}<br />

c1.ingresar(200);<br />

c2.retirar(100);<br />

System.out.println(c1.toString());<br />

System.out.println(c2.toString());<br />

}<br />

7. Solución Ejercicio 2<br />

Se pretende modificar la aplicación de la gestión de las cuentas del banco de forma que se tenga una<br />

relación de asociación entre las cuentas y los clientes del banco. Para realizarlo tendremos que crear<br />

una clase Cliente que represente los clientes del banco. La clase Cliente debe contar como mínimo con<br />

los atributos: DNI (String), nombre (String), dirección (String) y fecha de nacimiento (Calendar) con<br />

sus métodos get y set correspondientes. Las clases deben representar la relación de asociación entre<br />

cuentas y clientes con la inclusión del atributo cuentas de tipo ArrayList en la clase Cliente y el atributo<br />

titulares de tipo ArrayList en la clase Cuenta. Se deben proporcionar los métodos necesarios para<br />

insertar y borrar clientes y cuentas.<br />

- Clase Cuenta2:<br />

package banco;<br />

import java.util.Calendar;<br />

import java.util.ArrayList;<br />

public class Cuenta2 {<br />

/** Creates a new instance of Cuenta2 */<br />

public Cuenta2(String numero, Cliente2 c, double saldo) {<br />

this.numero = numero;<br />

this.setTitularCuenta(c);<br />

this.saldo = saldo;<br />

this.fechaApertura = Calendar.getInstance();<br />

}<br />

18


private String numero;<br />

private ArrayList titulares = new ArrayList();<br />

private double saldo;<br />

private Calendar fechaApertura;<br />

public String getNumero() {<br />

return numero;<br />

}<br />

public ArrayList getTitulares() {<br />

return titulares;<br />

}<br />

public void setTitulares(ArrayList titulares) {<br />

this.titulares = titulares;<br />

}<br />

public double getSaldo() {<br />

return saldo;<br />

}<br />

public void setSaldo(double saldo) {<br />

this.saldo = saldo;<br />

}<br />

public Calendar getFechaApertura() {<br />

return fechaApertura;<br />

}<br />

public void setFechaApertura(Calendar fechaApertura) {<br />

this.fechaApertura = fechaApertura;<br />

}<br />

public void ingresar(double cantidad) {<br />

this.saldo += cantidad;<br />

}<br />

public void retirar(double cantidad) {<br />

this.saldo -= cantidad;<br />

}<br />

// Inserta un nuevo titular en la cuenta. Si lo inserta devuelve true<br />

public boolean setTitularCuenta(Cliente2 c) {<br />

if (!titulares.contains(c)) {<br />

this.getTitulares().add(c);<br />

c.setCuentaTitular(this); //insertamos la cuenta en el titular<br />

}<br />

return true;<br />

} else {<br />

return false;<br />

}<br />

// Borra un titular de la cuenta. Si lo borra devuelve true<br />

public boolean borraTitularCuenta(Cliente2 c) {<br />

if (!titulares.contains(c)) {<br />

this.getTitulares().remove(c);<br />

c.borraCuentaTitular(this); //borramos la cuenta del titular<br />

}<br />

return true;<br />

} else {<br />

return false;<br />

}<br />

19


}<br />

public String toString() {<br />

return "Cuenta: " + this.numero + " - " + this.getTitulares().toString()<br />

+ " - " + this.saldo;<br />

}<br />

- Clase Cliente2:<br />

package banco;<br />

import java.util.Calendar;<br />

import java.util.ArrayList;<br />

public class Cliente2 {<br />

/** Creates a new instance of Cliente2 */<br />

public Cliente2(String DNI, String nombre, String direccion, Calendar fecNac) {<br />

this.DNI = DNI;<br />

this.nombre = nombre;<br />

this.direccion = direccion;<br />

this.fecNac = fecNac;<br />

}<br />

private String DNI;<br />

private String nombre;<br />

private String direccion;<br />

private Calendar fecNac;<br />

private ArrayList cuentas = new ArrayList();<br />

public String getDNI() {<br />

return DNI;<br />

}<br />

public void setDNI(String DNI) {<br />

this.DNI = DNI;<br />

}<br />

public String getNombre() {<br />

return nombre;<br />

}<br />

public void setNombre(String nombre) {<br />

this.nombre = nombre;<br />

}<br />

public String getDireccion() {<br />

return direccion;<br />

}<br />

public void setDireccion(String direccion) {<br />

this.direccion = direccion;<br />

}<br />

public Calendar getFecNac() {<br />

return fecNac;<br />

}<br />

public void setFecNac(Calendar fecNac) {<br />

this.fecNac = fecNac;<br />

}<br />

public ArrayList getCuentas() {<br />

return cuentas;<br />

20


}<br />

public void setCuentas(ArrayList cuentas) {<br />

this.cuentas = cuentas;<br />

}<br />

// Inserta una nueva cuenta. Si la inserta devuelve true<br />

public boolean setCuentaTitular(Cuenta2 c) {<br />

if (!cuentas.contains(c)) {<br />

this.getCuentas().add(c);<br />

return true;<br />

} else {<br />

return false;<br />

}<br />

}<br />

// Borra una cuenta. Si la borra devuelve true<br />

public boolean borraCuentaTitular(Cuenta2 c) {<br />

if (!cuentas.contains(c)) {<br />

this.getCuentas().remove(c);<br />

}<br />

return true;<br />

} else {<br />

return false;<br />

}<br />

}<br />

public String toString() {<br />

return "Cliente: " + this.DNI + " - " + this.nombre<br />

+ " - " + this.direccion;<br />

}<br />

- Clase PruebaCuentas2:<br />

package banco;<br />

import java.util.Calendar;<br />

public class PruebaCuentas2 {<br />

}<br />

public static void main(String[] args) {<br />

// TODO code application logic here<br />

Calendar f1 = Calendar.getInstance();<br />

f1.set(1980,1,1);<br />

Calendar f2 = Calendar.getInstance();<br />

f1.set(1982,2,2);<br />

Cliente2 t1 = new Cliente2("1","Pepe","dir1",f1);<br />

Cliente2 t2 = new Cliente2("2","Maria","dir2",f2);<br />

Cuenta2 c1 = new Cuenta2("1",t1,100);<br />

Cuenta2 c2 = new Cuenta2("2",t2,200);<br />

c1.ingresar(200);<br />

c2.retirar(100);<br />

System.out.println(c1.toString());<br />

System.out.println(c2.toString());<br />

}<br />

21

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!