Ein Array aus einer Klasse wird nicht sauber abgefüllt

AcE(swiss)

Mitglied
Moinsen alle zusammen,

Habe folgendes Problem: Ich lese aus einer .txt pro Zeile einen String ein, in dem ich Datum, Temperatur, Druck und Luftfeuchtigkeit abspalte. Klappt auch wunderbar. Desweiteren habe ich die Klassen Datum, Temperatur und Feuchte. In einer KLasse Wetter fasse ich alle Einträge der .txt zusammen.

btw: kenne Java seit September und kann seit Dezember einigermassen damit arbeiten ;)

Java:
public class Wetter {

	static Temperatur[] t;
	static Druck[] d;
	static Feuchte[] f;
	static Datum[] e;

Ich lese also in der for() Zeile für Zeile ein und spalte jeweils den String datum ab, aus dem ich in der Klasse Datum wiederum day, monat und year abspalte, das Datum objekt erstelle, zurück gebe und sogleich in das Datum[] dat Array abfülle.

Java:
//////////////////////////// ERSTELLEN DER DATENBANK AUS TXT /////////////////////////////////////

	static Wetter StringToDetails() {

		WetterDaten e = new WetterDaten();
		e = TXTToDetails();
		
		Wetter wetter = new Wetter();
		
		Datum[] dat = new Datum[k];
			
		for (int i = 0; i < e.daten.length - 1; i++) {
			
			String datum, zeit, temperatur, druck, feuchtigkeit;
			int v, v1 , w, x, y, z;

			// ********** ABSPALTEN DES DATUMS *********//

			v1 = e.daten[i].indexOf(" "); 		// Stelle des Abstandes, danach kommt die Uhrzeit
			v = e.daten[i].indexOf(";");		// Stelle des 1. Semikolons. Danach kommt das Datum
			
			datum = e.daten[i].substring(v+1, v1);					
			dat[i] = Datum.StringToDatum(datum); 	dat[i].printDate();				
			dat[0].printDate();
		}
			wetter = new Wetter(temp, dru, feuch, dat);
		
		return wetter;
	}

Nur habe ich mitlerweile festgestellt, dass bei jedem dat.printDate das Datum mit dem eingelesene String überein stimmt, jedoch wenn ich das Array dat ausserhalb der Schleife ausgebe, bestehen alle Elemente aus dem als letzes eingelesenen Datum. Desshalb prüfte ich mal mit dat[0].printDate(); und stellte fest, dass, obwohl ich ja auf das aller erste Element zugreiffe, es immer dem aktuell eingelesenen Datum entspricht. :autsch::autsch:

Das abfüllen der restlichen Array Feuchte, Druck und Temp klappt wunderbar. Ich hege langsam die Vermutung es könnte daran liegen, dass die Methode StringToDatum(datum) UND die variablen day, month und year statisch sind. Allerdings wüsst ich nicht, wie ich die ansprechen kann wenn nicht static:(

Bin da grad absolut am Ende mit meinem Latein. Schon den ganzen Samstag am Debuggen, wobei ich feststellte, dass beim Abfüllen des Datum Arrays jeder Eintrag eine andere Adresse hat. Was auch immer das Bedeutet.

Naja, hoffe ihr könnt mir weiterhelfen. Steh wie der Esel am Berg -.-

EDIT: Ahh, ausserdem: die Methoden zum abfüllen der Feuchtigkeit und Druck usw. sind AUCH statisch :S (jedoch nicht die instanz variablen!)

ANHANG:

KLASSE DATUM

Java:
public class Datum {

	static int day;
	static int month;
	static int year;
	
	Datum(int day, int month, int year) {

		Datum.day = day;
		Datum.month = month;
		Datum.year = year;
	}

METHODE VOM STRING ZUM DATUM:

Java:
////////////////////// DATUM AUS ZAHLEN //////////////////////

	static Datum StringToDatum(String z) {

		int x, y;

		// ********** ABSPALTEN DES JAHRES *********//

		x = z.indexOf("-"); // Stelle des Bindestriches. Danach kommt der Monat

		year = Integer.parseInt(z.substring(0, x)); 

		// ******** ABSPALTEN DES MONATS ***********//

		y = z.indexOf("-", x + 1);// Stelle des 2. Bindestriches. Danach kommt der Tag

		month = Integer.parseInt(z.substring((x + 1), y)); 
		
		// ******* ABSPALTEN DES TAGES ******//

		day = Integer.parseInt(z.substring(y + 1));
		
		Datum e = new Datum(day, month, year);

		return e;
	}
 

Anhänge

  • Wetter.java.7z
    5,1 KB · Aufrufe: 2
Zuletzt bearbeitet:
S

SlaterB

Gast
Datum-Klasse, Zeile 3-5: 'static' streichen
in Wetter gewiss ähnlich

weißt du was static bedeutet?

in StringToDatum() brauchst du dann lokale Variablen
 

AcE(swiss)

Mitglied
ja, das habe ich auch schon gemacht, aber sie muss doch static sein? Weil genau da liegt das Problem. Wenn ich nicht mit einem Objekt in die Methode gehe, z.B. z1.StringToDetails(); sondern mit einem String, muss ich doch Datum.StringToDetails(a) schreiben?

Ja so wirklich durchblicken tu ich noch nicht. Was ich weiss: wenn man von der main aus drauf zugreifen will brauchts static. Static ist aber auch, wenn man die klasse nutzen will, ohne ein objekt erzeugen zu müssen. Das is auch schon alles. Wie gesagt. mein grösstes Problem liegt im Klassenaufruf, wenn diese dynamisch sind.

fg

edit: hab doch lokale varialben in StringToDatum(String z) ?
 
Zuletzt bearbeitet:
S

SlaterB

Gast
> ja, das habe ich auch schon gemacht, aber sie muss doch static sein?
wie wärs mit Deutlichkeit statt 'sie', sie == die Methode? ich habe nicht gesagt dass du static an der Methode streichen sollst,
darüber kann man durchaus verhandeln, so wie es ist funktioniert es aber erstmal,
nur die Variablen dürfen nicht static sein wenn du mehrere Datum-Objekte mit unterschiedlichen Inhalt brauchst

> Das is auch schon alles
tja, das ist nicht gut, siehe letzten Satz im Absatz zuvor,
im Zweifel verwende nirgendwo static, von der main-Methode abgesehen, selbst für Methodenaufrufe könntest du immer erst ein Objekt erzeugen

> edit: hab doch lokale varialben in StringToDatum(String z) ?
nicht z.B. für year in Zeile 11
 

AcE(swiss)

Mitglied
Hey super! Danke, ja so funktionierts. wieso hab ich das nur selbst nicht gesehen? :p

Die instanzvariablen sind nun wieder dynamisch, die Methode blieb jedoch statisch.
Dafür passte ich die printDate an, sowie der entsprechende Aufruf:


Java:
static String printDate(Datum a){
	
		return a.day + "." + a.monat + "."+ a.year;
	}

Java:
public class Druck {

	Datum d;
	String druck;

public void toStringDruck() {

		System.out.println(Datum.printDate(d) + ": " + "Luftdruck: " + druck);
	}
 
Zuletzt bearbeitet:
Ähnliche Java Themen
  Titel Forum Antworten Datum
K Klasse mit einer Array-Eigenschaft Java Basics - Anfänger-Themen 4
F Auf Array einer anderen Klasse zugreifen Java Basics - Anfänger-Themen 4
K Klassen Array einer anderen Klasse ... Java Basics - Anfänger-Themen 21
J Array Objekte einer Klasse zuordnen Java Basics - Anfänger-Themen 15
S Auf Array einer anderen Klasse zugreifen. Java Basics - Anfänger-Themen 13
U Methoden Zugriff auf Array von weiterer Methode einer Klasse, Rückgabewert Problem Java Basics - Anfänger-Themen 5
E Array von Objekten einer selbst definierten Klasse mit eindeutigem Namen Java Basics - Anfänger-Themen 2
F Adressverwaltungsprogramm: Objekte einer Klasse in Array Java Basics - Anfänger-Themen 6
F Array als Instanz einer Klasse Java Basics - Anfänger-Themen 8
C Referenzen zu Instanzen einer Klasse im Array Java Basics - Anfänger-Themen 8
L Methoden Auf statische Methode einer anderen Klasse zugreifen, die Array zurückgibt Java Basics - Anfänger-Themen 3
A Array einer eigenen Klasse sortieren Java Basics - Anfänger-Themen 11
A Mehrere Instanzen einer eigenen Klasse in einem Array Java Basics - Anfänger-Themen 5
F Array einer eigenen Klasse erstellen. Java Basics - Anfänger-Themen 8
M probleme mit array (als attribut einer klasse) Java Basics - Anfänger-Themen 2
F Array einer eigenen Klasse Java Basics - Anfänger-Themen 5
M Aus einer Klasse auf Array einer anderen zugreifen. WIE? Java Basics - Anfänger-Themen 4
LilliCherry Array in einer Zeile ausgeben Java Basics - Anfänger-Themen 6
D EinMalEins mithilfe einer for-Schleife und Array Java Basics - Anfänger-Themen 1
A Ein Array bearbeiten und in einer anderen Methode nutzen Java Basics - Anfänger-Themen 6
I Array einer Methode wiedergeben Java Basics - Anfänger-Themen 2
A Array Ansprache einer Zelle über Punktnotation? Java Basics - Anfänger-Themen 3
O 2D-Array nach einer Spalte sortieren Java Basics - Anfänger-Themen 22
J Problem mit einer Methode die gewissen Inhalt einer Array löschen soll Java Basics - Anfänger-Themen 9
J Problem mit einer Methode, die beliebig viele Objekte in Array speichern soll Java Basics - Anfänger-Themen 6
JD_1998 Array-Position aus einer Methode in einer anderen ausgeben (Kurze Frage) Java Basics - Anfänger-Themen 2
JD_1998 Random Array sortieren mit Hilfe einer Methode Java Basics - Anfänger-Themen 4
A eine neue normale String-Array von einer String-Array, die in for schleife ist, schaffen Java Basics - Anfänger-Themen 3
K Übergabe von Werten (zweidimensionales Array) aus einer Methode an zweidimensionales Array in main() Java Basics - Anfänger-Themen 3
M Ist es möglich, das größte und zweitgrößte element in einem Array mit nur einer Schleife ausfindig zu machen ? Java Basics - Anfänger-Themen 19
I wieder mit einer Umwandelung habe ich Problem (diesmal von char Array zu char) Java Basics - Anfänger-Themen 1
M BlueJ - Array als Paramter einer Methode eingeben Java Basics - Anfänger-Themen 12
E Array-list mit einer bestimmten Länge Java Basics - Anfänger-Themen 17
C In einer Methode einen Array zurückgeben Java Basics - Anfänger-Themen 2
C Zeilen aus einer Datei in Array speichern Java Basics - Anfänger-Themen 4
V Erste Schritte Array.length[x] in einer Schleife - ich verstehe das nicht Java Basics - Anfänger-Themen 1
K Compiler-Fehler Durchschnitt einer Spalte in einem 2D-Array Java Basics - Anfänger-Themen 1
B Wie speicher ich die Outputs einer Methode in ein Array ein? Java Basics - Anfänger-Themen 1
J Array innerhalb einer Funktion mehrfach iniatilisieren Java Basics - Anfänger-Themen 4
S Übertragen einer Textdatei in ein 2d-Array Java Basics - Anfänger-Themen 2
S int-Array mittels Arrays.sort() in einer Schleife sortieren. Java Basics - Anfänger-Themen 2
C Array - Methode in einer anderen Aufrufen Java Basics - Anfänger-Themen 1
B Probleme beim einlesen einer short variablen für einen Array Java Basics - Anfänger-Themen 1
J Int Array und String in einer neuen Methoder übergeben Java Basics - Anfänger-Themen 7
C Array aus einer Methode zurückgeben und ausgeben Java Basics - Anfänger-Themen 1
G Array aus einer Wrapperklasse? Java Basics - Anfänger-Themen 2
J Datentypen Array von einer LinkedList Java Basics - Anfänger-Themen 5
M Zugriffsproblem auf (zweidimensionales) Array in einer ArrayList Java Basics - Anfänger-Themen 15
T Methoden in einer array werte vergleichen Java Basics - Anfänger-Themen 6
J Einem String-Array in einer for-Schleife Strings zuweisen - Klappt nicht in einer for-Schleife Java Basics - Anfänger-Themen 5
P int Array direkt einer Funktion übergeben Java Basics - Anfänger-Themen 3
T Array in einer Arraylist Java Basics - Anfänger-Themen 28
M Methoden Daten aus einer SQL-Abfrage in eine mehrdimensionales Array einlesen Java Basics - Anfänger-Themen 7
W Objekte in einer Array sortieren Java Basics - Anfänger-Themen 3
c_sidi90 Array in einer txt Datei speichern Java Basics - Anfänger-Themen 11
J Strings aus einer Datei in 2D Array schreiben Java Basics - Anfänger-Themen 3
E Einlesen einer int und speichern in einem Array Java Basics - Anfänger-Themen 7
T Array als Rückgabewert einer Methode Java Basics - Anfänger-Themen 3
Z Array mit daten einer datenbankbefüllen und dies an eine tabelle geben Java Basics - Anfänger-Themen 6
Nadja 2-Dim Array mit einer Zeile int und einer double Java Basics - Anfänger-Themen 4
P Array in einer Methode verändern Java Basics - Anfänger-Themen 6
A String[] array in vertikale Spalte einer JTable ausgeben? Java Basics - Anfänger-Themen 8
J Array in einer Liste Java Basics - Anfänger-Themen 2
B Buttons in einer Array Java Basics - Anfänger-Themen 6
E Inhalt einer array zelle prüfen? Java Basics - Anfänger-Themen 2
D Auf Array von einer Methode zugreifen Java Basics - Anfänger-Themen 2
G Definition einer Array Java Basics - Anfänger-Themen 3
G Array in main Methode bilden und in einer Methode nutzen? Java Basics - Anfänger-Themen 11
S Einlesen einer Datei und ins Array speichern Java Basics - Anfänger-Themen 11
G Inhalt einer Textdatei in ein Array einlesen Java Basics - Anfänger-Themen 2
A Länge einer Dimension in 2-dimensionalem Array ? Java Basics - Anfänger-Themen 2
C Inhalt aus einer Array in eine andere Array kopieren Java Basics - Anfänger-Themen 2
A Zeichenkette teilen mit Substring oder Char Array Java Basics - Anfänger-Themen 14
A 6. Element aus einem Array zurückgeben Java Basics - Anfänger-Themen 1
A Was bedeutet bei einem Array "int a [MAX][MAX];", Java Basics - Anfänger-Themen 7
T Array verkleinern Java Basics - Anfänger-Themen 2
J Array aus Numberfield Eingaben Java Basics - Anfänger-Themen 7
D Array List mit Objekten sortieren Java Basics - Anfänger-Themen 2
onlyxlia Anzahl Random Zahlen mit Scanner abfragen und in Array speichern Java Basics - Anfänger-Themen 10
Ü Java Array - Buchstaben als Zahlen ausgeben Java Basics - Anfänger-Themen 22
Ü Zweidimensionales Array in der ersten Zeile deklarieren Java Basics - Anfänger-Themen 13
Thomas Uppe 2D Array Reihenfolge vermischen Java Basics - Anfänger-Themen 4
T array auslesen Java Basics - Anfänger-Themen 2
Nitrogames Variablen Variable aus JOptionPane Abfrage in Array einfügen Java Basics - Anfänger-Themen 4
moini Auf Array aus Superklasse zugreifen? Java Basics - Anfänger-Themen 2
J ArrayList in 2D-Array konvertieren. Java Basics - Anfänger-Themen 48
M NullPointerException: Cannot read the array length because "this.Kinder" is null Java Basics - Anfänger-Themen 1
P Wieso kann ich als Index für einen Array einen Char angeben? Java Basics - Anfänger-Themen 3
Finn_lol Fehlermeldung bei Schleife mit Array Java Basics - Anfänger-Themen 4
Proxy Chars vor array übergabe toLowerUpcase Java Basics - Anfänger-Themen 14
iAmFaiinez Primzahlen Tester ohne Array Java Basics - Anfänger-Themen 4
S array 2 dimensional treppe Java Basics - Anfänger-Themen 3
S Array 2x2 Blöcke mit 0 und 1 Java Basics - Anfänger-Themen 10
C Array von Klassen Java Basics - Anfänger-Themen 2
julian0507 2Dim-Array Spaltensummen Java Basics - Anfänger-Themen 1
XWing Doppelte Zahlen im Array Java Basics - Anfänger-Themen 8
melisax Java 2D-Array Tabelle Java Basics - Anfänger-Themen 4
melisax Java Array Wert an bestimmtem Index angeben Java Basics - Anfänger-Themen 14
W Items löschen aus String Array vom Custom Base Adapter Java Basics - Anfänger-Themen 2
Proxy Stack erweitern mit neuem Array falls der alte voll ist!? Java Basics - Anfänger-Themen 5

Ähnliche Java Themen

Neue Themen


Oben