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.

168 lines
4.3 KiB

4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
  1. Tee luokka Kirja. Kirja-luokalla on ominaisuudet nimi, isbn, hinta ja julkaisuvuosi. Tee luokkaan set-, get- ja toString-metodit, parametriton konstruktori ja parametrillinen konstruktori. Käytä metodien tekemiseen Eclipsen Source valikosta löytyviä Generate toimintoja.
  2. Tee ohjelmaluokka KirjaOhjelma, jossa tehdään kaksi olioita. Ensimmäinen olio tehdään parametrillisella konstruktorilla ja näytetään toString-metodilla. Toinen olio tehdään parametrittomalla konstruktorilla. Tiedot asetetaan set-metodeilla ja näytetään get-metodeilla.
  3. ```
  4. Example output:
  5. Anna nimi: 97 Things Every Java Programmer Should Know
  6. Anna isbn: ei tietoa
  7. Anna hinta: 26,80
  8. Anna julkaisuvuosi: 2020
  9. Kirja [nimi=97 Things Every Java Programmer Should Know, isbn=ei tietoa, hinta=26.8, vuosi=2020]
  10. Nimi: 97 Things Every Java Programmer Should Know
  11. Isbn: ei tietoa
  12. Hinta: 26,80
  13. Julkaisuvuosi: 2020
  14. ```
  15. ------------------
  16. **Kirja.java**
  17. ```
  18. public class Kirja {
  19. private String nimi, isbn;
  20. private double hinta;
  21. private int julkaisuvuosi;
  22. public void setNimi(String nimi) {
  23. this.nimi = nimi;
  24. }
  25. public void setIsbn(String isbn) {
  26. this.isbn = isbn;
  27. }
  28. public void setHinta(double hinta) {
  29. this.hinta = hinta;
  30. }
  31. public void setJulkaisuvuosi(int julkaisuvuosi) {
  32. this.julkaisuvuosi = julkaisuvuosi;
  33. }
  34. public String getNimi() {
  35. return this.nimi;
  36. }
  37. public String getIsbn() {
  38. return this.isbn;
  39. }
  40. public double getHinta() {
  41. return this.hinta;
  42. }
  43. public int getJulkaisuvuosi() {
  44. return this.julkaisuvuosi;
  45. }
  46. // Parametriton konstruktori
  47. public Kirja() {
  48. }
  49. // Parametrillinen konstruktori
  50. public Kirja(String nimi, String isbn, double hinta, int julkaisuvuosi) {
  51. this.setNimi(nimi);
  52. this.setIsbn(isbn);
  53. this.setHinta(hinta);
  54. this.setJulkaisuvuosi(julkaisuvuosi);
  55. }
  56. @Override
  57. public String toString() {
  58. return "Kirja [" +
  59. "nimi=" + this.nimi +
  60. ", isbn=" + this.isbn +
  61. ", hinta=" + this.hinta +
  62. ", vuosi=" + this.julkaisuvuosi +
  63. "]";
  64. }
  65. }
  66. ```
  67. ------------------
  68. **KirjaOhjelma.java**
  69. ```
  70. import java.text.DecimalFormat;
  71. import java.util.InputMismatchException;
  72. import java.util.Scanner;
  73. public class KirjaOhjelma {
  74. private static Kirja kirja = new Kirja();
  75. private String kirjaData;
  76. public static void main() {
  77. // Luodaan olio: Parametriton KirjaOhjelma
  78. // Täällä saamme datan, jota voimme käsitellä parametrillisessa
  79. // oliossa.
  80. KirjaOhjelma kirjaJavaObject_1 = new KirjaOhjelma();
  81. // Luodaan olio: Parametrillinen KirjaOhjelma
  82. KirjaOhjelma kirjaJavaObject_2 = new KirjaOhjelma(
  83. kirja.getNimi(),
  84. kirja.getIsbn(),
  85. kirja.getHinta(),
  86. kirja.getJulkaisuvuosi()
  87. );
  88. System.out.println(kirja);
  89. System.out.println(kirjaJavaObject_2);
  90. }
  91. // Parametrillinen konstruktori
  92. public KirjaOhjelma(String nimi, String isbn, double hinta, int julkaisuvuosi) {
  93. DecimalFormat r2 = new DecimalFormat(".00");
  94. this.kirjaData = String.format(
  95. "Nimi: %s\nIsbn: %s\nHinta: %s\nJulkaisuvuosi: %s\n",
  96. nimi,
  97. isbn,
  98. r2.format(hinta),
  99. julkaisuvuosi
  100. );
  101. }
  102. @Override
  103. public String toString() {
  104. return this.kirjaData;
  105. }
  106. // Parametriton konstruktori
  107. public KirjaOhjelma() {
  108. Scanner syote = new Scanner(System.in);
  109. System.out.print("Anna nimi: ");
  110. kirja.setNimi(syote.nextLine());
  111. System.out.print("Anna isbn: ");
  112. kirja.setIsbn(syote.nextLine());
  113. try {
  114. System.out.print("Anna hinta: ");
  115. kirja.setHinta(syote.nextDouble());
  116. } catch (InputMismatchException e) {
  117. System.err.println("Syöttämäsi hinta ei ole kelvollinen luku");
  118. System.exit(1);
  119. }
  120. try {
  121. System.out.print("Anna julkaisuvuosi: ");
  122. kirja.setJulkaisuvuosi(syote.nextInt());
  123. } catch (InputMismatchException e) {
  124. System.err.println("Syöttämäsi vuosi ei ole kelvollinen luku");
  125. System.exit(1);
  126. }
  127. }
  128. }
  129. ```