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);
}
}