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. 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. ``` Example output: Anna nimi: 97 Things Every Java Programmer Should Know Anna isbn: ei tietoa Anna hinta: 26,80 Anna julkaisuvuosi: 2020 Kirja [nimi=97 Things Every Java Programmer Should Know, isbn=ei tietoa, hinta=26.8, vuosi=2020] Nimi: 97 Things Every Java Programmer Should Know Isbn: ei tietoa Hinta: 26,80 Julkaisuvuosi: 2020 ``` ------------------ ``` // Kirja.java public class Kirja { private String nimi, isbn; private double hinta; private int julkaisuvuosi; public void setNimi(String nimi) { this.nimi = nimi; } public void setIsbn(String isbn) { this.isbn = isbn; } public void setHinta(double hinta) { this.hinta = hinta; } public void setJulkaisuvuosi(int julkaisuvuosi) { this.julkaisuvuosi = julkaisuvuosi; } public String getNimi() { return this.nimi; } public String getIsbn() { return this.isbn; } public double getHinta() { return this.hinta; } public int getJulkaisuvuosi() { return this.julkaisuvuosi; } // Parametriton konstruktori public Kirja() { } // Parametrillinen konstruktori public Kirja(String nimi, String isbn, double hinta, int julkaisuvuosi) { this.setNimi(nimi); this.setIsbn(isbn); this.setHinta(hinta); this.setJulkaisuvuosi(julkaisuvuosi); } @Override public String toString() { return "Kirja [" + "nimi=" + this.nimi + ", isbn=" + this.isbn + ", hinta=" + this.hinta + ", vuosi=" + this.julkaisuvuosi + "]"; } } /* @Override public String toString() { ArrayList kirjaData = new ArrayList(Arrays.asList( "nimi=" + this.getName(), "isbn=" + this.getISBN(), "hinta=" + this.getPrice(), "julkaisuvuosi=" + this.getYear() )); ArrayList kirjaData = new ArrayList(Arrays.asList( this.getName(), this.getISBN(), this.getPrice(), this.getYear() )); return kirjaData.toString(); } */ ``` ------------------ ``` // KirjaOhjelma.java import java.text.DecimalFormat; import java.util.InputMismatchException; import java.util.Scanner; public class KirjaOhjelma { private static Kirja kirja = new Kirja(); private String kirjaData; public static void main() { // Luodaan olio: Parametriton KirjaOhjelma // Täällä saamme datan, jota voimme käsitellä parametrillisessa // oliossa. KirjaOhjelma kirjaJavaObject_1 = new KirjaOhjelma(); // Luodaan olio: Parametrillinen KirjaOhjelma KirjaOhjelma kirjaJavaObject_2 = new KirjaOhjelma( kirja.getNimi(), kirja.getIsbn(), kirja.getHinta(), kirja.getJulkaisuvuosi() ); System.out.println(kirja); System.out.println(kirjaJavaObject_2); } // Parametrillinen konstruktori public KirjaOhjelma(String nimi, String isbn, double hinta, int julkaisuvuosi) { DecimalFormat r2 = new DecimalFormat(".00"); this.kirjaData = String.format( "Nimi: %s\nIsbn: %s\nHinta: %s\nJulkaisuvuosi: %s\n", nimi, isbn, r2.format(hinta), julkaisuvuosi ); } @Override public String toString() { return this.kirjaData; } // Parametriton konstruktori public KirjaOhjelma() { Scanner syote = new Scanner(System.in); System.out.print("Anna nimi: "); kirja.setNimi(syote.nextLine()); System.out.print("Anna isbn: "); kirja.setIsbn(syote.nextLine()); try { System.out.print("Anna hinta: "); kirja.setHinta(syote.nextDouble()); } catch (InputMismatchException e) { System.err.println("Syöttämäsi hinta ei ole kelvollinen luku"); System.exit(1); } try { System.out.print("Anna julkaisuvuosi: "); kirja.setJulkaisuvuosi(syote.nextInt()); } catch (InputMismatchException e) { System.err.println("Syöttämäsi vuosi ei ole kelvollinen luku"); System.exit(1); } } } //System.out.println(kirja); //ArrayList kirjaDataArray = new ArrayList(); //kirjaDataArray.add(kirja.getNimi()); //kirjaDataArray.add("nimi=" + kirja.getNimi()); //kirjaDataArray.add(kirja.getIsbn()); //kirjaDataArray.add("isbn=" + kirja.getIsbn()); //kirjaDataArray.add(kirja.getHinta()); //kirjaDataArray.add("hinta=" + kirja.getHinta()); //kirjaDataArray.add(kirja.getJulkaisuvuosi()); //kirjaDataArray.add("vuosi=" + kirja.getJulkaisuvuosi()); //System.out.println("Kirja: " + kirjaDataArray.toString()); //this.kirjaData = kirjaDataArray; /* System.out.printf("Kirja: " + "nimi=" + kirjaDataArray.get(0).toString(), "isbn=" + kirjaDataArray.get(1).toString(), "hinta=" + kirjaDataArray.get(2).toString(), "vuosi=" + kirjaDataArray.get(3).toString() ); */ // Parametriton - Kirja /*Kirja javaKirja = new Kirja(); javaKirja.setNimi("97 Things Every Java Programmer Should Know"); javaKirja.setIsbn("ei tietoa"); javaKirja.setHinta(26.80); javaKirja.setJulkaisuvuosi(2020); // Parametrillinen -Kirja javaKirja = new Kirja( "97 Things Every Java Programmer Should Know", "ei tietoa", 26.80, 2020 );*/ // Parametrillinen - KirjaOhjelma //this.javaKirja = new Kirja(); /* // Parametrillinen konstruktori public KirjaOhjelma(String nimi, String isbn, double hinta, int julkaisuvuosi) { DecimalFormat r2 = new DecimalFormat(".00"); this.kirjaData = String.format( "Nimi: %s\nIsbn: %s\nHinta: %s\nJulkaisuvuosi: %s\n", nimi, isbn, r2.format(hinta), julkaisuvuosi ); }*/ /* // Parametriton konstruktori public KirjaOhjelma() { Scanner syote = new Scanner(System.in); ArrayList kirjaDataArray = new ArrayList(); Kirja kirjaInput = new Kirja(); System.out.print("Anna nimi: "); kirjaInput.setNimi(syote.nextLine()); kirjaDataArray.add("nimi=" + kirjaInput.getNimi()); System.out.print("Anna isbn: "); kirjaInput.setIsbn(syote.nextLine()); kirjaDataArray.add("isbn=" + kirjaInput.getIsbn()); System.out.print("Anna hinta: "); kirjaInput.setHinta(syote.nextDouble()); kirjaDataArray.add("hinta=" + kirjaInput.getHinta()); System.out.print("Anna julkaisuvuosi: "); kirjaInput.setJulkaisuvuosi(syote.nextInt()); kirjaDataArray.add("julkaisuvuosi=" + kirjaInput.getJulkaisuvuosi()); this.kirjaData = kirjaDataArray; } */ /* @Override public String toString() { //if (this.kirjaData instanceof String) { return this.kirjaData.toString(); //} else { // return null; //} }*/ //private String kirjaDataStr; //private ArrayList kirjaData = new ArrayList(); /* @Override public String toString() { DecimalFormat r2 = new DecimalFormat(".00"); String t = String.format( "Nimi: %s\nIsbn: %s\nHinta: %s\nJulkaisuvuosi: %s\n", this.kirjaInput.getName(), this.kirjaInput.getISBN(), r2.format(this.kirjaInput.getPrice()), this.kirjaInput.getYear() ); return String.format("%s\n\n%s", this.kirjaInput.toString(), t); //return this.kirjaInput.toString(); }*/ //this.kirjaInput = kirjaUserInput; /*this.kirjaData = new ArrayList(Arrays.asList( "nimi=" + this.kirjaInput.getName(), "isbn=" + this.kirjaInput.getISBN(), "hinta=" + this.kirjaInput.getPrice(), "julkaisuvuosi=" + this.kirjaInput.getYear() ));*/ ```