## Conversie

In de tweede regel van de programmacode van de RenteApp staat de volgende toekenning:
beginkapitaal = Integer.parseInt(beginkapitaalVeld.getText());
Er staan twee methode-aanroepen in:

- Integer.parseInt()
- beginkapitaalVeld.getText()

Beide methoden zullen we bekijken.
De methode getText() haalt een waarde van het type String uit het beginkapitaalVeld.

Deze waarde wordt vervolgens toegekend aan beginkapitaal. Voor het ontwerp van de interface van de RenteApp in JavaEditor hebben we gevraagd gebruik te maken van een TextField in plaats van een NumberField. We zullen nu toelichten waarom we dat speciale verzoek hebben gedaan. De waarde die uit een tekstveld wordt gehaald, is altijd van het type String. De variabele beginkapitaal is echter van het type int (geheel getal). Een waarde van het type String kan niet zomaar worden toegekend aan het type int. In de RenteApp gaan we rekenen met getallen. We moeten de waarde die we uit het tekstveld halen daarom omzetten naar een getal. Om een waarde van het type String om te zetten naar het type int gebruik je de methode parseInt() uit de klasse Integer.

Het omzetten van een waarde van het ene type in een waarde van een ander type noemen we conversie. Daarvoor worden verschillende methoden gebruikt:

- parseInt() uit de klasse Integer: om een waarde van het type String te converteren naar het type int.
- parseDouble uit de klasse Double: om een waarde van het type String te converteren naar het type double.
- valueOf() uit de klasse String: om een waarde van het type int of double te converteren naar het type String.

Na het uitrekenen van het eindbedrag willen we het totaalbedrag laten zien in het eindkapitaalVeld. Een tekstveld accepteert echter alleen waarden van het type String. Er is dus wederom conversie vereist. Het geheel getal moet worden omgezet naar een waarde van het type String. We gebruiken daarvoor de methode valueOf() uit de klasse String.

Na de conversie van int naar String plaatsen we met de methode setText() de waarde van de variabele eindkapitaal in het eindkapitaalVeld

eindkapitaalVeld.setText(String.valueOf(kapitaal));
Als we in de interface van de RenteApp in plaats van TextField’s NumberField’s hadden gebruikt, hadden we geen conversieregels hoeven toe te passen.
In plaats van beginkapitaal = Integer.parseInt(beginkapitaalVeld.getText());
had er dan gestaan beginkapitaal = beginkapitaalVeld.getInt();.
De methode getInt() haalt een waarde van het type int uit het beginkapitaalVeld. Het beginkapitaalVeld moet dan wel een numeriek veld zijn. De code voor de event-handler van de berekenKnop had er ook een stuk eenvoudiger uit gezien. Deze code staat op de volgende pagina.

int beginkapitaal;
beginkapitaal = beginkapitaalVeld.getInt();
int rente;
rente = renteVeld.getInt();
int termijnen;
termijnen = termijnenVeld.getInt();
int kapitaal;
kapitaal = beginkapitaal;
int termijn;
termijn = 1;
while (termijn <= termijnen){
kapitaal = kapitaal + kapitaal * rente / 100;
termijn = termijn + 1;
}
eindkapitaalVeld.setInt(kapitaal);
Als je goed met Java wilt werken, is het erg belangrijk dat je je bewust bent van het werken met verschillende typen variabelen. Dat is de reden waarom we in dit voorbeeld gekozen hebben voor TextField’s in plaats van NumberField’s. In vervolgopdrachten mag je gebruik maken van NumberField’s als er gewerkt wordt met getallen.