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 ...
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