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.
 

8.7 KiB

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<Object> kirjaData = new ArrayList<Object>(Arrays.asList(
"nimi=" + this.getName(),
"isbn=" + this.getISBN(),
"hinta=" + this.getPrice(),
"julkaisuvuosi=" + this.getYear()
));
ArrayList<Object> kirjaData = new ArrayList<Object>(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<Object> kirjaDataArray = new ArrayList<Object>();
//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<String> kirjaDataArray = new ArrayList<String>();
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<String> kirjaData = new ArrayList<String>();
/*
@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<Object>(Arrays.asList(
"nimi=" + this.kirjaInput.getName(),
"isbn=" + this.kirjaInput.getISBN(),
"hinta=" + this.kirjaInput.getPrice(),
"julkaisuvuosi=" + this.kirjaInput.getYear()
));*/