Er zijn een aantal manieren waarop u kunt gaan over het creëren van een reken programma in Java . Dit artikel geeft een rekenmachine implementatie die operaties uitvoeren wanneer voorzien van een touwtje met twee operators en een bewerking ( bijvoorbeeld " 2 + 2 " ) , samen met een eenvoudige methode main een console calculator aanvraag. Echter , dit programma kan eenvoudig worden geïmporteerd in een Swing - of AWT - based applicatie of enige andere toepassing waarbij een rekenkundige verklaring moet worden geïnterpreteerd vanuit een string . Wat je nodig hebt Java tekst editor of Java Integrated Development Environment ( IDE ) Toon Meer Aanwijzingen 1 Maak een nieuwe Java- pakket genaamd rekenmachine . Als u ervoor kiest om dit te doen met een speciale IDE , zal er waarschijnlijk een optie om deze in de \\ "Bestand \\ " menu zijn. Anders , gewoon een map ergens op uw harde schijf genaamd " Calculator . " Kopen van 2 Maak de " Calculator.java \\ " class \\ en maak een klasse skelet van het. Nogmaals, als je een IDE gebruiken , is er waarschijnlijk een optie om dit automatisch te doen , maar als je ervoor kiest om een tekstverwerker te gebruiken , gewoon een leeg tekstbestand te maken met \\ " . Java \\ " voor de bestandsextensie en schrijf het volgende erin : pakket rekenmachine GO public class calculator { } 3 Verklaar enkele variabelen . U wilt twee \\ " BigDecimals \\ " (die van de \\ " java.math \\ " pakket moet worden geïmporteerd ) voor uw operanden en een integer voor het soort operatie , evenals enkele constanten aan de mogelijke operaties vertegenwoordigen . Bewerk uw bestand zodat het lijkt alsof dit : pakket rekenmachine GO import java.math.BigDecimal GO ; public class Calculator { BigDecimal operatorOne GO BigDecimal operatorTwo GO Integer operationType GO public final static Integer ADD = 0 GO public final static Integer SUB = 1 GO publieke eindpresentatie statische Integer DIV = 2 GO public final static Integer MULT = 3 GO } 4 Declare methoden . Deze klasse zal gebruik maken van drie methoden . Maar het kan waarschijnlijk krijgen door met slechts een , met veel korte , gemakkelijk te begrijpen methoden beter is dat het hebben van minder , meer complexe methoden . De methoden zullen " boolean parseString ( String s ) ',' private Integer determineOperationType ( String s ) " en " BigDecimal performCalculation ( ) worden genoemd" . De \\ " parseString \\ " , methode een tekenreeks die een rekenkundige operatie vertegenwoordigen in - bijvoorbeeld de \\ " determineOperationType \\ "-methode wordt door \\ " parseString \\ " de werking deel van de staat interpreteren " 2 + 2 . " . De methode \\ " performCalculation \\ " doet de wiskunde en geeft het antwoord . Plaats de volgende code in je klas : boolean parseString ( String s ) { String [ ] exploitanten = S.SPLIT ( \\ " [ ] \\ " ) GO try { operatorOne = new BigDecimal ( exploitanten [ 0 ] ) GO < , br /> operatorTwo = new BigDecimal ( exploitanten [ 2 ] ) GO operationType = determineOperationType ( exploitanten [ 1 ] ) GO return true < , br /> GO } catch ( NumberFormatException e ) { System.err.println ( \\ " FOUT : . Ongeldige operator \\ " ) GO < br /> return false GO } catch ( ArrayIndexOutOfBoundsException e ) { System.err.println ( \\ " ERROR : Ongeldig aantal argumenten : \\ " + operators.length ) GO return false GO } } private integer determineOperationType ( String s ) gooit NumberFormatException { als ( s.equals ( \\ " + \\ " ) ) terug ADD GO else if ( s.equals ( \\ " - \\ " ) ) return SUB GO else if ( s.equals ( \\ " /\\ " ) ) return DIV GO , else if ( s.equals ( \\ " * \\ " ) ) return MULT GO anders werpen een nieuw NumberFormatException ( ) GO } < , br /> BigDecimal performCalculation ( ) { try { als ( operationType == ADD ) { terug operatorOne.add ( operatorTwo ) GO } else if ( operationType == SUB ) { return operatorOne.subtract ( operatorTwo ) GO < br /> } anders als ( operationType == MULT ) { return operatorOne.multiply ( operatorTwo ) GO } else if ( operationType == DIV ) { < , br /> terugkeer operatorOne.divide ( operatorTwo ) GO } anders terugkeer nieuwe BigDecimal ( 0 ) GO } catch ( ArithmeticException e ) { System.err.println ( \\ " Arithmetic Uitzondering opgetreden . waarschijnlijk is dit een deling door nul . \\ " ) GO return nieuwe BigDecimal ( 0 ) GO } } 5 Schrijf een belangrijkste methode . Dit is een eenvoudig voorbeeld programma om uw nieuwe \\ " Calculator \\ " te gebruiken klasse , maar in de praktijk zul je waarschijnlijk wilt uw klas importeren als onderdeel van een ander meer complex programma . Om deze belangrijkste methode om te werken , echter , moet u nog een import-instructie toe te voegen aan de bovenkant van je klas : import java.util.Scanner GO \\ " Scanner \\ " is een gemak -klasse is ontworpen om het gemakkelijker maken om gegevens van de console te lezen . Voeg de volgende belangrijkste methode om je klas : public static void main ( String [ ] args ) { Calculator c = new Calculator ( ) ; GO System.out.println ( \\ " . . Voer een koord om de berekening wordt uitgevoerd vertegenwoordigen Zet een spatie tussen elke token bijvoorbeeld : \\ \\ \\ " 2 + 2 \\ \\ \\ " en niet \\ \\ \\ " 2 +2 \\ \\ \\ " \\ " ) GO Scanner scan = new Scanner ( System.in ) GO < br /> String s = scan.nextLine ( ) GO boolean noerror = c.parseString ( s ) GO als ( noerror ) { BigDecimal bd = c.performCalculation ( ) GO System.out.println ( bd.toPlainString ( ) ) GO < br /> } }
|