La tarea es crear diferentes clases de uso de la herencia en la creación de cuentas bancarias. Nosotros, a continuación, depositar, retirar y reporte de saldos. Tengo 4 clases:

Superclase: Cuentabancaria

Subclase: Cuenta De Cheques

Subclase: Cuenta De Ahorros

Método de la clase: BankApp

BankAccount Superclase:

public class BankAccount {
    String firstName;
    String lastName;
    String ssn;
    protected float balance;
    float withdraw;
    float deposit;
    long accountNumber;

    BankAccount (){
    }

    BankAccount(String firstName, String lastName, String ssn, float balance){
        this.firstName = firstName;
        this.lastName = lastName;
        this.ssn = ssn;
        this.balance = balance;
    }

    long accountNumber() {
        long accountNumber = (long) Math.floor(Math.random() * 9000000000L) + 1000000000L;
        return accountNumber;
    }

    public void deposit(float amount) {
    balance = balance + amount;
    System.out.println(firstName + " " + lastName + " deposited $" + deposit + ". Current Balance $" + balance);

    }    

    public void withdraw(float amount) {
        if (balance >= withdraw) {
            balance = balance - amount;
            System.out.println(firstName + " " + lastName + " withdrew $" + withdraw + ". Current Balance $" + balance);
        }
        if (balance < withdraw) {
            System.out.println("Unable to withdraw " + amount + " for " + firstName + " " + lastName + " due to insufficient funds.");
        }
    }
}

Cuenta De Cheques Subclase:

public class CheckingAccount extends BankAccount {

    float amtInterest;
    float applyInterest;
    String displayBalance;

    public CheckingAccount() {
    }

    public CheckingAccount(String firstName, String lastName, String ssn, float balance) {
        super(firstName, lastName, ssn, balance);
        System.out.println("Successfully created account for " + firstName + " " + lastName + " " + accountNumber);
        System.out.println(firstName + " " + lastName + ", Balance $" + balance);
    }    

    float applyInterest () {
       if (balance <= 10000) {
           balance = balance * 0.1f;  
           }
       if (balance > 10000) {
           balance = 1000 + (balance * 0.02f);
       }
       return balance;
    }

    float displayBalance() {
        return balance;
    }
}

Omití el SavingsAccount Subclase porque puedo ajustar esa clase con la ayuda de ustedes me puede dar en estas dos clases.

De salida:

Successfully created account for Alin Parker 0 //Not displaying a random account number (1)
Alin Parker, Balance $1000.0
Successfully created account for Mary Jones 0
Mary Jones, Balance $500.0
Successfully created account for John Smith 0
John Smith, Balance $200.0
Alin Parker deposited $0.0. Current Balance $23000.0 //Deposit being calculated but displayed as 0 (2)
Mary Jones deposited $0.0. Current Balance $12500.0
Alin Parker withdrew $0.0. Current Balance $21000.0 //Withdrawal being calculated but displayed as 0 (3)
Mary Jones withdrew $0.0. Current Balance $11500.0
Alin Parker withdrew $0.0. Current Balance $-28580.0 //Should not show negative balance and only notice below (4)
Unable to withdraw 30000.0 for Alin Parker due to insufficient funds 

He expuesto mis preguntas anteriores en la salida:

1) estudio Aleatorizado de 10 dígitos del número de cuenta es el que se muestran como 0

2) cantidad del Depósito se deducirá, pero mostrando 0

3) monto de Retiro se deduce sino que se muestran como 0

4) Los «fondos insuficientes» declaración debe mostrar en lugar de un saldo negativo

5) método Principal tiene funciones que no se están llevando a cabo:

public class BankApp {
    public static void main(String[] args) {
        CheckingAccount acct1 = new CheckingAccount("Alin", "Parker", "123-45-6789", 1000.0f);

        CheckingAccount acct2 = new CheckingAccount("Mary", "Jones", "987-65-4321", 500.0f);

        SavingsAccount acct3 = new SavingsAccount("John", "Smith", "1233-45-6789", 200.0f);

        acct1.deposit(22000.00f);
        acct2.deposit(12000.00f);


        acct1.withdraw(2000.00f);
        acct2.withdraw(1000.00f);

        acct1.applyInterest(); //seems to skip
        acct2.applyInterest(); //seems to skip

        acct1.displayBalance(); //seems to skip
        acct2.displayBalance(); //seems to skip

        acct1.withdraw(30000.00f);
    }
}

Gracias de antemano por su ayuda

  • ¿Qué diablos está pasando aquí, el uso de todo el mal variables es por eso que la banalidad de trabajo. Buscar en cada uno de sus métodos y caminar a través de qué realmente se está haciendo. Empecé a escribir un awnser pero la awnser a cada pregunta de su preguntando es «el uso de una variable incorrecta». SUGERENCIA: asegúrese de la clase de variables privado, también puede cambiar a una convención de nomenclatura para las variables de la clase donde todos empiezan con un carácter de subrayado. Así como _firstName esto ayudará a mantener a lo variable de su uso de forma más clara.
  • Posibles duplicados de stackoverflow.com/questions/25336914/…
  • El link no abordar todos los de mi pregunta. Ser un n00b, no ayuda a tener mi reputación de ser negados. Estoy buscando ayuda.
InformationsquelleAutor vs-works | 2014-08-17

1 Comentario

  1. 0

    El problema es con :

       public void withdraw(float amount) {
            if (balance >= withdraw) {  
                balance = balance - amount;
                System.out.println(firstName + " " + lastName + " withdrew $" + withdraw + ". Current Balance $" + balance);
            }
            if (balance < withdraw) {
                System.out.println("Unable to withdraw " + amount + " for " + firstName + " " + lastName + " due to insufficient funds.");
            }
        }

    La solución es :

    public void withdraw(float amount) {
            if (balance >= amount) {
                balance = balance - amount;
                System.out.println(firstName + " " + lastName + " withdrew $" + amount + ". Current Balance $" + balance);
            }
            if (balance < amount) {
                System.out.println("Unable to withdraw " + amount + " for " + firstName + " " + lastName + " due to insufficient funds.");
            }
        }
    • Gracias. Que resolver una cosa.
    • que son los errores que aparecen, además de los que he mencionado?
    • Eso es un error ya que después de la retirada de la balanza se comprueba de nuevo. La segunda condición que debe ser reemplazado por else.

Dejar respuesta

Please enter your comment!
Please enter your name here