Wie kann ich ein int[] Array in einer Methode benutzen?

Bitte aktiviere JavaScript!
Hallo Freunde,
ich muss eine bestimmte Aufgabe erledigen. Ich muss ein int[] Array erstellen, dessen Größe durch einen Konstruktor bestimmt werden soll. Anschließend sollen die einzelnen Arraywerte durch Setter bestimmt werden und zuletzt der Mittelwert des Arrays berechnet werden. Mein Problem ist folgender: Wenn ich ein Objekt erstelle und auf die Methode zugreifen will, bekomme ich folgende Fehlermeldung:The method berechneMittelwert(int[]) in the type Mittelwert is not applicable for the arguments (Mittelwert)
Code:
import java.lang.reflect.Array;

public class Mittelwert {
  int[] werten;
public Mittelwert(int wertes) {
     this.werten= new int[wertes];
    
     }
public static void main(String[] args) {
     Mittelwert werte=new Mittelwert(3);
     werte.setarray(4,6,10);
     System.out.println(werte.berechneMittelwert(werte)); // Hier ist der Fehler bzw. die      Fehlermeldung, die ich oben beschrieben habe
     System.out.println(werte.getarray(werte)); // Hier die gleiche Meldung

       
    
}
public void setarray(int z, int x,int y) { //Arraywerte bestimmen
     werten[0]=z;
     werten[1]=x;
     werten[2]=y;
    
    
}
public int getarray(int[] herte) { //Arraywert an Stelle 0 bekommen
    return herte[0];
    
}
public void berechneMittelwert(int[] neu) {
    float Mw=0;
    int Summe=0;
    for(int i = 0; i<=neu.length;i++) {
    Summe+= neu[i];
    Mw= (float)Summe/neu.length;
    System.out.println(Mw);
   
   
   
    }
   
    
}
}
 
A

Anzeige


Vielleicht hilft dir dieser Kurs hier weiter: (hier klicken)
Du erhältst die Fehlermeldung, weil du den Methodenaufrufen als aktuelles Argument für den Parameter des Typs `int[]` eben keinen Wert vom Typ `int[]` gibst, sondern eine Instanz vom Typ `Mittelwert` und ein `Mittelwert` ist nun mal kein `int[]`. Ein `Mittelwert` hat als Attribut/Feld ein `int[]`.

Entferne einfach den Parameter und das Argument beim Aufruf der Methoden, da du die Methoden ja sowieso als Instanzmethoden auf einem `Mittelwert` aufrufst. Somit kennen die Methoden bereits den Mittelwert (als `this`) und du kannst einfach auf das Attribut/Feld zugreifen.
 
Anschließend sollen die einzelnen Arraywerte durch Setter bestimmt werden
Was machst du denn, wenn du ein Array mit einer Größe von 42000 erstellen und den 41688. Wert setzen sollst?

Du solltest über die Parameter der Methode "setArray()" noch einmal nachdenken.

Die Methode "getArray()" ist übrigens relativ sinnlos. Hier gilt das gleiche wie von @httpdigest oben erwähnt: Du solltest hier auch auf die Werte in der Instanzvariablen zugreifen.
 
Ich muss ein int[] Array erstellen, dessen Größe durch einen Konstruktor bestimmt werden soll.
Dein Konstruktor passt, wobei die Bezeichnung der Variablen äußerst irreführend ist.

Anschließend sollen die einzelnen Arraywerte durch Setter bestimmt werden
D. h. Du brauchst eine Methode der Art:
Java:
public void set(int pos, int value) {
    // ...
}
zuletzt der Mittelwert des Arrays berechnet werden
Hier sähe die Methode dann so aus:
Java:
public float berechneMittelwert() {
    // ...
    // return ...;
}
 
Sample Program
Java:
import java.util. *;

class atg {
  void a () {
   int b [] = {1,2,3,4,5,6,7};
   c (b);
  }

  void c (int b []) {
   int e = b.length;
   for (int f = 0; f <e; f ++) {
     System.out.print (b [f] + ""); // Single Space
   }
  }

  public static void main (String args []) {
   atg ob = new atg ();
   ob.a ();
  }
}
Code:
Output: 1 2 3 4 5 6 7
 
Zuletzt bearbeitet von einem Moderator:
Passende Stellenanzeigen aus deiner Region:

Neue Themen

Oben