Tee luokka Tee luokka Asunto, jolla on attribuutit tyyppi (String), osoite (String), pinta-ala (double), hinta (double) ja kuvaus(String). Tee luokkaan parametriton ja parametrillinen konstruktori, set- ja get-metodit ja toString-metodi. Tee ohjelmaluokka AsuntoOhjelma, jossa tehdään yksi olio. ``` Example output: Anna asunnon tyyppi: Kerrostalo Anna osoite: Ivalontie 12, 99800 Inari Anna pinta-ala: 72,0 Anna hinta: 72000,00 Anna kuvaus: valon keskustassa katutasossa 72 m2:n liikehuoneisto Tyyppi: Kerrostalo Osoite: Ivalontie 12, 99800 Inari Pinta-ala: 72,00 Hinta: 72000,00 euroa Kuvaus: valon keskustassa katutasossa 72 m2:n liikehuoneisto ``` ------------------ ``` // Asunto.java import java.text.DecimalFormat; import java.util.InputMismatchException; import java.util.Scanner; public class Asunto { private String tyyppi, osoite, kuvaus; private double pinta_ala, hinta; // set-metodit public void setTyyppi(String tyyppi) { this.tyyppi = tyyppi; } public void setOsoite(String osoite) { this.osoite = osoite; } public void setKuvaus(String kuvaus) { this.kuvaus = kuvaus; } public void setPinta_ala(double pinta_ala) { this.pinta_ala = pinta_ala; } public void setHinta(double hinta) { this.hinta = hinta; } // get-metodit public String getTyyppi() { return tyyppi; } public String getOsoite() { return osoite; } public String getKuvaus() { return kuvaus; } public double getPinta_ala() { return pinta_ala; } public double getHinta() { return hinta; } // Parametrillinen konstruktori public Asunto(String tyyppi, String osoite, double pinta_ala, double hinta, String kuvaus){ this.setTyyppi(tyyppi); this.setOsoite(osoite); this.setPinta_ala(pinta_ala); this.setHinta(hinta); this.setKuvaus(kuvaus); } // Parametriton konstruktori public Asunto() { Scanner syote = new Scanner(System.in); System.out.print("Anna asunnon tyyppi: "); this.setTyyppi(syote.nextLine()); System.out.print("Anna osoite: "); this.setOsoite(syote.nextLine()); try { System.out.print("Anna pinta-ala: "); this.setPinta_ala(syote.nextDouble()); } catch (InputMismatchException e) { System.err.println("Syöttämäsi pinta-ala ei ole kelvollinen luku"); System.exit(1); } try { System.out.print("Anna hinta: "); this.setHinta(syote.nextDouble()); } catch (InputMismatchException e) { System.err.println("Syöttämäsi hinta ei ole kelvollinen luku"); System.exit(1); } // Consume newline syote.nextLine(); System.out.print("Anna kuvaus: "); this.setKuvaus(syote.nextLine()); } @Override public String toString() { DecimalFormat r2 = new DecimalFormat(".00"); return String.format( "Tyyppi: %s\nOsoite: %s\nPinta-ala: %s\nHinta: %s\nKuvaus: %s", this.getTyyppi(), this.getOsoite(), r2.format(this.getPinta_ala()), r2.format(this.getHinta()) + " euroa", this.getKuvaus() ); } } ``` ------------------ ``` // AsuntoOhjelma.java public class Song { private String title; private Artist artist; private int year; private int length; public String getTitle() { return this.title; } public void setTitle(String title) { this.title = title; } public Artist getArtist() { return this.artist; } public void setArtist(Artist artist) { this.artist = artist; } public int getYear() { return this.year; } public void setYear(int year) { this.year = year; } public int getLength() { return this.length; } public void setLength(int length) { this.length = length; //return this.length; } public String toString() { if (this.artist != null) { return this.title + " by " + this.artist; } else { return this.title; } } } ```