|
|
- Tässä tehtävässä harjoittelemme oliomuuttujien käyttöä. Tallenna osittain toteutettu luokka VahenevaLaskuri itsellesi tiedostoon VahenevaLaskuri.java:
-
- ```
- public class VahenevaLaskuri {
- private int arvo; // oliomuuttuja joka muistaa laskurin arvon
-
- public VahenevaLaskuri(int arvoAlussa) {
- this.arvo = arvoAlussa;
- }
-
- public void tulostaArvo() {
- System.out.println("arvo: " + this.arvo);
- }
-
- public void vahene() {
- // kirjoita tänne metodin toteutus
- // laskurin arvon on siis tarkoitus vähentyä yhdellä
- }
-
- // ja tänne muut metodit
- }
-
- Seuraavassa esimerkki miten pääohjelma käyttää vähenevää laskuria:
-
- public class Paaohjelma {
- public static void main(String[] args) {
- VahenevaLaskuri laskuri = new VahenevaLaskuri(10);
-
- laskuri.tulostaArvo();
-
- laskuri.vahene();
- laskuri.tulostaArvo();
-
- laskuri.vahene();
- laskuri.tulostaArvo();
- }
- }
- ```
-
- ```
- Pitäisi tulostua:
-
- arvo: 10
- arvo: 9
- arvo: 8
- ```
-
- VahenevaLaskuri-luokan konstruktorille annetaan parametrina alkuarvo. Esimerkin oliota laskuri luodessa laskurille välitetään parametrina arvo 10. Esimerkin laskuri-olioon liittyvään oliomuuttujaan arvoasetetaan siis aluksi arvo 10. Laskurin arvon voi tulostaa metodilla tulostaArvo(). Laskurilla tulee myös olla metodi vahene() joka vähentää laskurin arvoa yhdellä.
-
- --------------------
-
- **Osa 1: Metodin vahene() toteutus**
-
- Täydennä luokan runkoon metodin vahene() toteutus sellaiseksi, että se vähentää arvo -oliomuuttujaa yhdellä. Kun olet toteuttanut metodin vahene(), edellisen esimerkin pääohjelman tulee toimia esimerkkitulosteen mukaan.
-
- **Osa 2: Laskurin arvo ei saa olla negatiivinen**
-
- Täydennä metodin vahene() toteutus sellaiseksi, ettei laskurin arvo mene koskaan negatiiviseksi. Eli jos laskurin arvo on jo 0, ei vähennys sitä enää vähennä. Ehtolause auttaa tässä.
-
- **Osa 3: Laskurin arvon nollaus**
-
- Tee laskurille metodi public void nollaa() joka nollaa laskurin arvon, esim:
-
- ```
- public class Paaohjelma {
- public static void main(String[] args) {
- VahenevaLaskuri laskuri = new VahenevaLaskuri(100);
-
- laskuri.tulostaArvo();
-
- laskuri.nollaa();
- laskuri.tulostaArvo();
-
- laskuri.vahene();
- laskuri.tulostaArvo();
- }
- }
- ```
-
- ```
- Tulostaa:
-
- arvo: 100
- arvo: 0
- arvo: 0
- ```
-
- Huom! Hyödynnä tehtäväkuvauksessa annettuja Paaohjelma-esimerkkiluokkia ohjelmasi testaamisessa. VahenevaLaskuri-luokkasi ei saa sisältää main-metodia.
-
- ```
- Example output:
- == Testikoodi ==
-
- VahenevaLaskuri laskuri = new VahenevaLaskuri(10)
- laskuri.tulostaArvo();
-
- laskuri.vahene();
- laskuri.tulostaArvo();
-
- laskuri.vahene();
- laskuri.tulostaArvo();
-
- == Ohjelman tuloste ==
-
- arvo: 10
- arvo: 9
- arvo: 8
- ```
-
- ------------------
-
- **VahenevaLaskuri.java**
-
- ```
- public class VahenevaLaskuri {
- private int arvo; // oliomuuttuja joka muistaa laskurin arvon
-
- public VahenevaLaskuri(int arvoAlussa) {
- this.arvo = arvoAlussa;
- }
-
- public void tulostaArvo() {
- System.out.println("arvo: " + this.arvo);
- }
-
- public void vahene() {
- if (this.arvo > 0) {
- this.arvo -= 1;
- }
- }
-
- public void nollaa() {
- this.arvo = 0;
- }
- }
- ```
|