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.

320 lines
8.7 KiB

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. ```
  17. // Kirja.java
  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. @Override
  68. public String toString() {
  69. ArrayList<Object> kirjaData = new ArrayList<Object>(Arrays.asList(
  70. "nimi=" + this.getName(),
  71. "isbn=" + this.getISBN(),
  72. "hinta=" + this.getPrice(),
  73. "julkaisuvuosi=" + this.getYear()
  74. ));
  75. ArrayList<Object> kirjaData = new ArrayList<Object>(Arrays.asList(
  76. this.getName(),
  77. this.getISBN(),
  78. this.getPrice(),
  79. this.getYear()
  80. ));
  81. return kirjaData.toString();
  82. }
  83. */
  84. ```
  85. ------------------
  86. ```
  87. // KirjaOhjelma.java
  88. import java.text.DecimalFormat;
  89. import java.util.InputMismatchException;
  90. import java.util.Scanner;
  91. public class KirjaOhjelma {
  92. private static Kirja kirja = new Kirja();
  93. private String kirjaData;
  94. public static void main() {
  95. // Luodaan olio: Parametriton KirjaOhjelma
  96. // Täällä saamme datan, jota voimme käsitellä parametrillisessa
  97. // oliossa.
  98. KirjaOhjelma kirjaJavaObject_1 = new KirjaOhjelma();
  99. // Luodaan olio: Parametrillinen KirjaOhjelma
  100. KirjaOhjelma kirjaJavaObject_2 = new KirjaOhjelma(
  101. kirja.getNimi(),
  102. kirja.getIsbn(),
  103. kirja.getHinta(),
  104. kirja.getJulkaisuvuosi()
  105. );
  106. System.out.println(kirja);
  107. System.out.println(kirjaJavaObject_2);
  108. }
  109. // Parametrillinen konstruktori
  110. public KirjaOhjelma(String nimi, String isbn, double hinta, int julkaisuvuosi) {
  111. DecimalFormat r2 = new DecimalFormat(".00");
  112. this.kirjaData = String.format(
  113. "Nimi: %s\nIsbn: %s\nHinta: %s\nJulkaisuvuosi: %s\n",
  114. nimi,
  115. isbn,
  116. r2.format(hinta),
  117. julkaisuvuosi
  118. );
  119. }
  120. @Override
  121. public String toString() {
  122. return this.kirjaData;
  123. }
  124. // Parametriton konstruktori
  125. public KirjaOhjelma() {
  126. Scanner syote = new Scanner(System.in);
  127. System.out.print("Anna nimi: ");
  128. kirja.setNimi(syote.nextLine());
  129. System.out.print("Anna isbn: ");
  130. kirja.setIsbn(syote.nextLine());
  131. try {
  132. System.out.print("Anna hinta: ");
  133. kirja.setHinta(syote.nextDouble());
  134. } catch (InputMismatchException e) {
  135. System.err.println("Syöttämäsi hinta ei ole kelvollinen luku");
  136. System.exit(1);
  137. }
  138. try {
  139. System.out.print("Anna julkaisuvuosi: ");
  140. kirja.setJulkaisuvuosi(syote.nextInt());
  141. } catch (InputMismatchException e) {
  142. System.err.println("Syöttämäsi vuosi ei ole kelvollinen luku");
  143. System.exit(1);
  144. }
  145. }
  146. }
  147. //System.out.println(kirja);
  148. //ArrayList<Object> kirjaDataArray = new ArrayList<Object>();
  149. //kirjaDataArray.add(kirja.getNimi());
  150. //kirjaDataArray.add("nimi=" + kirja.getNimi());
  151. //kirjaDataArray.add(kirja.getIsbn());
  152. //kirjaDataArray.add("isbn=" + kirja.getIsbn());
  153. //kirjaDataArray.add(kirja.getHinta());
  154. //kirjaDataArray.add("hinta=" + kirja.getHinta());
  155. //kirjaDataArray.add(kirja.getJulkaisuvuosi());
  156. //kirjaDataArray.add("vuosi=" + kirja.getJulkaisuvuosi());
  157. //System.out.println("Kirja: " + kirjaDataArray.toString());
  158. //this.kirjaData = kirjaDataArray;
  159. /*
  160. System.out.printf("Kirja: " +
  161. "nimi=" + kirjaDataArray.get(0).toString(),
  162. "isbn=" + kirjaDataArray.get(1).toString(),
  163. "hinta=" + kirjaDataArray.get(2).toString(),
  164. "vuosi=" + kirjaDataArray.get(3).toString()
  165. );
  166. */
  167. // Parametriton - Kirja
  168. /*Kirja javaKirja = new Kirja();
  169. javaKirja.setNimi("97 Things Every Java Programmer Should Know");
  170. javaKirja.setIsbn("ei tietoa");
  171. javaKirja.setHinta(26.80);
  172. javaKirja.setJulkaisuvuosi(2020);
  173. // Parametrillinen -Kirja
  174. javaKirja = new Kirja(
  175. "97 Things Every Java Programmer Should Know",
  176. "ei tietoa",
  177. 26.80,
  178. 2020
  179. );*/
  180. // Parametrillinen - KirjaOhjelma
  181. //this.javaKirja = new Kirja();
  182. /*
  183. // Parametrillinen konstruktori
  184. public KirjaOhjelma(String nimi, String isbn, double hinta, int julkaisuvuosi) {
  185. DecimalFormat r2 = new DecimalFormat(".00");
  186. this.kirjaData = String.format(
  187. "Nimi: %s\nIsbn: %s\nHinta: %s\nJulkaisuvuosi: %s\n",
  188. nimi,
  189. isbn,
  190. r2.format(hinta),
  191. julkaisuvuosi
  192. );
  193. }*/
  194. /*
  195. // Parametriton konstruktori
  196. public KirjaOhjelma() {
  197. Scanner syote = new Scanner(System.in);
  198. ArrayList<String> kirjaDataArray = new ArrayList<String>();
  199. Kirja kirjaInput = new Kirja();
  200. System.out.print("Anna nimi: ");
  201. kirjaInput.setNimi(syote.nextLine());
  202. kirjaDataArray.add("nimi=" + kirjaInput.getNimi());
  203. System.out.print("Anna isbn: ");
  204. kirjaInput.setIsbn(syote.nextLine());
  205. kirjaDataArray.add("isbn=" + kirjaInput.getIsbn());
  206. System.out.print("Anna hinta: ");
  207. kirjaInput.setHinta(syote.nextDouble());
  208. kirjaDataArray.add("hinta=" + kirjaInput.getHinta());
  209. System.out.print("Anna julkaisuvuosi: ");
  210. kirjaInput.setJulkaisuvuosi(syote.nextInt());
  211. kirjaDataArray.add("julkaisuvuosi=" + kirjaInput.getJulkaisuvuosi());
  212. this.kirjaData = kirjaDataArray;
  213. }
  214. */
  215. /*
  216. @Override
  217. public String toString() {
  218. //if (this.kirjaData instanceof String) {
  219. return this.kirjaData.toString();
  220. //} else {
  221. // return null;
  222. //}
  223. }*/
  224. //private String kirjaDataStr;
  225. //private ArrayList<String> kirjaData = new ArrayList<String>();
  226. /*
  227. @Override
  228. public String toString() {
  229. DecimalFormat r2 = new DecimalFormat(".00");
  230. String t = String.format(
  231. "Nimi: %s\nIsbn: %s\nHinta: %s\nJulkaisuvuosi: %s\n",
  232. this.kirjaInput.getName(),
  233. this.kirjaInput.getISBN(),
  234. r2.format(this.kirjaInput.getPrice()),
  235. this.kirjaInput.getYear()
  236. );
  237. return String.format("%s\n\n%s", this.kirjaInput.toString(), t);
  238. //return this.kirjaInput.toString();
  239. }*/
  240. //this.kirjaInput = kirjaUserInput;
  241. /*this.kirjaData = new ArrayList<Object>(Arrays.asList(
  242. "nimi=" + this.kirjaInput.getName(),
  243. "isbn=" + this.kirjaInput.getISBN(),
  244. "hinta=" + this.kirjaInput.getPrice(),
  245. "julkaisuvuosi=" + this.kirjaInput.getYear()
  246. ));*/
  247. ```