ich habe eine Klass Kasse programiert, leider bekomme ich fehler in meine MainClasse, kann jemanden mir helfen.
meine Klasse ist ein Array von Preisen, die meine Methode addieren soll.
meine Classe sieht so aus:
public class Kasse {
int zahl;
int myarray[]= new int[zahl];
public Kasse(int[] myarray)
{
this.myarray = myarray;
}
public int summeRechnen()
{
int sum=0;
int laenge= myarray.length;
for (int i=0;i
soweit ich sehen kann, hast du ein paar kleine Fehler oder Unschönheiten in
deinem Beispiel-Code.
In der Klasse Kasse bei den Attributdeklarationen definierst du folgende Attribute:
int zahl;
int myarray[]= new int[zahl];
Dabei initialisierst du das Array, was aber nicht nötig ist, da du im Konstruktor
dem Array den Wert aus dem Konstruktorparameter zuweist. Zudem ist ‚zahl‘ nicht
von die initialisiert, so dass es den Wert 0 hat. Das bedeutet, dass dein Array
entsprechend auch 0 Felder lang ist. Ist in dem Sinne kein Fehler, fällt aber auf
In der Methode summeRechnen() sind so einige Dinge drin:
public int summeRechnen()
{
int sum=0;
int laenge= myarray.length;
for (int i=0;i
soweit ich sehen kann, hast du ein paar kleine Fehler oder Unschönheiten in
deinem Beispiel-Code.
In der Klasse Kasse bei den Attributdeklarationen definierst du folgende Attribute:
int zahl;
int myarray[]= new int[zahl];
Dabei initialisierst du das Array, was aber nicht nötig ist, da du im Konstruktor
dem Array den Wert aus dem Konstruktorparameter zuweist. Zudem ist ‚zahl‘ nicht
von die initialisiert, so dass es den Wert 0 hat. Das bedeutet, dass dein Array
entsprechend auch 0 Felder lang ist. Ist in dem Sinne kein Fehler, fällt aber auf
In der Methode summeRechnen() sind so einige Dinge drin:
public int summeRechnen()
{
int sum=0;
int laenge= myarray.length;
for (int i=0;i
ich habe eine Klass Kasse programiert, leider bekomme ich
fehler in meine MainClasse, kann jemanden mir helfen.
meine Klasse ist ein Array von Preisen, die meine Methode
addieren soll.
meine Classe sieht so aus:
public class Kasse {
int zahl;
int myarray[]= new int[zahl];
public Kasse(int[] myarray)
{
this.myarray = myarray;
}
public int summeRechnen()
{
int sum=0;
int laenge= myarray.length;
for (int i=0;i
Du erzeugt mit Kasse[] links = new Kasse[3]; ein Array
von Instanzen des Typs Kasse. Dann weist Du einer
Variablen von Typ Kasse einen int Wert zu. Das führt zu
dem Fehler.
mit ‚Kasse[] links = new Kasse[3];‘ erzeugst Du ein Array von Kassen-Objekten und dann weist Du ihnen int-Datentypen zu! Das kann nicht funktionieren weil ja verschiendene Datentypen:
Versuchs so
int[] links = new int[4];
/* 4 nicht 3! Ist etwas verwirrend, da bei der Länge des Arrays der index 0 nicht gezält wird*/
also dein erster Fehler besteht in der Methode summeRechnen(). Da weist du in der Schleife jedem Feld den Wert der Variable zahl zu (da diese Variable nie initialisiert wird = 0). Das ist zwar kein Comilefehler, aber vermutlich auch nicht das was du damit erreichen willst Also einach statt
myarray[i]= zahl;
zahl = myarray[i];
So, nun zum Hauptproblem in der main-Methode. Du erstellst in der Ersten Zeile ein Array von Kasse-Instanzen. Das ist vermutlich auch nicht das was du willst. Du musst erst ein int-Array erzeugen, welchem du dann die Werte zuweist, und dieses dann dem Kasse-Konstruktor übergeben:
int[] werte = new int[4];
werte[0]=12;
werte[1]=23;
werte[2]=34;
werte[3]=13;
Kasse meineKasse = new Kasse(werte);
System.out.println(meineKasse.summeRechnen());
Sagmal was möchtest du mit dieser Klassenkonstruktion erreichen? denn du hast mehrere Fehler „eingebaut“. Sag an was du erreichen möchtest und ich kann dir helfen.
Fehler zum Beispiel sind:
FALSCH:
//int zahl;
//int myarray[] = new int[this.zahl];
RICHTIG: denn Instanzvariablen müssen „private“ sein (Java Conventions) und auf diese Instanzvariablen wird nur über sogenannte Getter/Setter Methoden zugegriffen.
private int zahl;
private int myarray[] = new int[this.zahl];
.
…hier kommt noch was
.
public int getZahl()
{
return this.zahl;
}
public void setZahl(int zahl)
{
this.zahl = zahl;
}
public int[] getMyarray()
{
return this.myarray;
}
public void setMyarray(int[] myarray)
{
this.myarray = myarray;
}
FALSCH:
private int zahl;
private int myarray[] = new int[this.zahl];
du versuchst das Array myarray zu initialisieren ("…new int[this.zahl];"), aber die variable zahl ist noch nicht initialisiert ("…int zahl;").
und noch einige andere Fehler
also mein Vorschlag sag an was du erreichen willst und ich kann dir helfen