In Testklasse einem Array Werte übergeben

mfkem

Mitglied
Hallo,

ich stehe beim Testen eines Codes ein Wenig auf dem Schlauch und hoffe, dass mir jemand weiterhelfen kann.

Ich habe ein Interface Statistik:

Java:
public interface Statistik {
	
	double mittelwert ();
	double varianz ();
	
}

und eine Klasse ArrayStatistik, die das Interface initialisieren & Varianz und Mittelwert errechnen und ausgeben soll:

Java:
public class ArrayStatistik implements Statistik {
	
	private double[] zahlen;
	public double summe;
	public double m;
	public double abweichung;
	public double v;
	public String s;
	
	public ArrayStatistik (double[] zahlen) {
		this.zahlen = zahlen;
		double summe = 0;
		double m = 0;
		double abweichung = 0;
		double v = 0;
		String s = "";
	}
	
	public void setZahlen (double[] zahlen) {
			this.zahlen = zahlen;
		}
		
	public double addieren() {
		for (int i=0; i < zahlen.length; i++) {
			summe += zahlen[i];
		}
		return summe;
	}	

	
	public double mittelwert() {
		m = summe/zahlen.length;
		return m;
	}
	
	public double varianz() {
		for (int i=0; i < zahlen.length; i++) {
			abweichung += Math.pow((zahlen[i]-m),2);
		}
		v = abweichung/zahlen.length;
		return v;
	}		
			
	public String toString() {
		for (int i=0; i < zahlen.length; i++) {
			s += zahlen[i]+", ";
		}
		return s;
	}

}

Nun möchte ich eine Testklasse schreiben, in der ich ein neues Element vom Typ ArrayStatistik erzeuge und diesem Werte zuweise - und da hapert es. Vom Prinzip her, weiß ich, wie so etwas auszusehen hat, doch bringt mich die Sache mit dem Array aus dem Konzept. Mein Ansatz wäre so etwas wie

Java:
public class TestStatistik {

	public static void main (String[] args) {
	
		ArrayStatistik arr = new ArrayStatistik (?????)

genau an der Stelle mit den Fragezeichen scheitere ich. Dort müssen ja laut Konstruktor aus der ArrayStatistik-Klasse die Werte für zahlen[] übergeben werden. Ich aber leider habe keine Ahnung, wie ich da die Werte, die zahlen[] haben soll, einfügen muss. Auch Rumprobieren hat bisher nichts genützt.
Ich hoffe, mir kann da jemand weiterhelfen.
 
Java:
public class TestStatistik {
	public static void main (String[] args) {
	
		ArrayStatistik arr = new ArrayStatistik ({1.0, 2.2, 47.11})

[EDIT]Schon mal von JUnit gehört? wird schon mit Eclipse mitgeliefert...[/EDIT]
bye
TT
 
Danke, so war meine erste Idee, aber genau so hab ich es auch schon probiert, das möchte er nicht kompilieren:


TestStatistik.java:5: illegal start of expression
ArrayStatistik arr = new ArrayStatistik ({1,2,3});
^
TestStatistik.java:5: ')' expected
ArrayStatistik arr = new ArrayStatistik ({1,2,3});
^

Woran könnte das liegen?
 
Danke, so war meine erste Idee, aber genau so hab ich es auch schon probiert, das möchte er nicht kompilieren:


TestStatistik.java:5: illegal start of expression
ArrayStatistik arr = new ArrayStatistik ({1,2,3});
^
TestStatistik.java:5: ')' expected
ArrayStatistik arr = new ArrayStatistik ({1,2,3});
^

Woran könnte das liegen?
weil das
Code:
int
-Werte und keine
Code:
double
sind.
[EDIT]vielleich müssen wir auch noch hinschreiben, dass es ein Array werden soll:
Java:
ArrayStatistik arr = new ArrayStatistik (new doulbe[]{1.1 ,2.5 ,3.0});
[/EDIT]

bye
TT
 
Zuletzt bearbeitet:
TestStatistik.java:5: illegal start of expression
ArrayStatistik arr = new ArrayStatistik ({1,2,3});
^
TestStatistik.java:5: ')' expected
ArrayStatistik arr = new ArrayStatistik ({1,2,3});
^

Woran könnte das liegen?
Die verkürzte Schreibweise mit den geschweiften Klammern ohne Angabe des Elementtyps ist nur bei der Initialisierung von Variablen erlaubt. Als Parameter übergeben muss das so geschrieben werden:
Java:
ArrayStatistik arr = new ArrayStatistik (new double[]{1,2,3});
 

Neue Themen


Zurück
Oben