Ejercicio Básico POO Java. Clase Cuenta

Ejercicio básico de programación orientada a objetos en Java

Escribe una clase Cuenta para representar una cuenta bancaria. Los datos de la cuenta son: nombre del cliente (String), número de cuenta (String), tipo de interés (double) y saldo (double).
La clase contendrá los siguientes métodos:
Constructor por defecto
Constructor con todos los parámetros
Constructor copia.
Métodos setters/getters para asignar y obtener los datos de la cuenta.
Métodos ingreso y reintegro. Un ingreso consiste en aumentar el saldo en la cantidad que se indique. Esa cantidad no puede ser negativa. Un reintegro consiste en disminuir el saldo en una cantidad pero antes se debe comprobar que hay saldo suficiente. La cantidad no puede ser negativa. Los métodos ingreso y reintegro devuelven true si la operación se ha podido realizar o false en caso contrario.
Método transferencia que permita pasar dinero de una cuenta a otra siempre que en la cuenta de origen haya dinero suficiente para poder hacerla. Ejemplo de uso del método transferencia:
cuentaOrigen.transferencia(cuentaDestino, importe);
que indica que queremos hacer una transferencia desde cuentaOrigen a cuentaDestino del importe indicado.
Prueba el funcionamiento de la clase Cuenta con este main:
public static void main(String[] args) {
       
 Scanner sc = new Scanner(System.in);
 String nombre, numero;
 double tipo, importe;

 //se crea objeto cuenta1 sin parámetros
 //se ejecuta el constructor por defecto
 Cuenta cuenta1 = new Cuenta();

 System.out.print("Nombre : ");
 nombre = sc.nextLine();
 System.out.print("Número de cuenta : ");
 numero = sc.nextLine();
 System.out.print("Tipo de interes : ");
 tipo = sc.nextDouble();
 System.out.print("Saldo: ");
 importe = sc.nextDouble();

 cuenta1.setNombre(nombre);
 cuenta1.setNumeroCuenta(numero);
 cuenta1.setTipoInteres(tipo);
 cuenta1.setSaldo(importe);

 //se crea el objeto cuenta2 con los valores leidos por teclado
 //se ejecuta el constructor con parámetros
 Cuenta cuenta2 = new Cuenta("Juan Ferrández Rubio", "12345678901234567890", 1.75, 300);                       

 //se crea cuenta3 como copia de cuenta1
 //se ejecuta el constructor copia
 Cuenta cuenta3 = new Cuenta(cuenta1);

 //mostrar los datos de cuenta1
 System.out.println("Datos de la cuenta 1");
 System.out.println("Nombre del titular: " + cuenta1.getNombre());
 System.out.println("Número de cuenta: " + cuenta1.getNumeroCuenta());
 System.out.println("Tipo de interés: " + cuenta1.getTipoInteres());
 System.out.println("Saldo: " + cuenta1.getSaldo());
 System.out.println();
       
 //se realiza un ingreso en cuenta1
 cuenta1.ingreso(4000);
     
 //mostrar el saldo de cuenta1 después del ingreso
 System.out.println("Saldo: " + cuenta1.getSaldo());
     
 //mostrar los datos de cuenta2
 System.out.println("Datos de la cuenta 2");
 System.out.println("Nombre del titular: " + cuenta2.getNombre());
 System.out.println("Número de cuenta: " + cuenta2.getNumeroCuenta());
 System.out.println("Tipo de interés: " + cuenta2.getTipoInteres());
 System.out.println("Saldo: " + cuenta2.getSaldo());
 System.out.println();
     
 //mostrar los datos de cuenta3
 System.out.println("Datos de la cuenta 3");
 System.out.println("Nombre del titular: " + cuenta3.getNombre());
 System.out.println("Número de cuenta: " + cuenta3.getNumeroCuenta());                                         
 System.out.println("Tipo de interés: " + cuenta3.getTipoInteres());
 System.out.println("Saldo: " + cuenta3.getSaldo());
 System.out.println();
     
 //realizar una transferencia de 10€ desde cuenta3 a cuenta2
 if(cuenta3.transferencia(cuenta2, 10)){
    System.out.println("Transferencia realizada");
 } else {
    System.out.println("No se ha podido realizar la transferencia");
 }
     
 //mostrar el saldo de cuenta2
 System.out.println("Saldo de la cuenta 2");
 System.out.println("Saldo: " + cuenta2.getSaldo());
 System.out.println();
     
 //mostrar el saldo de cuenta3
 System.out.println("Saldo de la cuenta 3");
 System.out.println("Saldo: " + cuenta3.getSaldo());
 System.out.println();
}

Solución:
//Clase Cuenta
public class Cuenta {

    private String nombre;
    private String numeroCuenta;
    private double tipoInteres;
    private double saldo;

    //Constructor por defecto
    public Cuenta() {
    }

    //Constructor con parámetros
    public Cuenta(String nombre, String numeroCuenta, double tipoInteres, double saldo) {                         
        this.nombre = nombre;
        this.numeroCuenta = numeroCuenta;
        this.tipoInteres = tipoInteres;
        this.saldo = saldo;
    }

    //Constructor copia
    public Cuenta(final Cuenta c) {
        nombre = c.nombre;
        numeroCuenta = c.numeroCuenta;
        tipoInteres = c.tipoInteres;
        saldo = c.saldo;
    }

    //getters y setters
    public String getNombre() {
        return nombre;
    }

    public void setNombre(String nombre) {
        this.nombre = nombre;
    }

    public String getNumeroCuenta() {
        return numeroCuenta;
    }

    public void setNumeroCuenta(String numeroCuenta) {
        this.numeroCuenta = numeroCuenta;
    }

    public double getTipoInteres() {
        return tipoInteres;
    }

    public void setTipoInteres(double tipoInteres) {
        this.tipoInteres = tipoInteres;
    }

    public double getSaldo() {
        return saldo;
    }

    public void setSaldo(double saldo) {
        this.saldo = saldo;
    }

    //método ingreso
    public boolean ingreso(double importe) {
        if (importe > 0) {
            this.saldo += importe;
            return true;
        }
        return false;
    }

    //método reintegro
    public boolean reintegro(double importe) {                                                                    
        if (importe > 0 && this.saldo >= importe) {
            this.saldo -= importe;
            return true;
        }
        return false;
    }

    //método transferencia
    public boolean transferencia(Cuenta c, double importe) {
        if (this.reintegro(importe)) {
            c.ingreso(importe);
            return true;
        } 
        return false;
    }
}

60 comentarios:

  1. Hola. En la línea:
    public Cuenta(final Cuenta c)
    ¿En necesario incluir la palabra reservada "final"?¿Qué función cumple?
    Un saludo y gracias.

    ResponderEliminar
    Respuestas
    1. No es necesario declarar como final el parámetro del constructor copia pero haciendolo así se protege al objeto que vamos a copiar de cualquier modificación que por error se pudiera realizar,

      Eliminar
    2. sip, tienes razon, aunque tambien hubiera funcionado con el Protected

      Eliminar
  2. tengo una duda siempre es necesario usar set y get , no me queda claro para que funciona , y si no lo colocamos que pasa ??

    ResponderEliminar
    Respuestas
    1. los getters y setters son necesarios si los atributos son privados, puesto que no podrás acceder a ellos desde ninguna otra clase. Si los atributos son públicos, puedes acceder directamente a ellos, pero no es es el caso.

      Eliminar
    2. los getters y setters son necesarios si los atributos son privados, puesto que no podrás acceder a ellos desde ninguna otra clase. Si los atributos son públicos, puedes acceder directamente a ellos, pero no es es el caso.

      Eliminar
  3. Buenas tardes cuando intento compilar me salen 3 errores ( non static variable this cannot be referenced from a static contex )
    en donde dice Cuenta cuenta1 = next Cuenta();
    los mismo en Cuenta cuenta 2 ...etc
    y en Cuenta cuenta3... etc
    quisiera saber como corregir ese error, gracias.

    ResponderEliminar
    Respuestas
    1. Hola Yazmin Grisell Bandala Martinez, lo que sucede es que no es es que estas creando un objeto de la clase Cuenta y la forma en que tienes Cuenta cuenta1 = next Cuenta(); es incorrecto, la palabra para crear el objeto es new, se corrige de la siguiente forma Cuenta cuenta1 = new Cuenta(); Espero y te sirva.

      Eliminar
  4. Hola me puedes ayudar tengo un error en "Cuenta cuenta3 = new Cuenta(cuenta1);" gracias por la ayuda.

    ResponderEliminar
    Respuestas
    1. ya lo resolví lo que sucedío es que no había definido en la clase Cuenta.java el constructor copia, pero me queda una duda, el parametro c que recibe el método copia son los parametros de la la cuenta2??. gracias por la ayuda, nuevamente!

      Eliminar
    2. Toma efectivamente todos los ATRIBUTOS de la cuenta que le das como parámetro

      Eliminar
    3. Hola :)
      Tengo una duda, porque en el método ingreso o reintegro, pasas como parámetro "n", public boolean ingreso(double n).

      Eliminar
  5. Tendras algunos ejemplos de java fx, soy nuevo en este tema y me interesaría ver algunos ejemplos prácticos

    ResponderEliminar
  6. Lo Hice de esta manera, me gustaria leer sus comentarios

    public static void main(String[] args) {
    // TODO Auto-generated method stub
    // No declaro cuenta 3, no la vi necesaria para el objetivo del desarrollo de la practica
    //declaro cuenta 1
    cuenta cuenta1 = new cuenta();

    String nombre = JOptionPane.showInputDialog("Nombre del Cliente: ");
    String numero = JOptionPane.showInputDialog("Numero de Cuenta: ");
    double interes = Double.parseDouble(JOptionPane.showInputDialog("Tipo de Interes: "));
    double saldo = Double.parseDouble(JOptionPane.showInputDialog("Saldo: "));

    cuenta1.setNombre(nombre);
    cuenta1.setNumero(numero);
    cuenta1.setInteres(interes);
    cuenta1.setSaldo(saldo);

    //declaro cuenta 2
    cuenta cuenta2 = new cuenta();
    String nombre2 = JOptionPane.showInputDialog("Nombre del Cliente: ");
    String numero2 = JOptionPane.showInputDialog("Numero de Cuenta: ");
    double interes2 = Double.parseDouble(JOptionPane.showInputDialog("Tipo de Interes: "));
    double saldo2 = Double.parseDouble(JOptionPane.showInputDialog("Saldo: "));

    cuenta2.setNombre(nombre2);
    cuenta2.setNumero(numero2);
    cuenta2.setInteres(interes2);
    cuenta2.setSaldo(saldo2);

    //Muestro datos de lo ingresado
    System.out.println("datos cuenta");
    System.out.println("nombre: "+ cuenta1.getNombre());
    System.out.println("cuenta: "+cuenta1.getNumero());
    System.out.println("interes: "+cuenta1.getInteres());
    System.out.println("Saldo: "+cuenta1.getSaldo());
    System.out.println(" ");
    System.out.println("datos cuenta");
    System.out.println("nombre: "+ cuenta2.getNombre());
    System.out.println("cuenta: "+cuenta2.getNumero());
    System.out.println("interes: "+cuenta2.getInteres());
    System.out.println("Saldo: "+cuenta2.getSaldo());
    System.out.println(" ");
    //ingreso a la cuenta 1
    cuenta1.setSaldo(cuenta1.getSaldo() + Double.parseDouble(JOptionPane.showInputDialog("cuanto desea ingresar a la cuenta 1?")));
    System.out.println("Nuevo saldo de cuenta 1 es: "+ cuenta1.getSaldo());
    System.out.println(" ");
    //transferencia de la cuenta 2 a la cuenta 1
    System.out.println("tranferencia saldo de cuenta 2 a cuenta 1");
    double aux=Double.parseDouble(JOptionPane.showInputDialog("Cuanto desea transferir?"));
    if ((cuenta2.getSaldo()- aux)<=0) {
    System.out.println("No se puede hacer la trasferencia, no hay saldo suficiente en la cuenta de "+cuenta2.getNombre());
    }else {
    cuenta1.setSaldo(cuenta1.getSaldo() + aux);
    cuenta2.setSaldo(cuenta2.getSaldo()- aux);
    System.out.println("El nuevo saldo de "+cuenta1.getNombre()+" es: "+cuenta1.getSaldo());
    System.out.println("El nuevo saldo de "+cuenta2.getNombre()+" es: "+cuenta2.getSaldo());
    }

    ResponderEliminar
    Respuestas
    1. Yo me ahorraría código haciendo por ejemplo esto:
      cuenta1.setNombre(JOptionPane.showInputDialog("Nombre del cliente:"));
      cuenta1.setInteres(Double.parseDouble(JOptionPane.showInputDialog("Tipo de interes: ")));

      Eliminar
    2. me podrian pasar el codigo listo para abrir, por favor urge
      gracias

      Eliminar
  7. Buenas, estoy teniendo un error con el codigo

    ResponderEliminar
  8. Hola buen día, una consulta porque cuando ya corre el programa y he ingreso por teclado el TIPO DE INTERÉS ( un numero real como 2.1) me sale una excepción :c, pero si funciona si ingreso un entero como TIPO DE INTERÉS.
    Gracias :D

    ResponderEliminar
    Respuestas
    1. Hola Dany, escribe coma en lugar de punto para introducir el número real ( 2,1 )

      Eliminar
    2. Hola, buenas tarde, ¿podrías explicar el porque de ponerse "," en lugar de "." a la hora de ingresar los datos en consola?

      Eliminar
    3. Se hace porque no todos los ordenadores funcionan con "," o "." algunos utilizan las comas para representar decimales y algunos otros ordenadores usan el punto

      Eliminar
  9. amigo así
    public boolean egreso(double n){
    boolean egreso=true;
    if(n<0 || saldo<=n){
    egreso=false;
    }else{
    saldo-=n;
    }
    return egreso;

    ResponderEliminar
  10. alguien me podría explicar para que sirve el constructor copia que papel juega en el código

    ResponderEliminar
  11. Estaría muchísimo más clara la solución si las variables y demás no se llamasen todas "s, n, c....

    ResponderEliminar
  12. podrias explicarme, lo que pasa que no actualiza el datos cuando se ingresan los (4000), cuando al final muestras los datos de la cuenta 3 ¿porqué no actualiza?.

    ResponderEliminar
  13. HOla
    el número de cuenta que introduzco no lo coger, me aparece como NULL... ¿alguien sabe qué puede estar pasando?... había pensado en limpiar el buffer pero tampoco... el código es el mismoo y la solución también...

    ResponderEliminar
    Respuestas
    1. solucionado... dos variables que no coincidía el identificador...

      Eliminar
  14. Hola.
    Si tanto setTipoInteres, como setSaldo son double n ¿Como distingue lo que es interes y es un saldo.

    public void setTipoInteres(double n) {
    tipoInteres = n;
    }

    public void setSaldo(double n) {
    saldo = n;
    }

    //método reintegro
    public boolean reintegro(double n) {
    }

    //método transferencia
    public boolean transferencia(Cuenta c, double n) {

    ResponderEliminar
  15. me esta dando error en esta linea..... public class Cuenta {

    ResponderEliminar
  16. quien me puede solucionar esto, lo necesito urgente...

    ResponderEliminar
  17. Cual podría ser la función del tipo de interés para implementar en el ejercicio y ser mas practico
    ?

    ResponderEliminar
  18. Buenas noches
    Alguien me podría ayudar indicandome como implementar este ejemplo en formularios. Gracias.

    ResponderEliminar
  19. hola una consulta como podria agregar en tu codigo para ver su estado de cuenta ingresando el DNI
    Este es el problema que tengo que hacer y me encuentro con errores no se si podrias ayudarme

    .- Aplicando el principio de la Responsabilidad Única (SRP) desarrollar el siguiente Proyecto:
    Un banco puede crear varias cuentas bancarias y puede realizar búsquedas por número de cuenta bancaria, por DNI para ver el estado de sus cuentas de sus clientes y su morosidad, además de listar las personas que tiene el banco con su respectivo estado bancario y el monto total de sus estados de cuentas. También podrá listar los clientes morosos para conocer el monto total de deuda al banco y así realizar las cobranzas respectivas.
    Una Cuenta bancaria se caracteriza por tener asociado un número de cuenta y un saldo disponible. Además, podrá recibir depósitos y retiros de dinero siempre y cuando su estado de cuenta lo permita. Un Cliente se caracteriza por sus datos personales y un array de cuentas bancarias. El cliente puede tener asociada hasta 3 cuentas bancarias, y debe tener un método que permite agregar cuentas bancarias, además debe permitir la transferencia de una cuenta a otra, debe contener un método que devuelva si la persona es morosa, también se podrá eliminar cuentas por persona y además se pueden eliminar clientes. Crear un menú de opciones con todas las operaciones bancarias que se pueden realizar.

    ResponderEliminar
    Respuestas
    1. Debes hacer tu oe indio soplon, pa eso estudias gil, mañana le paso captura al profe.

      Eliminar
  20. no se man
    ya lo hice pero no te voa pasar, cuanto das?

    ResponderEliminar
  21. es su trabajo de la universidad, no le hagan su tarea a ese indio. que lo haga solo el vago ese.
    ESTUDIA MRD. NO MANDES A HACER TU TAREA .

    ResponderEliminar
  22. no_es_mucho_pero_es_trabajo_honesto.jpg.exe


    package cuentas;

    public class cuenta {

    private String cliente,numcuenta;
    private double interes,saldo;
    private boolean ingresox , reintegrox;


    public cuenta(String cliente , String numcuenta , double interes , double saldo ) {

    this.cliente = cliente;
    this.numcuenta = numcuenta;
    this.interes = interes;
    this.saldo = saldo;

    }

    public void ingreso_reintegros(double ingreso , double reintegro ) {

    if(ingreso < 0) {
    ingresox = false;
    } else {
    ingresox = true;
    this.saldo+=ingreso;

    }


    if(reintegro < 0) {
    reintegrox = false;

    } else if (saldo >= reintegro) {
    saldo-=reintegro;
    reintegrox = true;

    }
    }


    public double verifica_transfer() {

    return this.saldo;
    }

    public boolean transferx(double cantidad) {

    this.saldo+=cantidad;


    return true;

    }


    public void transferencia( cuenta c, double importe) {



    if (saldo >= importe) {
    c.ingreso_reintegros(importe, 0);
    saldo-=importe;
    System.out.println("operación exitosa");
    } else {
    System.out.println("operación invalida, fondos insuficientes");
    }



    }






    }
    --------------------------------------------------------------------------------
    package cuentas;

    import java.util.Scanner;

    import javax.swing.JOptionPane;

    public class Cajero {

    public static void main(String[] args) {
    // TODO Auto-generated method stub
    double montotransfer;

    Scanner entrada = new Scanner(System.in);
    cuenta cliente1 = new cuenta(JOptionPane.showInputDialog("ingresar el nombre") , JOptionPane.showInputDialog("ingresar el codigo") , 1/(Integer.parseInt(JOptionPane.showInputDialog("ingresar la tasa interes"))) , Integer.parseInt(JOptionPane.showInputDialog("ingresar el saldo")));
    cuenta cliente2 = new cuenta(JOptionPane.showInputDialog("ingresar el nombre") , JOptionPane.showInputDialog("ingresar el codigo") , 1/(Integer.parseInt(JOptionPane.showInputDialog("ingresar la tasa interes"))) , Integer.parseInt(JOptionPane.showInputDialog("ingresar el saldo")));



    System.out.print("favor ingresa el monto a transferir " );
    montotransfer = entrada.nextDouble();



    System.out.println("monto disponible del cliente 1 " + cliente1.verifica_transfer());
    System.out.println("monto disponible del cliente 2 " + cliente2.verifica_transfer());





    cliente1.transferencia(cliente2, montotransfer);








    System.out.println(cliente1.verifica_transfer());
    System.out.println(cliente2.verifica_transfer());




    }




    }



    --------------------------------------------------------------------
    PD. en la parte de llamar el objeto cliente2 = cuenta c , no pude hacerlo y yo hice fue otra cosa... que al final me daba el resultado correcto, pero no me parecía lo optimo, así que lo cambie.

    ResponderEliminar
  23. Hola no me entero de nada ,no abra videos para expliarlo

    ResponderEliminar
    Respuestas
    1. estas haciendo el curso ahora no? estoy igual que vos jajaja

      Eliminar
  24. El codigo está incompleto, cuando trato de transferirle de la cuenta 3 a la cuenta dos una cantidad mayor a la que tiene la cuenta 3, la cuenta 3 queda con el mismo total de dinero que tiene, pero el error está en que a la cuenta 2 se le agrega el monto asignado en el metodo transferencia con (n), y no tiene porque ya que la cuenta 3 no tiene la suficiente cantidad para transferirle a la cuenta 2 :D

    ResponderEliminar
  25. Alguien me puede decir las clases que se crean y que va en cada clase?

    ResponderEliminar
  26. esto es un ejemplo práctico nada más comenzar... la verdad es que desmoraliza no entender nada de nada. te dan ganas de decir gracias pero esto el primer día y decir que no necesitas preparación previa? en serio?

    ResponderEliminar
  27. El banco UN BANCO mantiene las cuentas de varios clientes. Los datos que describen a cada una de las cuentas consisten en el número de cuenta, el nombre del cliente y el balance actual. Escriba una clase para implementar dicha cuenta bancaria. El método constructor debe aceptar como parámetros el número de cuenta y el nombre. Debe proporcionarse métodos para depositar o retirar una cantidad de dinero y obtener el balance actual. Ojo, es importante verificar antes de realizar un retiro bancario, el estado actual del saldo.
    Alguien que me pueda ayudar de urg

    ResponderEliminar
  28. El ejercicio está mal resuelto, los constructores no se están llamando bien. El constructor por parámetros y el copia han de llamar al constructor por defecto.

    ResponderEliminar
  29. Hola buenas, como hago para presentar un ejemplo como este pero en utilizando Hashmap

    ResponderEliminar
  30. buenas alguien que tenga un formulario donde pueda permitir realizar las operaciones de Deposito, Retiro y Transferencia

    ResponderEliminar
  31. Buenas alguien que tenga el proyecto para abrir o una explicación en YouTube lo necesito, porque la profesora no a llegado a explicar correctamente y tampoco el código no ayuda en mucho gracias.

    ResponderEliminar
  32. Durante la presente actividad extenderemos las funcionalidades de la aplicación bancaria desarrollada. Para ello crearemos:  Una clase Banco con las siguientes funcionalidades: o Un constructor en el que podamos especificar el nombre del banco. o Posibilidad de obtener el nombre del banco desde otras clases, pero no de modificarlo. o Un listado de todas las Cuentas. No debe ser accesible desde otras clases. o La posibilidad de dar de alta una nueva Cuenta.  Para crear la nueva cuenta se especificará solamente:  DNI del cliente  Nombre del cliente  Como número de cuenta se utilizará el DNI del cliente.  Deberemos comprobar que no exista ninguna cuenta anterior con el mismo DNI. o Opción para modificar el Nombre del cliente de una cuenta existente. Para ello se recibirá el DNI y el nuevo nombre del cliente. o Contaremos con la opción de Importar y Exportar el listado de cuentas. Para ello utilizaremos el formato CSV.  Al exportar le preguntaremos al usuario en qué dirección quiere guardar el fichero y en la dirección elegida generaremos un fichero CSV con las siguientes columnas:  Número de cuenta / DNI  Nombre del cliente  Fecha de creación de la cuenta  Saldo actual  Al importar le preguntaremos al usuario la dirección del fichero, que tendrá el mismo formato que al exportar, es decir, un fichero CSV con las siguientes columnas:  Número de cuenta / DNI  Nombre del cliente  Fecha de creación de la cuenta  Saldo actual  Durante el uso de ficheros deberemos tener presente el correcto manejo de las excepciones.
    4  La aplicación creará un objeto banco al iniciar (el nombre puede especificarse directamente en el código) o Daremos la opción al usuario para crear una nueva cuenta. Para ello solamente deberá especificar su nombre y DNI. o El usuario podrá modificar su nombre en la cuenta, para ello especificará su DNI y el nombre corregido. o El usuario podrá hacer ingresos en su cuenta, especificando su DNI y el saldo a ingresar. o El usuario podrá hacer extracciones en su cuenta, especificando su DNI y el saldo a extraer. o El usuario podrá preguntar por los detalles de su cuenta, para ello especificará su DNI. Se mostrará por pantalla:  Número de cuenta / DNI  Nombre del cliente  Fecha de creación de la cuenta  Saldo actual o Si en cualquiera de las operaciones anteriores se especifica un DNI que no está en el sistema se le debe notificar del error al usuario. o El usuario podrá importar de un fichero CSV un listado de cuentas que se añadirán a las cuentas ya existentes en el Banco. o El usuario podrá exportar en un fichero CSV el listado de cuentas existente en el Banco.

    ResponderEliminar
  33. como podria realizar este ejercicio gracias

    ResponderEliminar
  34. Alguien me puede explicar para que es necesario el constructor copia // cuenta3? no le veo la utilidad

    ResponderEliminar
    Respuestas
    1. El constructor copia crea un objeto y le asigna como valores iniciales los del objeto que se le pasa como parámetro. Ten en cuenta que se trata de un ejercicio inicial para trabajar con objetos. En este ejercicio se están utilizando tres constructores para crear objetos, el constructor por defecto, el constructor con parámetros y el constructor copia.

      Eliminar
  35. Buenas, alguien que me de una mano con éste ejercicio, en los puntos b,c,d. por favor.
    Realizar una clase llamada CuentaBancaria en el paquete Entidades con
    los siguientes atributos: numeroCuenta(entero), dniCliente(entero largo),
    saldoActual. Agregar constructor vacío, con parámetros, getters y
    setters.
    Agregar la clase CuentaBancariaServicio en el paquete Servicios que
    contenga:
    a) Método para crear cuenta pidiéndole los datos al usuario.
    b) Método ingresar(double): recibe una cantidad de dinero a ingresar y
    se le sumará al saldo actual.
    c) Método retirar(double): recibe una cantidad de dinero a retirar y se le
    restara al saldo actual. Si la cuenta no tiene la cantidad de dinero a
    retirar se retirará el máximo posible hasta dejar la cuenta en 0.
    d) Método extraccionRapida: le permitirá sacar solo un 20% de su saldo.
    Validar que el usuario no saque más del 20%.
    e) Método consultarSaldo: permitirá consultar el saldo disponible en la
    cuenta.
    f) Método consultarDatos: permitirá mostrar todos los datos de la
    cuenta.

    ResponderEliminar