Προγραμματισμός

* Γνώση Υπολογιστών >> Προγραμματισμός >> Προγραμματισμός Java

Πώς να δημιουργήσετε ένα Class Λογαριασμός Ταμιευτηρίου Με Java

Όταν δημιουργείτε μια κατηγορία με το μοντέλο του πληροφορίες για ένα λογαριασμό ταμιευτηρίου στην Java , μια σειρά από ειδικές εκτιμήσεις μπαίνουν στο παιχνίδι . Το πιο σημαντικό από αυτά είναι μια λεπτή αδυναμία στην εφαρμογή Java του float και το διπλό πρωτόγονες τύπους δεδομένων που τους αναγκάζει να επιστρέψουν περιστασιακά ελαφρώς ανακριβείς απαντήσεις για τις αριθμητικές πράξεις . Αυτές οι ανακρίβειες , στις περισσότερες περιπτώσεις , θα είναι άνευ σημασίας . Ωστόσο , όταν ασχολείται με τα αρχεία του νομίσματος , όπου οι μικρές ανακρίβειες μπορούν να προσθέσουν έως και δραματική , πραγματικό κόσμο συνέπειες πάροδο του χρόνου, μπορεί να γίνει σοβαρή . Τα πράγματα που θα χρειαστείτε
Υπολογιστών
Java IDE
Java κιτ ανάπτυξης
Java Runtime Environment
Η Εμφάνιση Περισσότερες οδηγίες
Η 1

Δημιουργήστε μια κλάση SavingsAccount . Εάν χρησιμοποιείτε ένα εξειδικευμένο Java IDE , υπάρχει πιθανότατα μια επιλογή για να δημιουργήσει αυτόματα σκελετός μαθήματα για σας από το μενού Αρχείο . Διαφορετικά , απλά δημιουργήστε ένα αρχείο με όνομα " SavingsAccount.java » και να γράψει τις ακόλουθες πληροφορίες σε αυτό : .

/*** Αυτή η κλάση αντιπροσωπεύει στοιχεία που είναι κοινά σε όλους τους λογαριασμούς ταμιευτηρίου * /δημόσια τάξη SavingsAccount {

//Όλα τα άλλα στο φροντιστήριο θα γραφτεί σε αυτό το χώρο !

} 2

να αναγνωρίσει τα πεδία κατηγορίας . Στο ελάχιστο , μάλλον θα θέλετε να αποθηκεύσετε έναν αριθμό λογαριασμού , το τρέχον υπόλοιπο , τον κατάλογο των δικαιούχων του λογαριασμού , και μια καταγραφή όλων των συναλλαγών στο λογαριασμό. Γράψτε τα εξής μέσα στην τάξη:

/*** Ο αριθμός λογαριασμού * /String accountNumber ?

/*** Το ισοζύγιο τρεχουσών . . Ποτέ μην χρησιμοποιείτε πλωτήρες ή διπλασιάζεται για το νόμισμα ! Υπάρχουν ανακρίβειες σε float και το διπλό αριθμητική * /ιδιωτική ισορροπία BigDecimal ? .

/*** Αυτό αποθηκεύει μια λίστα με ονόματα κάτοχος του λογαριασμού ως ένα string . Μια εναλλακτική λύση θα ήταν να δημιουργηθεί μια κατηγορία του κατόχου λογαριασμού και κατάστημα που εδώ * /ArrayList κάτοχοι λογαριασμών = νέα ArrayList ()? .

/*** Μια ιστορία των πράξεων που διενεργούνται από την λογαριασμό . Και πάλι , μια εναλλακτική λύση θα ήταν να δημιουργηθεί μια κατηγορία συναλλαγών για να κρατήσει περισσότερες πληροφορίες από το ποσό της συναλλαγής * /ιδιωτικές συναλλαγές ArrayList = νέα ArrayList ( ) ?

Τεκμηριώνοντας την εργασία σας , είναι σημαντικό να αναγνωσιμότητας κώδικα και τη μελλοντική συντήρηση , ώστε να μην παραμελήσει τα σχόλια JavaDoc σας .

Ένα πολύ σημαντικό πράγμα που πρέπει να παρατηρήσετε είναι ότι η ισορροπία και οι συναλλαγές δεν εκπροσωπούνται ως πλωτήρες ή διπλασιάζεται , αλλά μάλλον με την κατηγορία BigDecimal . BigDecimal είναι μια πιο αργή και πιο μέθοδος πολλή μνήμη για την αποθήκευση αριθμών κινητής υποδιαστολής . Ωστόσο, δεν διαθέτει τις μικρές ανακρίβειες του float και το διπλό αρχέτυπα . Δεδομένου ότι έχετε να κάνετε με το νόμισμα , θα πρέπει να προτιμούν την ακρίβεια σε επιχειρήσεις των μικρών κερδών που παρέχονται από πλωτήρα και να διπλασιάσει την ταχύτητα και την κατανάλωση μνήμης .
Εικόνων 3

Δημιουργήστε ένα κατασκευαστή . Στα περισσότερα μαθήματα , θα θελήσετε να επιβαρύνει κατασκευαστή σας? Δηλαδή , θα θελήσετε να έχουν περισσότερες από μία μέθοδος για την οικοδόμηση μιας νέας περιόδου λειτουργίας του λογαριασμού . Μπορείτε να αποφασίσετε για τον εαυτό σας τι είδους κατασκευαστές θα ταιριάζει στις ανάγκες σας , αλλά τουλάχιστον, θα πρέπει να υπάρχει ένας κατασκευαστής για τη δημιουργία ενός νέου λογαριασμού δίνεται ένα αριθμό λογαριασμού και μια αρχική ισορροπία , έτσι ώστε να προσθέσετε την ακόλουθη μέθοδο στην τάξη σας :

/*** δημιουργήσετε ένα νέο λογαριασμό * @ param accountNumber τον αριθμό του νέου λογαριασμού * @ param ισορροπία ισορροπία έναρξη του λογαριασμού * /SavingsAccount ( String accountNumber , την ισορροπία BigDecimal ) { this.accountNumber = accountNumber ? this.balance = ισορροπία? }
Η 4

Δημιουργήστε μια ισορροπία " κτήτορας " και μια μέθοδο performTransaction . Είναι πρότυπο Αντικειμενοστρεφής Προγραμματισμός πρακτική να δημιουργήσετε getters και setters για όλους τους τομείς σε μια τάξη . Ωστόσο , αυτή είναι ακατάλληλη για το πεδίο ισορροπία. Ενώ θα πρέπει σίγουρα να επιτρέψει την ισορροπία που πρέπει να προβληθούν , δεν θέλετε αυθαίρετες μεθοδεύσεις για την ισορροπία . Αντίθετα , θέλετε όλες οι αλλαγές στην ισορροπία που εμφανίζονται με τη μορφή της συναλλαγής . Ως εκ τούτου , προσθέστε τις ακόλουθες δύο μεθόδους για την τάξη σας

/*** @ επιστρέψει την τρέχουσα ισορροπία * /BigDecimal getBalance ( ) { ισορροπία επιστροφή? } .

/*** Εκτελεί μια συναλλαγή στο λογαριασμό . * @ param ποσό πόσο για ανάληψη /κατάθεση ; Αποσύρει πρέπει να είναι αρνητική . Καταθέσεις πρέπει να είναι θετική . * @ Επιστροφή Αληθές επιτυχής. False αν ηττηθεί . Μια εναλλακτική λύση για τη χρήση boolean εδώ θα ήταν να δημιουργηθεί μια κατηγορία « TransactionFailedException " που θα μπορούσαν να παρέχουν στο χρήστη περισσότερες πληροφορίες σχετικά με τους λόγους για την αποτυχία . * /Boolean performTransaction ( BigDecimal ποσό) {if ( amount.compareTo ( BigDecimal.ZERO ) = = -1 ) { //Αυτό είναι ένα withdrawif ( amount.abs ( ) compareTo (υπόλοιπο ) == 1 ) { //το ποσό ανάληψης είναι μεγαλύτερη από την balance.return ψευδείς? . } else { //υπάρχει αρκετά χρήματα να καλύψει το αποσύρει . Τροποποιήσετε την εξισορρόπηση και καταγράφει το transaction.balance = balance.add ( ποσό) ? Transactions.add ( ποσό) ? Return true ? } } Else { //Αυτό είναι μια κατάθεση . Προσθήκη στην ισορροπία και να καταγράψει το transaction.balance = balance.add ( ποσό) ? Transactions.add ( ποσό) ? Return true ? } }

Αυτό παρέχει λογαριασμό ταμιευτηρίου σας τάξη με το ελάχιστο που χρειάζεται για να λειτουργήσει , αν και εξακολουθούν να υπάρχουν βελτιώσεις που μπορούν να γίνουν σε αυτό . Κάτοχο και την κίνηση του λογαριασμού θα πρέπει να είναι δικές τους τάξεις , και όχι απλή έγχορδα και BigDecimals , αφού μπορεί να θέλετε να αποθηκεύσετε περισσότερες πληροφορίες σχετικά με μια συναλλαγή από απλά το ποσό που εμπλέκονται .
Η
εικόνων

Συναφής σύστασή

Πνευματικά δικαιώματα © Γνώση Υπολογιστών Όλα τα δικαιώματα κατοχυρωμένα