Anfänger Frage - Ausgabe funktioniert nicht - Wieso?

Status
Nicht offen für weitere Antworten.

Unwissend

Mitglied
Hi! Ich habe wahrscheinlich eine totale Anfängerfrage, aber ich verstehe es einfach nicht.

[HIGHLIGHT="Java"]public class Mwert
{
int mittelwert;

//Kontruktor
Mwert()
{
mittelwert = 0;
}

public static void main (String[] args)
{
ausgabe();
}

public void ausgabe()
{
System.out.println("Mittelwert der letzten 3 Zahlen: " + mittelwert);
}

//Methode zum bilden des Mittelwerts von drei uebergemenen Werten
public void mittelwert(int wert1, int wert2, int wert3)
{
int mittelwert;
this.mittelwert = (wert1 + wert2 + wert3) / 3;
}
}[/HIGHLIGHT]


Folgende Fehlermeldung kommt:
"non-static method ausgabe() cannot be referended from a static context ausgabe()"

Wie kann ich denn die Methode mittelwert aufrufen und das Ergebnis davon ausgeben und das ohne eine weitere Klasse zu bilden? Irgendwo hängt es gerade bei meinem Verständnis? Hat jemand eine Lösung?

THX schon mal. =)
 
Zuletzt bearbeitet von einem Moderator:

Marco13

Top Contributor
Du müßtest in der main ein Objekt erstellen:
Code:
public static void main (String[] args)
{
    Mwert mwert = new Mwert();
    mwert.ausgabe();
}
 

Civilazi

Bekanntes Mitglied
Statt [HIGHLIGHT="Java"]public static void main (String[] args)
{

ausgabe();

}[/HIGHLIGHT]

Erzeugst du dir ein neues MWert - Objekt und rufst dessen Objekt-methoden auf.
Also z.B.:

[HIGHLIGHT="Java"]public static void main (String[] args)
{
Mwert first = new Mwert(); //neues objekt erstellen
first.mittelwert(1,2,5); //darauf methoden aufrufen
first.ausgabe();
}[/HIGHLIGHT]

Außerdem ist das deklarieren von int mittelwert in der berechnungsmethode da quatsch. Das objekt hat ja schon ein Feld mittelwert.
 

Unwissend

Mitglied
Hi!

Wäre super, wenn ihr mir noch eine Sache erklären könnt. Ich möcht eeigentlich einfach nur ein Array haben in das ich Werte speicher, die von der Tastatur aus eingelesen werden. Das hat vorhin auch schon geklappt. Und dazu noch eine Methode, die aus den letzten 2 eingelesenen Werten den Mittelwert bildet.

Mein Problem ist nun, dass er anscheinend das array und die Variable array_groesse nicht veröffentlicht oder so. Also keiner kennt sie. =/ Weder die main noch die Methode weiß irgendwas damit anzufangen. Wo liegt mein Fehler?
Ich dachte, dass ich ein Array direkt im Konstruktor erstellen sollte, so dass es bei jedem neuen Objekt sofort da ist. Wieso kann auf die Variable und das Array niemand zugreifen?

Ich scheine irgendwo noch einen grundlegenden Denkfehler zu haben. =/
Als ich noch alles in der main-Methode hatte funktionierte es auch. Aber was mache ich denn falsch? Wollte nur den Mittelwert und die Ausgabe in andere Methoden auslagern, die ich aufrufe? Und auch als ich das Array in der main-Methode deklariert hatte konnte die Mittelwert-Methode nicht daraufzugreifen und ich bekam eine Fehlermeldung.
Und wenn ich public vor die Variable array_groesse und das Array schreibe, dann kommt die Fehlermeldung "illegal start of expression". Bin etwas verwirrt. :bahnhof:

Übrigens schon mal Danke für den Tip eben, glaube den Teil habe ich einigermaßen verstanden. ;)



[highlight=Java]
import java.io.*;

public class Mwert
{
int mittelwert;


//Kontruktor
Mwert()
{
mittelwert = 0;
int array_groesse = 5; //Arraygroesse
float[] messwert = new float[array_groesse]; //Array erstellen
}

public static void main (String[] args)
{
Mwert first = new Mwert();

String line = "";

//Einlesen der einzelnen Werte
for(int i = 0, j = i + 1; i < array_groesse; i++, j++)
{
System.out.print("Wert " + j + " eingeben: ");
BufferedReader myInput2 = new BufferedReader(
new InputStreamReader(System.in));

line = "";

try {
line = myInput2.readLine();
} catch (IOException e) {
System.out.println(e);
}
messwert = Float.valueOf(line).floatValue();
}

first.mittelwert();
first.ausgabe();
}

//Methode zum Ausgeben
public void ausgabe()
{
System.out.println("Mittelwert der letzten 3 Zahlen: " + mittelwert);
}

//Methode zum bilden des Mittelwerts von drei uebergemenen Werten
public int mittelwert() {
int summe = 0;

// Mittelwertermittlung
for(int i = 0; i < array_groesse; i++) {
summe =+ messwert;
if ( i >= 2 )
summe = + messwert + messwert[i-1] + messwert[i-2];
}
mittelwert = summe / 3;

return mittelwert;
}
}
[/highlight]
 
Zuletzt bearbeitet:

hdi

Top Contributor
Die Variablen auf die du versuchst zuzugreifen exisitieren nicht.
"array_groesse" ist abgesehen davon, dass es sich nicht an Namenskonventionen
hält (Besser: arrayGroesse), eine lokale Variable.

Lokal ist eine Variable dann, wenn sie innerhalb eines Blocks in einer Methode
oder einem Konstruktor deklariert wird, also zB

[HIGHLIGHT="Java"]int arrayGroesse;[/HIGHLIGHT]

Solche Variablen exisitieren dann nur innerhalb des Blocks, nach dem nächsten
"}" ist diese Variable gelöscht.

Eine andere Art von Variable, nämlich die, die du brauchst, sind sog. Member-Variablen
(wenn sie nicht-statisch sind) bzw Klassen-Variablen (statisch).

Ein Bsp dafür wäre dein mittelwert, das ist eine Member-Variable, und die exisitert
solange wie das Objekt.

Klassen-Variablen (statisch) existieren über die gesamte Lebenszeit des Programms.
(Sobald die Klasse erstmals benutzt wird)
Also mach zB arrayGroesse, wie auch mittelwert, als Member-Variable, und dann
kannst du in deinem Bsp in der main über

[HIGHLIGHT="Java"]first.arrayGroesse[/HIGHLIGHT]

darauf zugreifen.
 

Unwissend

Mitglied
Hi!

Also erstmal wieder vielen Dank! Habe die ganzen soweit umgesetzt und es läuft auch. Nun noch eine weitere Frage. Ich habe das Programm nun noch durch eine weitere Klasse ergänzt in der ich den Mittelwert für das gesamte Array berechnen wollte.
Es wird auch einwandfrei kompiliert nur ich habe das Problem, dass alle Arraywerte in der neuen Klasse anscheinend 0 sind. Die Klasse scheint gar nicht wirklich auf mein eigentliches Array zuzugreifen?! Auf die arrayGroesse kann die Klasse wiederum einwandfrei zugreifen? Was habe ich hier nicht bedacht?

[highlight=Java]
import java.io.*;

public class Mwert
{
float mittelwert;
float ges_mittelwert;
int arrayGroesse = 5;
float[] messwert = new float[arrayGroesse]; //Array erstellen

//Kontruktor
Mwert()
{
mittelwert = 0;
ges_mittelwert = 0;
}

public static void main (String[] args)
{
Mwert first = new Mwert();

String line = "";

//Einlesen der einzelnen Werte
for(int i = 0; i < first.arrayGroesse; i++)
{
System.out.print("Wert " + (i+1) + " eingeben: ");
BufferedReader myInput2 = new BufferedReader(
new InputStreamReader(System.in));

line = "";

try {
line = myInput2.readLine();
} catch (IOException e) {
System.out.println(e);
}
first.messwert = Float.valueOf(line).floatValue();

first.mittelwert();
System.out.println("Mittelwert der letzten 3 Zahlen: " + first.mittelwert);

//instantiiert die Klasse und ruft die Methode fuer den
//gesamten Mittelwert auf
MwertExt mw = new MwertExt();
mw.gesmittelwert();
}
}

//Methode zum bilden des Mittelwerts von drei uebergemenen Werten
public float mittelwert() {
float summe = 0;

// Mittelwertermittlung
for(int i = 0; i < arrayGroesse; i++) {
summe =+ messwert;
if ( i >= 2 )
summe = + messwert + messwert[i-1] + messwert[i-2];
}
mittelwert = summe / 3;

return mittelwert;
}
}


class MwertExt extends Mwert
{
public void gesmittelwert()
{
float gesamtsumme = 0;
float ges_mittelwert = 0;

//Gesamtmittelwert
for(int i = 0; i < arrayGroesse; i++)
gesamtsumme =+ messwert;

ges_mittelwert = gesamtsumme / arrayGroesse;

System.out.println("Gesamter Mittelwert lautet:" + ges_mittelwert);
}
}
[/highlight]
 

Marco13

Top Contributor
Huiui - was soll denn diese (sinnlose) Vererbung da jetzt?

In Zeile 44 wird ein vollkommen neues Objekt erzeugt. In diesem Objekt sind dann erstmal alle Werte 0 oder null.

Wahrscheinlich soll ja auch nicht bei jeden Schleifendurchlauf der gesamtmittelwert ausgegeben werden, sondern nur einmal am Ende?

Du solltest ggf. die genaue Aufabenstellung posten.

Im Moment(!) sieht es für mich so aus, als könntest du im wesentlichen zwei Methoden gebrauchen: Die main - wo die Eingabe erfolgt - und eine Methode
Code:
float berechneMittelwert(int anfang, int ende)
die den Mittelwert der Zahlen aus dem gegeben Bereich des "messwert"-Arrays berechnet. (Wenn man diese Methode in der Schleife mit
berechneMittelwert(i-2, i+1);
aufrufen würde, würde man den Mittelwert der letzten 3 Zahlen erhalten. Wenn man sie am Ende mit
berechneMittelwert(0, messwert.length);
aufrufen würde, würde man des Gesamtmittelwert erhalten.
Aber ob so eine Methode dem entspricht, was laut Aufgabenstellung gemacht werden soll, weiß ich natürlich nicht...
 

Unwissend

Mitglied
Hi!

Also die Aufgabenstellung ist eigentlich folgende. Wir sollen eine KLasse haben in der die Eingaben erfolgen und in dieser Klasse eine Methode, die den Mittelwert der letzten 3 Eingaben ermittelt.
Davon abgeleitet soll ein Klasse erstellt werden, die den Mittelwert von allen bisher eingegebenen Zahlen ermittelt.

Naja, und das er es nicht jedes Mal wieder ausgibt sondern nur am Ende lässt sich ja eigentlich schnell ändern. Ich hab bloß noch ein Problem damit, dass ich eine neue Klasse von der schon vorhandenen ableite und dann die Array-Werte plötzlich alle null sind. Naja, wenn ich damit ein neues Objekt erzeuge,....hmmm......dann ist das klar. Hat jemand einen Lösungsvorschlag? =)
 

Marco13

Top Contributor
Ja, da gibt's mal wieder 1000 Möglichkeiten, und ich vermute, dass du die Aufgabenstellung entweder unpräzise wiedergegeben hast, oder dass sie unpräzise IST. Sollen die Zahlen für beide Klassen getrennt eingegeben werden? Wenn nicht, könnte man eine Kopie des Arrays an die abgeleitete Klasse übergeben, oder sonstwas...
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
Koookie Kleines Frage - Antwort Programm (Anfänger) Java Basics - Anfänger-Themen 5
A Anfänger Taschenrechner Frage Java Basics - Anfänger-Themen 14
C Input/Output Anfänger Array-Verständnis Frage Java Basics - Anfänger-Themen 7
Spin KI Anfänger Frage : Timer Problem Java Basics - Anfänger-Themen 6
Spin Einfache Anfänger Frage setVisible von Panels Java Basics - Anfänger-Themen 5
P GUI Anfänger Frage Java Basics - Anfänger-Themen 4
S Java Anfänger - Tutorial Frage Java Basics - Anfänger-Themen 10
F Bubblesort---Frage von Anfänger Java Basics - Anfänger-Themen 2
L eine richtige anfänger-frage Java Basics - Anfänger-Themen 3
L Totale Anfänger Frage Java Basics - Anfänger-Themen 20
J Anfänger-Frage zu jar-Files / Manifest.mf / Classpath Java Basics - Anfänger-Themen 16
N RMI Anfänger Frage Java Basics - Anfänger-Themen 2
T Saudumme Frage, Sorry bin Anfänger :-/ Java Basics - Anfänger-Themen 12
J Anfänger-Frage Java Basics - Anfänger-Themen 4
S Anfänger Regex Java Basics - Anfänger-Themen 4
B OOP was heißt objektorientiertes Programmieren (fragt ein absoluter Anfänger) Java Basics - Anfänger-Themen 17
Soranix Erste Schritte Struktur als Anfänger // Von einer Klasse auf ein Objekt einer anderen Klasse zugreifen. Java Basics - Anfänger-Themen 6
M Java Programmierung Aufgabe Anfänger Java Basics - Anfänger-Themen 1
JordenJost Java ist auch eine Insel für Anfänger Java Basics - Anfänger-Themen 2
R Anfänger: Ausgabe kommt minus raus? Java Basics - Anfänger-Themen 6
D Zahlentabelle Anfänger braucht Hilfe Java Basics - Anfänger-Themen 1
N Fehler im Code (Aufgabe für Anfänger) Java Basics - Anfänger-Themen 11
T Übungsbuch für Anfänger Java Basics - Anfänger-Themen 3
H Threads Anfänger Java Basics - Anfänger-Themen 17
C Erste Schritte Anfänger Verständnisfrage zum Compiler Java Basics - Anfänger-Themen 31
J Anfänger, Fehler; "Der Hund liegt begraben" Java Basics - Anfänger-Themen 3
K Buchstabenzähler Java (Anfänger) Java Basics - Anfänger-Themen 35
E Kleines Java-Projekt für Anfänger Java Basics - Anfänger-Themen 10
U anfänger braucht hilfe . wir konnten die aufgaben nicht beantworten Java Basics - Anfänger-Themen 5
ehmo würfelspiel programmieren anfänger Java Basics - Anfänger-Themen 1
J Anfänger TicTacToe, Problem bei Gewinnoption, sowohl Unentschieden Java Basics - Anfänger-Themen 8
L Anfänger braucht Hilfe - Stecke beim Lernen fest Java Basics - Anfänger-Themen 10
A Scanner Befehl Java Anfänger Java Basics - Anfänger-Themen 8
_Zabuza_ Erste Schritte Wie am effektivsten Java lernen als Anfänger? Java Basics - Anfänger-Themen 12
T Roulette für Anfänger Java Basics - Anfänger-Themen 7
T Java Anfänger mit konkreten Fragen Java Basics - Anfänger-Themen 2
K Java Anfänger Java Basics - Anfänger-Themen 5
F Hilfe für einen Anfänger! Java Basics - Anfänger-Themen 4
S Ein Java Anfänger braucht Hilfe Java Basics - Anfänger-Themen 5
P Übungsaufgaben für Anfänger? Java Basics - Anfänger-Themen 2
Z Unklarheit bei Übungsaufgabe [Anfänger] Java Basics - Anfänger-Themen 22
J Lesen und schreiben in eine Datei(Anfänger- Dateizugriffe) Java Basics - Anfänger-Themen 3
O Anfänger, Verständnisfrage Java Basics - Anfänger-Themen 3
CT9288 Mini Anfänger-Problem mit loops, statements und ; Java Basics - Anfänger-Themen 4
F Hilfe, bin Anfänger! Java Basics - Anfänger-Themen 4
R Erste Schritte Materialien für Java-Anfänger Java Basics - Anfänger-Themen 7
F Studium aufgabe ...Anfänger sucht hilfe :D Java Basics - Anfänger-Themen 24
F Anfänger braucht Hilfe :) Java Basics - Anfänger-Themen 3
F Abrechnungsprogramm erstellen Student (Anfänger) Java Basics - Anfänger-Themen 2
D Anfänger braucht Hilfe Java Basics - Anfänger-Themen 2
J Musikplayer zu schwer für Anfänger? Java Basics - Anfänger-Themen 3
F Wieso wird dieser Befehl nicht ausgeführt? (Anfänger) Java Basics - Anfänger-Themen 2
V Erste Schritte Anfänger: Ausführen eines Java-Programms Java Basics - Anfänger-Themen 5
Textsurfer Methoden Anfänger * Java Basics - Anfänger-Themen 5
G Ein paar Anfänger Fragen zu StdDraw Java Basics - Anfänger-Themen 4
J Anfänger: ActionListener und ProcessBuilder machen Probleme Java Basics - Anfänger-Themen 6
C verwirrter Anfänger Java Basics - Anfänger-Themen 6
L Verzinsungsprogramm (Java-Anfänger) Java Basics - Anfänger-Themen 3
T Datentypen enum static Chaos (blutiger anfänger) Java Basics - Anfänger-Themen 5
I if/else Statements Java Anfänger Java Basics - Anfänger-Themen 14
D Anfänger-Fragen(Parameter einer Methode) Java Basics - Anfänger-Themen 7
H Schleifen (anfänger) Java Basics - Anfänger-Themen 13
H Methoden Bluej Anfänger Java Basics - Anfänger-Themen 13
M Erste Schritte Einfache Aufzugssteuerung programmieren - Anfänger Java Basics - Anfänger-Themen 2
D Anfänger-Problem mit dem HalloWelt-Programm Java Basics - Anfänger-Themen 5
S Compiler-Fehler Anfänger sucht Hilfe. Fehler beim Compilieren Java Basics - Anfänger-Themen 6
V Erste Schritte Java-Anfänger braucht Hilfe bei Arrays Java Basics - Anfänger-Themen 19
V Array mit Zufallszahlen - Anfänger - Hilfe Java Basics - Anfänger-Themen 12
J Anfänger hat Problem mit seinen Beet Java Basics - Anfänger-Themen 12
D Compiler-Fehler Anfänger Fehlermeldung Java Basics - Anfänger-Themen 3
das_leon if als Auswahl (Anfänger) Java Basics - Anfänger-Themen 1
N Anfänger Problem Java Basics - Anfänger-Themen 4
GoodGuy [Anfänger] Kann mal wer drüber gucken? Java Basics - Anfänger-Themen 3
R Erste Schritte Anfänger Probleme bei AnimationDrawable Java Basics - Anfänger-Themen 0
J Kleiner Taschenrechner! Anfänger braucht Hilfe :( Java Basics - Anfänger-Themen 2
C Taxiwarteschlange - Anfänger Java Basics - Anfänger-Themen 2
J Fehlermeldung : cannot invoke char(at) int on the primitive type int --- Anfänger Java Basics - Anfänger-Themen 5
I Java, Application, Eclipse (Anfänger) Java Basics - Anfänger-Themen 1
M Java Anfänger - Video Tutorial Reihe (DEUTSCH) Java Basics - Anfänger-Themen 11
C Anfänger: Array + Klasse Java Basics - Anfänger-Themen 5
S OOP Uhrenanzeige programmieren, Achtung Anfänger! Java Basics - Anfänger-Themen 9
B Compiler-Fehler Ein Java-Eclipse-Anfänger geht auf Reisen... Java Basics - Anfänger-Themen 10
A 2 kurze Anfänger fragen Java Basics - Anfänger-Themen 6
I totaler Anfänger braucht Hilfe Java Basics - Anfänger-Themen 8
I Erste Schritte Bücher für Jungedliche[Anfänger] Java Basics - Anfänger-Themen 20
T Hallo anfänger braucht Hilfe :D Java Basics - Anfänger-Themen 7
C Anfänger Anfänger Fragen Java Basics - Anfänger-Themen 8
D error: Class names, >>>HILFE, anfänger<<< Java Basics - Anfänger-Themen 4
J Hilfe für Anfänger Java Basics - Anfänger-Themen 8
E OOP Methode an andere Methode übergeben / OOP Anfänger Java Basics - Anfänger-Themen 4
Farbenfroh Exceptions Anfänger - Finde Fehler nicht Java Basics - Anfänger-Themen 7
H MergeSort (für Anfänger ) Java Basics - Anfänger-Themen 9
X Projekt Java Anfänger Java Basics - Anfänger-Themen 28
C Fehlersuche Adressbuch *Anfänger* Java Basics - Anfänger-Themen 5
C Anfänger braucht Hilfe bei Schularbeit Java Basics - Anfänger-Themen 3
J Erste Schritte Hilfe bei absolutem Anfänger-Projekt Java Basics - Anfänger-Themen 4
F Anfänger braucht Hilfe Java Basics - Anfänger-Themen 24
A Erste Schritte Übungen für Anfänger Java Basics - Anfänger-Themen 31
M Sieb des Eratosthenes für Anfänger Java Basics - Anfänger-Themen 10
M Tipps für einen Java-Anfänger Java Basics - Anfänger-Themen 5

Ähnliche Java Themen

Neue Themen


Oben