Datamaskin
  | Hjem | Hardware | Nettverk | Programmering | Software | Feilsøking | Systems | 
Programmering  
  • C /C + + Programming
  • Computer Programmeringsspråk
  • Delphi Programming
  • Java Programming
  • JavaScript Programmering
  • PHP /MySQL programmering
  • Perl Programming
  • Python Programming
  • Ruby Programming
  • Visual Basics Programming
  •  
    Datamaskin >> Programmering >> Java Programming >> Content
    Hvordan lage en sparekonto klasse med Java
    Når du oppretter en klasse å modellere informasjon for en sparekonto i Java , en rekke spesielle hensyn spiller inn . Den viktigste av disse er en subtil svakhet i Java gjennomføringen av float og double primitive datatyper som får dem til å av og til tilbake litt unøyaktige svar på aritmetiske operasjoner . Disse unøyaktigheter , under de fleste omstendigheter, ville være trivielt . Men når du arbeider med registreringer av valuta, der små unøyaktigheter kan legge opp til dramatiske, reelle konsekvenser over tid , kan de bli alvorlig . Du trenger
    Computer
    Java IDE
    Java Development Kit
    Java Runtime Environment
    Vis flere instruksjoner
    en

    Lag en SavingsAccount klasse . Hvis du bruker en spesialisert Java IDE , er det sannsynligvis et alternativ for å skape skjelett klasser automatisk for deg i Fil-menyen. Ellers bare lage en fil som heter " SavingsAccount.java " og skriv følgende info i det: .

    /*** Denne klassen representerer informasjon som er felles for alle sparekontoer * /public class SavingsAccount {
    < p> //Alt annet i opplæringen vil bli skrevet i dette rommet !

    }
    2

    Erklærer klassen felt. På minimum , vil du sannsynligvis ønske å lagre et kontonummer , gjeldende saldo , en liste over kontoinnehavere , og en oversikt over alle transaksjoner på kontoen. Skriv følgende i klassen : en

    /*** Kontonummeret * /String kontonummer ;

    /*** Den nåværende balanse. . Bruk aldri flyter eller dobbeltrom for valuta! Det er unøyaktigheter i float og double aritmetiske * /private BigDecimal balanse ; .

    /*** Dette lagrer en liste over kontoholderen navn som en streng. Et alternativ kan være å lage en kontohaver klasse , og butikk som her * /ArrayList accountholders = new ArrayList (); .

    /*** En historie om transaksjoner utført på kontoen. Igjen , ville en alternativ være å opprette en Transaction klassen til å holde mer informasjon enn mengden av transaksjonen * /private ArrayList transaksjoner = new ArrayList ();

    Dokumentere arbeidet ditt er viktig å kode lesbarhet og fremtidig vedlikehold , så ikke overse javadoc kommentarer .

    en svært viktig ting du bør legge merke til er at balanse og transaksjoner er ikke representert som flyter eller dobbeltrom , men heller med klassen BigDecimal . BigDecimal er en langsommere og mer minne - intensive metoden for lagring av flyttall . Imidlertid mangler det de små unøyaktigheter i float og double primitive . Siden du har å gjøre med valuta, bør du foretrekker nøyaktighet i driften til de små gevinster gitt av float og doble i hastighet og minneforbruk .
    3

    Lag en konstruktør . I de fleste klasser , vil du ønsker å overbelaste konstruktøren , det er, vil du ønsker å ha mer enn én metode for å bygge en ny konto eksempel. Du kan bestemme selv hva slags konstruktører vil dekke dine behov , men på minimum, bør det være en konstruktør for å opprette en ny konto gitt et kontonummer og en start balanse , så legger du til følgende metode i klassen din :

    /*** Opprett en ny konto * @ param kontonummer den nye kontoen nummer * @ param balanse kontoens start balanse * /SavingsAccount (String kontonummer , BigDecimal balanse) { this.accountNumber = kontonummer ; this.balance = balanse ; }
    4

    Lag en balanse " getter " og en performTransaction metode. Det er standard objektorientert programmering praksis å skape getters og settere for alle felt i en klasse . Dette er imidlertid uhensiktsmessig for det balanse -feltet. Mens du bør absolutt tillate balansen for å bli sett , om du ikke ønsker vilkårlige manipulasjoner til balansen . Snarere ønsker du alle endringer i balansen å skje i form av en transaksjon . Derfor legger du til følgende to metoder til klassen

    /*** @ return gjeldende saldo * /BigDecimal getBalance ( ) . {Return balanse ;}

    /*** Utfører en transaksjon på kontoen. * @ param beløpet hvor mye du skal trekke /depositum? Trekker seg skal være negative. Innskudd bør være positiv. * @ Return True fra vellykket. Usann hvis mislykket . Et alternativ til å bruke en boolean her vil være å lage en " TransactionFailedException " class som kan gi brukeren mer informasjon om årsakene til svikten . * /Boolean performTransaction ( BigDecimal beløp) { if ( amount.compareTo ( BigDecimal.ZERO ) = = -1 ) { //Dette er en withdrawif ( amount.abs ( ) compareTo ( balanse) == 1 ) { //The trekke beløpet er større enn balance.return false; . } else { //det er nok penger å dekke trekke seg . Endre balansen og logge transaction.balance = balance.add ( beløp) ; transactions.add ( beløp) ; return true ;} } else { //Dette er et depositum . Legg til balanse og logge transaction.balance = balance.add ( beløp) ; transactions.add ( beløp) ; return true ;} }
    p Dette gir din sparekonto klasse med minimum den trenger for å fungere, om det fortsatt forbedringer som kan gjøres til det. Kontohaver og transaksjoner bør være egne klasser , snarere enn enkle strenger og BigDecimals , siden du kanskje ønsker å lagre mer informasjon om en transaksjon enn bare beløpet som er involvert .

    früher :

     Weiter:
      Relatert Artike
    ·Hvordan bruke Preparerte Uttalelser i ETL Java Caps 
    ·Slik sletter JPA i Java 
    ·Hva Er String klasse i Java 
    ·Hvordan skrive din egen Simple Java Message Queue 
    ·Hvordan bygge en ny webside ved hjelp av JSP 
    ·Hvordan lage en privat Boolsk i Java 
    ·Sette inn Tabs Into Strings i Java 
    ·Forskjellen mellom en Java applet og Javascript 
    ·Hvordan feilsøke et Java program Bruk av NetBeans 
    ·Hvordan Draw pyramidene i Java 
      Anbefalte artikler
    ·Hvordan kan jeg sikkerhetskopiere Min MySQL- database i…
    ·Hvordan å kompilere Python kommandoer 
    ·Java Script Kontroll av Form Text Input for spesialtegn…
    ·Slik endrer PHP eller ASP.NET versjon med enom web host…
    ·Grunnleggende algoritmer i datastrukturer 
    ·Hvordan lage en mal System i PHP 
    ·Hvordan å konsumere en Atom -feed i Python 
    ·Hvordan Fell til heltall i VB6 
    ·Hva er CSS Maler 
    ·Opplæring for ADODC Kontroll 
    Copyright ©  Datamaskin  http://www.datamaskin.biz/