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.

188 lines
4.2 KiB

4 years ago
  1. 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.
  2. ```
  3. Example output:
  4. Anna asunnon tyyppi: Kerrostalo
  5. Anna osoite: Ivalontie 12, 99800 Inari
  6. Anna pinta-ala: 72,0
  7. Anna hinta: 72000,00
  8. Anna kuvaus: valon keskustassa katutasossa 72 m2:n liikehuoneisto
  9. Tyyppi: Kerrostalo
  10. Osoite: Ivalontie 12, 99800 Inari
  11. Pinta-ala: 72,00
  12. Hinta: 72000,00 euroa
  13. Kuvaus: valon keskustassa katutasossa 72 m2:n liikehuoneisto
  14. ```
  15. ------------------
  16. ```
  17. // Asunto.java
  18. import java.text.DecimalFormat;
  19. import java.util.InputMismatchException;
  20. import java.util.Scanner;
  21. public class Asunto {
  22. private String tyyppi, osoite, kuvaus;
  23. private double pinta_ala, hinta;
  24. // set-metodit
  25. public void setTyyppi(String tyyppi) {
  26. this.tyyppi = tyyppi;
  27. }
  28. public void setOsoite(String osoite) {
  29. this.osoite = osoite;
  30. }
  31. public void setKuvaus(String kuvaus) {
  32. this.kuvaus = kuvaus;
  33. }
  34. public void setPinta_ala(double pinta_ala) {
  35. this.pinta_ala = pinta_ala;
  36. }
  37. public void setHinta(double hinta) {
  38. this.hinta = hinta;
  39. }
  40. // get-metodit
  41. public String getTyyppi() {
  42. return tyyppi;
  43. }
  44. public String getOsoite() {
  45. return osoite;
  46. }
  47. public String getKuvaus() {
  48. return kuvaus;
  49. }
  50. public double getPinta_ala() {
  51. return pinta_ala;
  52. }
  53. public double getHinta() {
  54. return hinta;
  55. }
  56. // Parametrillinen konstruktori
  57. public Asunto(String tyyppi, String osoite, double pinta_ala, double hinta, String kuvaus){
  58. this.setTyyppi(tyyppi);
  59. this.setOsoite(osoite);
  60. this.setPinta_ala(pinta_ala);
  61. this.setHinta(hinta);
  62. this.setKuvaus(kuvaus);
  63. }
  64. // Parametriton konstruktori
  65. public Asunto() {
  66. Scanner syote = new Scanner(System.in);
  67. System.out.print("Anna asunnon tyyppi: ");
  68. this.setTyyppi(syote.nextLine());
  69. System.out.print("Anna osoite: ");
  70. this.setOsoite(syote.nextLine());
  71. try {
  72. System.out.print("Anna pinta-ala: ");
  73. this.setPinta_ala(syote.nextDouble());
  74. } catch (InputMismatchException e) {
  75. System.err.println("Syöttämäsi pinta-ala ei ole kelvollinen luku");
  76. System.exit(1);
  77. }
  78. try {
  79. System.out.print("Anna hinta: ");
  80. this.setHinta(syote.nextDouble());
  81. } catch (InputMismatchException e) {
  82. System.err.println("Syöttämäsi hinta ei ole kelvollinen luku");
  83. System.exit(1);
  84. }
  85. // Consume newline
  86. syote.nextLine();
  87. System.out.print("Anna kuvaus: ");
  88. this.setKuvaus(syote.nextLine());
  89. }
  90. @Override
  91. public String toString() {
  92. DecimalFormat r2 = new DecimalFormat(".00");
  93. return String.format(
  94. "Tyyppi: %s\nOsoite: %s\nPinta-ala: %s\nHinta: %s\nKuvaus: %s",
  95. this.getTyyppi(),
  96. this.getOsoite(),
  97. r2.format(this.getPinta_ala()),
  98. r2.format(this.getHinta()) + " euroa",
  99. this.getKuvaus()
  100. );
  101. }
  102. }
  103. ```
  104. ------------------
  105. ```
  106. // AsuntoOhjelma.java
  107. public class Song {
  108. private String title;
  109. private Artist artist;
  110. private int year;
  111. private int length;
  112. public String getTitle() {
  113. return this.title;
  114. }
  115. public void setTitle(String title) {
  116. this.title = title;
  117. }
  118. public Artist getArtist() {
  119. return this.artist;
  120. }
  121. public void setArtist(Artist artist) {
  122. this.artist = artist;
  123. }
  124. public int getYear() {
  125. return this.year;
  126. }
  127. public void setYear(int year) {
  128. this.year = year;
  129. }
  130. public int getLength() {
  131. return this.length;
  132. }
  133. public void setLength(int length) {
  134. this.length = length;
  135. //return this.length;
  136. }
  137. public String toString() {
  138. if (this.artist != null) {
  139. return this.title + " by " + this.artist;
  140. } else {
  141. return this.title;
  142. }
  143. }
  144. }
  145. ```