|
|
- 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 +
- "]";
- }
- }
- ```
-
- ------------------
-
- **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);
- }
-
- }
-
- }
- ```
|