Abend Leute,
Ich soll mit einem Kumpel für die Uni ein kleines Java-Projekt programmieren, als Einführung in Java. Es geht dabei um ein Artikel Verwaltungssystem mit ein paar Klassen(Artikel etc.), einem ArtikelDAO Interface und einer SerializedArtikelDAO Klasse welche ArtikelDAO implementiert. Letztere sollen die Objekte der Klassen in einer externen Datei speichern. Wir haben dafür eine Array Liste mit Typ Artikel in der Serialized DAO Klasse erstellt, welche nun in einer ArtikelManagement Klasse, die in einem anderem Package gespeichert ist, verwendet werden soll. Wir haben schon ein wenig herumprobiert aber nichts funktioniert, wäre toll wenn uns jemand einen Tipp geben könnte
Schonmal vielen Dank im Vorraus!
Cheers
Flügelnuss
Hier noch der Code:
ArtikelManagement
ArtikelDAO
SerializedArtikelDAO
Artikel Klasse
Ich soll mit einem Kumpel für die Uni ein kleines Java-Projekt programmieren, als Einführung in Java. Es geht dabei um ein Artikel Verwaltungssystem mit ein paar Klassen(Artikel etc.), einem ArtikelDAO Interface und einer SerializedArtikelDAO Klasse welche ArtikelDAO implementiert. Letztere sollen die Objekte der Klassen in einer externen Datei speichern. Wir haben dafür eine Array Liste mit Typ Artikel in der Serialized DAO Klasse erstellt, welche nun in einer ArtikelManagement Klasse, die in einem anderem Package gespeichert ist, verwendet werden soll. Wir haben schon ein wenig herumprobiert aber nichts funktioniert, wäre toll wenn uns jemand einen Tipp geben könnte
Schonmal vielen Dank im Vorraus!
Cheers
Flügelnuss
Hier noch der Code:
ArtikelManagement
Java:
package at.ac.univie.swe2015.av.artikel;
import java.io.Serializable;
public class ArtikelManagement{
private String artikelDAO;
public ArtikelManagement(String artikelDAO){
this.artikelDAO = artikelDAO;
}
public String getArtikelDAO() {
return artikelDAO;
}
public void setArtikelDAO(String artikelDAO) {
this.artikelDAO = artikelDAO;
}
public String getArtikelDaten(){
for (int i = 0; i < artArrList. size(); i++) {
System.out.println("Verlag: "artArrList.get(i).getVerlag());
System.out.println("Titel: "artArrList.get(i).getTitel());
System.out.println("Erscheinungsdatum: "artArrList.get(i).getErscheinungsdatum());
System.out.println("Grundpreis: "artArrList.get(i).getVerlag());
System.out.println("ID: "artArrList.get(i).getVerlag());
}
}
public void addArtikel(Artikel a){
speichereArtikel(a);
}
public void deleteArtikel(Artikel a){
loescheArtikel(a);
}
public int getGesamtanzahlArtikel(){
int i;
for (i = 0; i < artArrList.size(); i++);
return i;
}
public int getGesamtanzahlBuecher(){
int count;
for (int i = 0; i < artArrList.size(); i++){
if(artArrList.get(i) instanceof Buch){
count++;
}
}
return count;
}
public int getGesamtanzahlDVDs(){
int count;
for (int i = 0; i < artArrList.size(); i++){
if(artArrList.get(i) instanceof DVD){
count++;
}
}
return count;
}
public double getDurchschnittspreisArtikel(){
int priceAdder = 0;
int count = 0;;
for (int i = 0; i < artArrList.size(); i++){
priceAdder = priceAdder + artArrList.get(i).getPreis();
count++;
}
return priceAdder/i;
}
public double getDurchschnittspreisBuecher(){
int priceAdder = 0;
int count = 0;
for (int i; = 0; i < artArrList.size(); i++){
if(artArrList.get(i) instanceof Buch){
priceAdder = priceAdder + artArrList.get(i).getPreis();
count++;
}
}
return priceAdder/count;
}
public double getDurchschnittspreisDVD(){
int priceAdder = 0;
int count = 0;
for (int i; = 0; i < artArrList.size(); i++){
if(artArrList.get(i) instanceof DVD){
priceAdder = priceAdder + artArrList.get(i).getPreis();
count++;
}
}
return priceAdder/count;
}
public double getDurchschnittsalterArtikel(){
int ageAdder = 0;
int count = 0;
for (int i; = 0; i < artArrList.size(); i++){
ageAdder = ageAdder + artArrList.get(i).getAlter();
}
return ageAdder/count;
}
public double getDurchschnittsalterBuecher(){
int ageAdder = 0;
int count = 0;
for (int i; = 0; i < artArrList.size(); i++){
if(artArrList.get(i) instanceof Buch){
ageAdder = ageAdder + artArrList.get(i).getAlter();
count++;
}
}
return ageAdder/count;
}
public double getDurchschnittsalterDVD(){
int ageAdder = 0;
int count = 0;
for (int i; = 0; i < artArrList.size(); i++){
if(artArrList.get(i) instanceof DVD){
ageAdder = ageAdder + artArrList.get(i).getAlter();
count++;
}
}
return ageAdder/count;
}
public Artikel getAeltersterArtikel(){
Artikel save;
for(int i = 0; i < artArrList.size(); i++){
if(i < artArrList.get(i).getAlter){
save = artArrList.get(i);
}
}
return save;
}
public Buch getAelterstesBuch(){
Buch save;
for(int i = 0; i < artArrList.size(); i++){
if(artArrList.get(i) instanceof Buch){
if(i < artArrList.get(i).getAlter){
save = artArrList.get(i);
}
}
}
return save;
}
public DVD getAeltersteDVD(){
DVD save;
for(int i = 0; i < artArrList.size(); i++){
if(artArrList.get(i) instanceof DVD){
if(i < artArrList.get(i).getAlter){
save = artArrList.get(i);
}
}
}
return save;
}
}
ArtikelDAO
Java:
package at.ac.univie.swe2015.av.artikel.dao;
import java.util.*;
import at.ac.univie.swe2015.av.artikel.Artikel;
public interface ArtikelDAO {
public List getArtikelList();
public Artikel getArtikelById(int id);
public void speichereArtikel(Artikel a);
public void loescheArtikel(Artikel a);
}
SerializedArtikelDAO
Java:
package at.ac.univie.swe2015.av.artikel.dao;
import java.io.*;
import java.util.*;
import at.ac.univie.swe2015.av.artikel.Artikel;
public class SerializedArtikelDAO implements ArtikelDAO {
private String dateiname;
public List<Artikel> artArrList = new ArrayList<Artikel>();
public SerializedArtikelDAO(String dateiname){
this.dateiname = dateiname;
}
@Override
public List getArtikelList() {
ObjectInputStream in = null;
try {
in = new ObjectInputStream(new FileInputStream(dateiname));
artArrList = (ArrayList<Artikel>) in.readObject();
} catch (FileNotFoundException ex) {
System.out.println("Speichersdatei (noch) nicht vorhanden!");
} catch (Exception ex) {
System.out.println(ex);
} finally {
try {
if(in != null) in.close();
} catch(IOException e) {}
}
return artArrList;
}
@Override
public Artikel getArtikelById(int id) {
ObjectInputStream in = null;
try {
in = new ObjectInputStream(new FileInputStream(dateiname));
artArrList = (ArrayList<Artikel>) in.readObject();
for (int i = 0; i < artArrList.size(); i++) {
if(artArrList.get(i).getId()==id){
return artArrList.get(i);
}
}
} catch (FileNotFoundException ex) {
System.out.println("Speichersdatei (noch) nicht vorhanden!");
} catch (Exception ex) {
System.out.println(ex);
} finally {
try {
if(in != null) in.close();
} catch(IOException e) {}
}
return null;
}
@Override
public void speichereArtikel(Artikel a) {
OutputStream os = null;
try {
os = new FileOutputStream(dateiname);
ObjectOutputStream oos = new ObjectOutputStream(os);
artArrList.add(a);
oos.writeObject(artArrList);
} catch (IOException e) {
System.err.println(e);
} finally {
try {
os.close();
System.out.println(artArrList + " wurde erfolgreich als Name der Person festgelegt!");
} catch (Exception e) {
e.printStackTrace();
}
}
}
@Override
public void loescheArtikel(Artikel a) {
OutputStream os = null;
try {
os = new FileOutputStream(dateiname);
ObjectOutputStream oos = new ObjectOutputStream(os);
artArrList.remove(a);
oos.writeObject(artArrList);
} catch (IOException e) {
System.err.println(e);
} finally {
try {
os.close();
System.out.println(artArrList + " wurde erfolgreich als Name der Person festgelegt!");
} catch (Exception e) {
e.printStackTrace();
}
}
}
}
Artikel Klasse
Java:
package at.ac.univie.swe2015.av.artikel;
import java.util.*;
public abstract class Artikel {
private String verlag;
private String titel;
private Calendar erscheinungsdatum;
private double grundpreis;
private static int id;
public String getVerlag() {
return verlag;
}
public void setVerlag(String verlag) {
this.verlag = verlag;
}
public String getTitel() {
return titel;
}
public void setTitel(String titel) {
this.titel = titel;
}
public Calendar getErscheinungsdatum() {
return erscheinungsdatum;
}
public void setErscheinungsdatum(Calendar erscheinungsdatum) {
Date now = new Date();
Calendar heute = Calendar.getInstance();
heute.setTime(now);
if(erscheinungsdatum.before(heute)){
this.erscheinungsdatum = erscheinungsdatum;
}
else{
throw new IllegalArgumentException("Das Erscheinungsdatum darf nicht in der Zukunft liegen!");
}
this.erscheinungsdatum = erscheinungsdatum;
}
public double getGrundpreis() {
return grundpreis;
}
public void setGrundpreis(double grundpreis) {
if(grundpreis>0){
this.grundpreis = grundpreis;
}
else{
throw new IllegalArgumentException("Grundpreis darf nicht kleiner 0 sein");
}
}
public static int getId() {
return id;
}
public static void setId(int id) {
Artikel.id = id;
}
public int getAlter(){
Date now = new Date();
Calendar heute = Calendar.getInstance();
heute.setTime(now);
return heute.get(Calendar.YEAR) - this.erscheinungsdatum.get(Calendar.YEAR);
}
public abstract double getRabatt();
public double getPreis(){
return this.grundpreis*getRabatt();
}
/** Konstruktor */
public Artikel(String verlag, String titel, Calendar erscheinungsdatum, double grundpreis, int id){
this.setVerlag(verlag);
this.setTitel(titel);
this.setErscheinungsdatum(erscheinungsdatum);
this.setGrundpreis(grundpreis);
this.setId(id);
}
}
Zuletzt bearbeitet von einem Moderator: