Vitajte na [www.pocitac.win] Pripojiť k domovskej stránke Obľúbené stránky

Domáce Hardware Siete Programovanie Softvér Otázka Systémy

Ako vytvoriť triedu Sporiaci účet s Java

Pri vytváraní triedy modelovať informácie o sporiacom účte v Jave , rad špeciálnych úvah vstupujú do hry . Najdôležitejšie z nich je subtílny slabosť pri vykonávaní Java plaváka a dvojlôžkových primitívnych dátových typov , ktoré spôsobuje , že občas vrátiť mierne nepresné odpovede na aritmetické operácie . Tieto nepresnosti , vo väčšine prípadov by bolo triviálne . Avšak, ak sa jedná o záznamy o mene , kde sa malé nepresnosti možno pridať až dramatické , reálnych následkov v priebehu času , môžu byť závažné . Veci , ktoré budete potrebovať
počítačom
Java IDE
vývojového kitu Java
Java Runtime Environment
Zobraziť ďalšie inštrukcie Cestuj 1

Vytvorte triedu SavingsAccount . Ak používate špeciálny Java IDE , je pravdepodobne možnosť vytvoriť kostru triedy automaticky za vás v ponuke Súbor . V opačnom prípade jednoducho vytvorte súbor s názvom " SavingsAccount.java " a napíšte nasledujúce informácie v nej : .

/*** Táto trieda predstavuje informácie spoločné pre všetky sporiace účty * /public class SavingsAccount {

//Všetko ostatné v tutoriálu bude napísané v tomto priestore !

}
2

deklarovať pole triedy . Na minimum , budete pravdepodobne chcieť uložiť číslo účtu , aktuálny zostatok , zoznam držiteľov účtov , a záznamy o všetkých transakciách na účte . Napíšte nasledujúce vnútri triedy :

/*** Číslo účtu * /String AccountNumber ;

/*** aktuálny zostatok .. Nikdy nepoužívajte plaváky alebo štvorhru na menu ! K dispozícii sú nepresnosti v plaváku a dvojitým aritmetiky * /private BigDecimal rovnováhu ; .

/*** Táto ukladá zoznam držiteľa účtu menami ako reťazec . Alternatívou by mohlo byť vytvoriť triedu accountholder a obchod , ktorý tu * /ArrayList accountHolders = new ArrayList ( ) ; .

/*** História transakcií vykonaných na účet . Opäť platí , že alternatívou by bolo vytvoriť triedu transakcií sa držať viac informácií , než je suma transakcie * /súkromné ​​transakcie ArrayList = new ArrayList ( ) ;

dokumentovať svoju prácu , je dôležité , aby kód čitateľnosť a budúcu údržbu , takže sa nemusíte zanedbávať svoje javadoc komentáre .

Jedna veľmi dôležitá vec , ktorú si všimnete , je , že rovnováha a transakcie nie sú zastúpené ako plaváky alebo štvorhre , ale skôr s triednym BigDecimal . BigDecimal je pomalší a metódy náročné na pamäť uloženie čísla s plávajúcou desatinnou čiarkou . Avšak , to chýba drobné nepresnosti plaváka a dvojlôžkových primitív . Vzhľadom k tomu máte čo do činenia s menou , mali by ste radšej presnosť v operáciách s malými ziskami poskytovaných float a double v rýchlosti a spotreby pamäte .
3

Vytvoriť konštruktor . Vo väčšine tried , budete chcieť , aby preťaženie konstruktoru , to znamená , že budete chcieť mať viac ako jednu metódu pre budovanie novej inštancie účtu . Môžete sa sami rozhodnúť , aké druhy konštruktérov bude vyhovovať vašim potrebám , ale minimálne by mal byť konštruktor pre vytvorenie nového účtu dané číslo účtu a počiatočná súvaha , tak pridajte nasledujúce metódu vašej triedy :

/*** Vytvoriť nový účet * @ param AccountNumber číslo nového účtu * @ param vyrovnať počiatočný zostatok na účte * /SavingsAccount ( String AccountNumber , BigDecimal bilancia ) { this.accountNumber = AccountNumber ; this.balance = vyváženie ; }
4

vytvoriť rovnováhu " karierista " a metódu performTransaction . To je štandardný objektovo orientovaného programovania praxe k vytvoreniu metódy pre čítanie a zápis pre všetky oblasti , v triede . Avšak, toto je nevhodné pre pole bilancie . Aj keď by ste mali určite dovoliť zostatok byť videný , nechcete ľubovoľné manipulácie k rovnováhe . Skôr , že chcete všetky zmeny zostatku sa vyskytujú v podobe transakcie . Preto , pridajte nasledujúce dve metódy do triedy

/*** @ return aktuálny zostatok * /BigDecimal getBalance ( ) { return rovnováhu ; } .

/*** Vykoná operáciu na účet . * @ param množstvo , koľko odstúpiť /vklad ? Odstúpi by mala byť záporná . Vklady by mal byť pozitívny . * @ Return Sk True úspešných . False ak neúspešný . Alternatívou k použitiu booleovské tu by bolo vytvoriť " TransactionFailedException " triedu , ktorá by mohla poskytnúť užívateľovi viac informácií o dôvodoch neúspechu . * /Boolean performTransaction ( BigDecimal čiastka ) { if ( amount.compareTo ( BigDecimal.ZERO ) = = -1 ) { //Toto je withdrawif ( amount.abs ( ) compareTo ( rovnováha ) == 1 ) { //stiahnuť suma je vyššia ako balance.return false ; . } else { //tu je dosť peňazí na pokrytie odstúpiť . Upravte vyváženie a prihláste sa transaction.balance = balance.add ( množstvo ) ; transactions.add ( vyššie ) ; return true ; } } else { //Toto je záloha . Pridať k rovnováhe a protokolovať transaction.balance = balance.add ( množstvo ) ; transactions.add ( vyššie ) ; return true ; } }

poskytuje svoje úspory triedu účet s minimom potrebuje fungovať , aj keď stále existujú úpravy , ktoré môžu byť vykonané na neho . Držiak a transakcie účet by mal byť ich vlastné triedy , skôr než jednoduché slučke a BigDecimals , pretože možno budete chcieť uložiť viac informácií o transakcii , než len na sume .

Najnovšie články

Copyright © počítačové znalosti Všetky práva vyhradené