Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

ProblemKodeForklaring
Gjøre om fra tekst (String) to (desimal)tall (double)Double.valueOf(text)Du kaller Double-klassen sin valueOf-metode, for å konvertere en tekst til en double.
Gjøre om fra (desimal)tall til tekstString.valueOf(num) eller "" + numDu kaller enten String.valueOf, eller legger num til "", som konverterer num i samme slengen
Sjekke om en String-variabel er ingentingif (text != null) { ... }En bruker != null for å sjekke om er variabel er ingenting
Sjekke om en String-variabel er tomif (text.length() == 0) { ... }text.length() gir deg antall bokstaver i en String, så her sjekker vi om antall bokstaver er 0

 

Steg 4: Innkapsling og utskilling

I det siste steget skal du innkapsle programmet du har laget så langt. Dette gjøres blant annet med en kalkulator-klasse med lese- og endringsmetoder, i tillegg til synlighetsmodifikatorer.

Kalkulator-klasse
I applikasjoner er det vanlig å dele programmet opp i model, view og controller (MVC-arkitektur). I denne oppgaven vil vi dele det opp slik:

...

Til nå har du laget view (kalkulatorApp.fxml) og controller (KalkulatorController). Modellen vil da være en egen klasse, Kalkulator, som skal ta for seg alt som har med tilstanden til selve kalkulatoren å gjøre, dette krever innkapslede metoder for lesing og endring av attributter innen kalkulator-klassen.
Synlighetsmodifikatorer
I denne delen skal du gi attributter og metoder synlighetsmodifikatorer, slik at ikke alle klasser kan endre tilstanden til hverandre, uten at det er hensikten.


Du skal altså

  • Flytte logikk fra KalkulatorController til en ny Kalkulator-klasse som endrer tilstanden til en kalkulator, som for eksempel memory-feltet og metoder som endrer tilstanden til kalkulatoren.
  • Innkapsle kalkulatoren for å sørge for at den har gyldig tilstand, med både lese- og endringsmetoder, samt synlighetsmodifikatorer.

PS: Husk at hva som skrives inn i selve tekstfeltet er en grafisk del og trenger ikke være en del av kalkulatoren før en har trykket på en operator.

...