Java fundamentals through coding exercises
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 

2.6 KiB

Tee luokka Remontti, jolla on attribuutit vuosi (int), kuvaus (String). Tee luokkaan parametriton konstruktori, joka asettaa vuodeksi nykyisen vuoden. Nykyisen vuoden saat käyttämällä LocalDate luokkaa. Tee lisäksi set- ja get-metodit ja toString-metodi. setVuosi metodin tarkastaa, ettei remontin vuosi ole nykyistä vuotta suurempi. Metodi palauttaa true, jos vuosi pystyttiin asettamaan eli sen on nykyinen tai sitä aiempi vuosi muuten metodi palauttaa false eikä aseta vuodeksi annettua vuotta. Tee ohjelmaluokka RemonttiOhjelma, jossa tehdään yksi olio.

Jos ohjelman suoritus onnistuu, sen täytyy toimia seuraavasti:

Anna vuosi: 2019
Anna kuvaus: Putkiremontti
Vuonna 2019 tehtiin remontti Putkiremontti

Jos annettu päivämäärä on tulevaisuudessa, ohjelma toimii seuraavasti:

Anna vuosi: 2030
Vuosi ei voi olla tulevaisuudessa
Example output:
Anna vuosi: 2030
Vuosi ei voi olla tulevaisuudessa

Remontti.java

import java.time.LocalDate;
import java.util.InputMismatchException;
import java.util.Scanner;
public class Remontti {
private int vuosi;
private String kuvaus;
// set-metodit
public boolean setVuosi(int vuosi) {
LocalDate nykyHetki = LocalDate.now();
if (vuosi > nykyHetki.getYear()) {
System.out.println("Vuosi ei voi olla tulevaisuudessa");
return false;
} else {
this.vuosi = vuosi;
return true;
}
}
public void setKuvaus(String kuvaus) {
this.kuvaus = kuvaus;
}
// get-metodit
public int getVuosi() {
return vuosi;
}
public String getKuvaus() {
return kuvaus;
}
public Remontti() {
Scanner syote = new Scanner(System.in);
System.out.print("Anna vuosi: ");
try {
if (!this.setVuosi(syote.nextInt())) {
System.exit(0);
}
} catch (InputMismatchException e) {
System.err.println("Syöte ei ole kokonaisluku");
System.exit(1);
}
// Consume previous newline
syote.nextLine();
System.out.print("Anna kuvaus: ");
this.setKuvaus(syote.nextLine());
}
@Override
public String toString() {
return String.format(
"Vuonna %d tehtiin remontti %s",
this.getVuosi(),
this.getKuvaus()
);
}
}

RemonttiOhjelma.java

public class RemonttiOhjelma {
public static void main() {
Remontti remppa = new Remontti();
System.out.println(remppa);
}
}