Hallo. Ich habe einen Onlineshop als Projektthema. Das Programm besteht aus 3 Klassen: Onlineshop, Artikel und Bestellung. In Onlineshop werden Artikel (artikeln) und Bestellungen (bestellungen) erstellt und in der jeweiligen, in Klammer stehenden Arraylist gespeichert. Außerdem wird eine Arraylist namens artikelInBestellung erzeugt, in der man Artikel zu einer bestehenden Bestellung hinzufügt. Kann man vergleichen mit "In den Warenkorb legen".
Bei mir hakt es in der Klasse Bestellung bei der Methode produktHinzufügen. Hier soll der Benutzer die Artikelnummer eines (bestehendes) Produktes eingeben. Mit der Schleife wird die Artikelnummer gesucht und das Objekt dann in die Arraylist "artikelInBestellung" kopiert.
Dann kommt aber die Fehlermeldung "incompatible types: Artikel cannot be converted to Bestellung". Das muss heißen, dass es nicht möglich ist, ein Objekt aus einer Klasse in eine andere Klasse zu kopieren?
Weiß jemand, wie ich das lösen soll? Ich bin noch Anfänger und langsam geht mir die Geduld aus.
[CODE lang="java" title="Klasse Onlineshop"]import java.util.*;
public class Onlineshop
{
ArrayList<Artikel> artikeln;
private ArrayList<Bestellung> bestellungen;
ArrayList<Bestellung> artikelInBestellung;
public Onlineshop()
{
artikeln = new ArrayList<Artikel>();
bestellungen = new ArrayList<Bestellung>();
artikelInBestellung = new ArrayList<Bestellung>();
}
public void neuerArtikel(Artikel neuerArtikel)
{
artikeln.add(neuerArtikel);
}
public void neueBestellung(Bestellung neueBestellung)
{
bestellungen.add(neueBestellung);
}
}[/CODE]
[CODE lang="java" title="Klasse Bestellung" highlight="22"]public class Bestellung
{
private double preis;
private String bestellnummer;
private String lieferung = null;
private double summe; //summe der Artikel ohne MWSt
public static String artikelnummer;
ArrayList <Artikel> artikeln;
ArrayList <Bestellung> artikelInBestellung;
public Bestellung(String bestNr)
{
bestellnummer = bestNr;
}
public void produktHinzufügen(String artNr){
for(Artikel artikelnummer : artikeln){ //for(Elementtyp element : sammlung){
if(Artikel.artikelnummer.equals(artNr)){
int index = artikeln.indexOf(artikelnummer);
artikelInBestellung.add( artikeln.get(index)); // hier kommt die Fehlermeldung
}
}
summe += preis;
//return null;
}
public String getArtikelnummer(){
return artikelnummer;
}
public void ausgeben()
{
for (Bestellung bestellung : artikelInBestellung){
//Artikel.details();
System.out.println("Artikelname " + Artikel.artikelname);
System.out.println("Artikelnummer " + artikelnummer);
System.out.println("Preis " + preis);
}
/*for(int i = 0; i < artikelInBestellung.size(); i++){
System.out.println(artikelInBestellung.get(i));
}*/
}
public int anzahlProdukte(List <Artikel> artikeln)
{
return artikelInBestellung.size();
}[/CODE]
[CODE lang="java" title="Klasse Artikel"]public class Artikel
{
public static String artikelname;
public static String artikelnummer;
public static double preis;
public Artikel(String ArtName, String ArtNr, double Preis) //ArtNr - Artikelnummer; ArtN - Artikelname
{
artikelname = ArtName;
artikelnummer = ArtNr;
preis = Preis;
}
public static void details()
{
System.out.println("Artikelname: " + artikelname);
System.out.println("Artikelnummer: " + artikelnummer);
System.out.println("Preis: " + preis);
}[/CODE]
Für jede Hilfe wäre ich dankbar.
Bei mir hakt es in der Klasse Bestellung bei der Methode produktHinzufügen. Hier soll der Benutzer die Artikelnummer eines (bestehendes) Produktes eingeben. Mit der Schleife wird die Artikelnummer gesucht und das Objekt dann in die Arraylist "artikelInBestellung" kopiert.
Dann kommt aber die Fehlermeldung "incompatible types: Artikel cannot be converted to Bestellung". Das muss heißen, dass es nicht möglich ist, ein Objekt aus einer Klasse in eine andere Klasse zu kopieren?
Weiß jemand, wie ich das lösen soll? Ich bin noch Anfänger und langsam geht mir die Geduld aus.
[CODE lang="java" title="Klasse Onlineshop"]import java.util.*;
public class Onlineshop
{
ArrayList<Artikel> artikeln;
private ArrayList<Bestellung> bestellungen;
ArrayList<Bestellung> artikelInBestellung;
public Onlineshop()
{
artikeln = new ArrayList<Artikel>();
bestellungen = new ArrayList<Bestellung>();
artikelInBestellung = new ArrayList<Bestellung>();
}
public void neuerArtikel(Artikel neuerArtikel)
{
artikeln.add(neuerArtikel);
}
public void neueBestellung(Bestellung neueBestellung)
{
bestellungen.add(neueBestellung);
}
}[/CODE]
[CODE lang="java" title="Klasse Bestellung" highlight="22"]public class Bestellung
{
private double preis;
private String bestellnummer;
private String lieferung = null;
private double summe; //summe der Artikel ohne MWSt
public static String artikelnummer;
ArrayList <Artikel> artikeln;
ArrayList <Bestellung> artikelInBestellung;
public Bestellung(String bestNr)
{
bestellnummer = bestNr;
}
public void produktHinzufügen(String artNr){
for(Artikel artikelnummer : artikeln){ //for(Elementtyp element : sammlung){
if(Artikel.artikelnummer.equals(artNr)){
int index = artikeln.indexOf(artikelnummer);
artikelInBestellung.add( artikeln.get(index)); // hier kommt die Fehlermeldung
}
}
summe += preis;
//return null;
}
public String getArtikelnummer(){
return artikelnummer;
}
public void ausgeben()
{
for (Bestellung bestellung : artikelInBestellung){
//Artikel.details();
System.out.println("Artikelname " + Artikel.artikelname);
System.out.println("Artikelnummer " + artikelnummer);
System.out.println("Preis " + preis);
}
/*for(int i = 0; i < artikelInBestellung.size(); i++){
System.out.println(artikelInBestellung.get(i));
}*/
}
public int anzahlProdukte(List <Artikel> artikeln)
{
return artikelInBestellung.size();
}[/CODE]
[CODE lang="java" title="Klasse Artikel"]public class Artikel
{
public static String artikelname;
public static String artikelnummer;
public static double preis;
public Artikel(String ArtName, String ArtNr, double Preis) //ArtNr - Artikelnummer; ArtN - Artikelname
{
artikelname = ArtName;
artikelnummer = ArtNr;
preis = Preis;
}
public static void details()
{
System.out.println("Artikelname: " + artikelname);
System.out.println("Artikelnummer: " + artikelnummer);
System.out.println("Preis: " + preis);
}[/CODE]
Für jede Hilfe wäre ich dankbar.