Exercises in this lecture   Go to the notes, in which this exercise belongs -- Keyboard shortcut: 'u'   Alphabetic index   Course home   

Exercise solution 2.1
Modifikationer af Konto klassen


Jeg har valgt at bruge native Java arrays som transaktioner. Man kunne overveje at lave en mere fleksibel løsning involverende en Collection klasse og en Transaktions klasse. I så fald skulle et objekt af typen Transkation repræsentere en enkelt transaktion på kontoten. Her er min simple løsning:

/* Denne version af programmet er løsningen på opgave A i oop-intr */

class Konto {
   private static double RenteSats = 0.02;   // altså 2% i rente
   private final static int MAXTRANSAKTIONER = 100;

   private String navn;

   private double[] transaktioner;
   private int næsteTransaktion = 0;

   Konto(String nytNavn) {
      transaktioner = new double[MAXTRANSAKTIONER];
      navn = nytNavn; 
   }

   public double balance () {
      double sum = 0.0;
      int i;
      for(i=0; i < næsteTransaktion; i++)
      sum = sum + transaktioner[i];
      return sum;
   }

   public void hæv ( double beløb ) {
     transaktioner[næsteTransaktion] = -beløb;
     næsteTransaktion = næsteTransaktion + 1;
   }

   public void indsæt ( double beløb) {
     transaktioner[næsteTransaktion] = beløb;
     næsteTransaktion = næsteTransaktion + 1;
   }         

   public void overførFra(double beløb, Konto fra) {
      fra.hæv(beløb);
      this.indsæt(beløb);
   } 

   public void tilskrivRente() {
     double rente = balance() * RenteSats;

     transaktioner[næsteTransaktion] = rente;
     næsteTransaktion = næsteTransaktion + 1;
   }

   public String toString() {
      return navn + "'s konto indeholder "
            + balance() + " kroner";
   }
} // Konto


class Bank1A {
 
   public static void main( String[] args ) {

     Konto konto1 = new Konto("Jens");
     Konto konto2 = new Konto("Peter");

     konto1.indsæt(100);
     konto2.indsæt(500);
     System.out.println(konto1);  System.out.println(konto2); System.out.println();

     konto1.indsæt(3);
     konto2.indsæt(5);
     System.out.println(konto1);  System.out.println(konto2); System.out.println();

     konto1.tilskrivRente();
     konto2.hæv(125);
     System.out.println(konto1);  System.out.println(konto2); System.out.println();

     konto1.overførFra(25, konto2);
     System.out.println(konto1);  System.out.println(konto2); System.out.println();

   }
}


Her er endvidere et link til det rene Java program .