Hey
Wir sollen Objektorientiert programmieren und das versuche ich gerade. Wir sollen ein Lager von einem Artikel mit mehreren Attributen anlegen.
Soweit auch kein Problem. Allerdings finde ich den Fehler nicht weshalb sich auf jedem Platz meines Arrays der selbe Artikel befindet.
Edit:
Nach ein paar weiteren Tests scheint es das sich das Array beim befüllen selbst überschreibt
Fachklasse Lager:
Testklasse Lager
Artikel Klassen
Im Anhang nochmal ein Bild mit der Ausgabe bei einem 2 stelligen Array.
Bin für jede Hilfe dankbar!
Wir sollen Objektorientiert programmieren und das versuche ich gerade. Wir sollen ein Lager von einem Artikel mit mehreren Attributen anlegen.
Soweit auch kein Problem. Allerdings finde ich den Fehler nicht weshalb sich auf jedem Platz meines Arrays der selbe Artikel befindet.
Edit:
Nach ein paar weiteren Tests scheint es das sich das Array beim befüllen selbst überschreibt
Fachklasse Lager:
Java:
public class Lager
{
public void anlegenArtikel(){
lager[counter] = art1;
counter++;
}
public void bucheZugang(int number,int value) {
for (int i = 0;i < counter; i++){
art1 = lager[counter];
if (number == art1.getNummer()) {
art1.bucheZugang(value);
}
}
}
public void bucheAbgang(int number,int value) {
for (int i = 0;i < counter; i++){
art1 = lager[counter];
if (number == art1.getNummer()) {
art1.bucheAbgang(value);
}
}
}
public void setart1(Artikel art1) {
this.art1 = art1;
}
public Artikel art1() {
return art1;
}
public Artikel[] lager() {
return lager;
}
public String toString() {
String ausg = " hi", buffer = " ";
for (int i = 0;i < lager.length; i++){
art2 = lager[i];
buffer = "\tArtikelnummer: " + art1.getNummer() + "\n\tArtikelBezeichner: " + art1.getBezeichner() + "\n\tArtikelBestand: " + art1.getBestand() + "\n\tArtikelpreis " + art1.getPreis() + "\n \n";
ausg = ausg + buffer;
}
return ausg;
}
String[] str = new String[2];
private int counter = 0;
private Artikel art1,art2 = new Artikel();
private Artikel[] lager = new Artikel[2];
}
Testklasse Lager
Java:
public class LagerTest
{
public void start(){
a1 = t1.start();
l1.setart1(a1);
l1.anlegenArtikel();
}
public void bestandAendern(){
System.out.println("Nummer");
iBuffer = input.nextInt();
System.out.println("Menge");
iBuffer1 = input.nextInt();
l1.bucheZugang(iBuffer,iBuffer1);
}
public void bestandAendern1(){
System.out.println("Nummer");
iBuffer = input.nextInt();
System.out.println("Menge");
iBuffer1 = input.nextInt();
l1.bucheAbgang(iBuffer,iBuffer1);
}
public void ausgabe(){
String ausg = l1.toString();
System.out.println(ausg);
}
ArtTest t1 = new ArtTest();
Lager l1 = new Lager();
Artikel a1 = new Artikel();
int iBuffer, iBuffer1;
double dBuffer;
String str;
Scanner input = new Scanner(System.in);
}
Artikel Klassen
Fachklasse Artikel
Testklasse Artikel
Code:
public class Artikel
{
//Buchen
public void bucheZugang(int wert) {
artBestand = artBestand + wert;
}
public void bucheAbgang(int wert) {
artBestand = artBestand - wert;
}
//Set
public void setartBestand(int artBestand) {
this.artBestand = artBestand;
}
public void setartPreis(double artPreis) {
this.artPreis = artPreis;
}
public void setartNummer(int artNummer) {
this.artNummer = artNummer;
}
public void setartBezeichner(String artBezeichner) {
this.artBezeichner = artBezeichner;
}
//Get
public String getBezeichner() {
return artBezeichner;
}
public int getNummer() {
return artNummer;
}
public double getPreis() {
return artPreis;
}
public int getBestand() {
return artBestand;
}
//toString
public String toString() {
return "\tArtikelnummer: " + artNummer + "\n\tArtikelbezeichner " + artBezeichner +
"\n\tArtikelbestand " + artBestand + "\n\tArtikelpreis " + artPreis;
}
//Variablen
private double artPreis;
private int artNummer, artBestand;
private String artBezeichner;
}
Testklasse Artikel
Code:
public class ArtTest
{
public Artikel start() {
System.out.println("Bestand");
buffer = scanner.nextInt();
a1.setartBestand(buffer);
System.out.println("Nummer");
buffer = scanner.nextInt();
a1.setartNummer(buffer);
System.out.println("Preis");
dBuffer = scanner.nextDouble();
a1.setartPreis(dBuffer);
System.out.println("Bezeichner");
buffer1 = scanner.next();
a1.setartBezeichner(buffer1);
return a1;
}
public void zugang(){
System.out.println("Menge");
buffer = scanner.nextInt();
a1.bucheZugang(buffer);
}
public void abgang(){
System.out.println("Menge");
buffer = scanner.nextInt();
a1.bucheAbgang(buffer);
}
public void ausgabe(){
String ausg = a1.toString();
System.out.println(ausg);
}
public static void main(String[] args){
new ArtTest().start();
new ArtTest().ausgabe();
}
Artikel a1 = new Artikel();
Scanner scanner = new Scanner(System.in);
int buffer;
double dBuffer;
String buffer1;
}
Im Anhang nochmal ein Bild mit der Ausgabe bei einem 2 stelligen Array.
Bin für jede Hilfe dankbar!
Anhänge
Zuletzt bearbeitet von einem Moderator: