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.
 

4.2 KiB

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