ContoCorrente.java
Created with JBuilder
class ContoCorrente {
  // Valori preimpostati per il massimo scoperto e le commissioni
  public static final double COMMISSIONE_PERCENTUALE = 0.0;
  public static final double MAX_SCOPERTO = 0.0;
  
  // Attributo per consentire la numerazione progressiva dei conti
  private static int progressivoConti = 0;
  
  // Attributi del conto
  private int numero;
  private String intestatario;
  private double saldo;
  private double commissione;
  private double maxScoperto;
  
  // Costruttore
  public ContoCorrente( String intestatario ) {
    // Attribuisco un numero al conto e incremento il progressivo
    numero = progressivoConti++;
    this.intestatario = intestatario;
    saldo = 0.0;
    commissione = COMMISSIONE_PERCENTUALE;
    maxScoperto = MAX_SCOPERTO;
  }
  
  // Metodi per il deposito e il prelievo
  public void deposita( double somma ) {
    double deposito = somma - (somma * commissione);
    saldo += deposito;
  }
  public boolean preleva( double somma ) {
    double prelievo = somma + (somma * commissione);
    if ((saldo - prelievo) < maxScoperto) {
      return false;
    } else {
      saldo -= prelievo;
      return true;
    }
  }
  
  // Metodi di impostazione e restituzione
  public void impostaIntestatario(String intestatario) {
    this.intestatario = intestatario;
  }
  public void impostaCommissione(double commissione) {
    this.commissione = commissione;
  }
  public void impostaFido(double fido) {
    // Il fido è un importo positivo pari al valore 
    // assoluto del massimo scoperto 
    maxScoperto = -1 * fido;
  }
  public int restituisciNumero() {
    return numero;
  }
  public String restituisciIntestatario() {
    return intestatario;
  }
  public double restituisciSaldo() {
    return saldo;
  }
  public double restituisciCommissione() {
    return commissione;
  }
  public double restituisciFido() {
    return (-1 * maxScoperto);
  }
  
}

ContoCorrente.java
Created with JBuilder