Tröstrika banken
Last updated
Last updated
Till denna övningsuppgift medföljer ett projekt där en klass, Account
, saknas. Klassen Program
och dess Main
-metod finns redan definierad. Din uppgift är att skriva en klassdeklaration för den saknade klassen, så att koden i Main
kan köras utan problem och ger en utskrift enligt nedan.
Du får inte redigera koden i klassen Program
på något sätt. All kod du skriver ska skrivas i klassdeklarationen till klassen Account
. Genom att analysera utskriften, klassdiagrammet och metoden Main
ska du komma fram till hur klassen ska implementeras.
Account
Klassen representerar ett enkelt bankkonto. Klassen innehåller fält som representerar bankkontots ägare, nummer och saldo. Räntan lagras i en symbolisk konstant, Rate
(som du ger värdet 3,5 % eller snarare värdet 0.035).
Klassen Account
har en konstruktor som tar tre parametrar, vilka används till att initiera ett nytt objekt då det instansieras av klassen.
De båda egenskaperna AccountNumber
och Name
tillhandahåller enbart en publik get
-metod vardera. Egenskapen Balance
, som både har en get
- och en set
-metod, är kopplad till fältet _balance
men det är bara get
-metoden som ska vara publik; set
-metoden ska vara privat.
Klassens övriga metoder är publika och används för att göra olika saker som att sätta in och ta ut pengar. Innan en metod får modifiera saldot (_balance
) måste den undersöka datat som skickas in till metoden så att en transaktion kan utföras korrekt. Exempelvis måste metoden Withdraw()
hindra alla försök till ett negativt uttag (som ju då skulle bli en insättning).
Du anropar AddInterest()
för att lägga till ränta till bankkontot. Multiplicera saldot med räntan och addera resultatet av multiplikationen (produkten) till saldot.
För att sätta in pengar på kontot anropar du metoden Deposit()
. Du måste kontrollera att beloppet som ska sättas in verkligen är större än 0. Är det inte större än 0 kastar du ett undantag med meddelandet "The amount can not be less than 0.".
Då du vill presentera ett bankkonto anropar du metoden DisplayAccount()
. Bankkontonummer, innehavarens namn samt saldot ska presenteras. Använd tabbtecken (\t
) för att separera de olika värdena åt. För att presentera ett tal som en valuta använder du dig av formatspecificeraren c
, t.ex. {0:c}
.
För att ta ut pengar från bankkontot anropar du metoden Withdraw()
. Du måste förvissa dig om att det finns pengar på kontot så att de räcker både till uttaget och till avgiften för uttaget innan uttaget genomförs. Saknas pengar kastar du ett undantag med meddelandet "Manage your account wisely so you do not overdraw.".
Efter att ha gjort uppgiften ska du kunna:
Veta hur du skapar objekt och initierar ett objekts fält med hjälp av en konstruktor.
Känna till att:
egenskapers get
- och set
-metoder kan vara en mix av public
och private
.
egenskaper som bara har en get
-metod kan trots det tilldelas ett värde i konstruktorn (s.k. immutable property).
Kunna använda en privat symbolisk konstant i en klass.
Läs om:
Grunderna om klasser och objekt hittar du i inledningen av kapitel 5, som bl.a. tar upp saker som konstruktorer (constructors), accessmodifierare (access modifiers), fält (fields) och egenskaper (properties).
Konstant som fält i kurslitteraturen, kapitel 5, under rubriken ”Encapsulating the Data”.
Grunderna i hur du kastar undantag hittar du i inledningen av kapitel 10.