Zeigerfehler für Attribute

Roydebatzen

Mitglied
Hallo, ich habe einen fehler in folgendem Quelltext:
Java:
class Graph {
//Hier werdend die Attribute deklariert.
String Ausgabe;//Hier nur Fließtext verwenden. Dann fehlen Attribute für die Städte.
String[] standorte;
int[][] matrix;
String list;
/*
public Graph(){

}
*/
public void initFromUser(){
System.out.println("Anzahl Staedte: ");//müsste klappen
int amountTowns = In.readInt();// müsste klappen
int i = 0;// müsste klappen
String[] townsName = new String[amountTowns];//falsch, Hier muss etwas komplett anderes stehen.
while(i < amountTowns){// müsste klappen
System.out.println("Ortsname eingeben: ");// müsste klappen
townsName[i] = In.readWord();
i++;// müsste klappen
}


//Hier beginnt der Abschnitt indem die Ausgabe der Orte generiert wird. Bekante Fehler sind das Fehlen von Leerzeichen
int townCounter = 0;// müsste klappen
this.Ausgabe = ("Es gibt folgende Orte: ");
this.standorte = townsName;//vllt. falsch
//Hier wird der Ausgabewert der Matrix initialisiert
int a = 0;// müsste klappen
int j = 1;// müsste klappen
int[][] adjacencymatrix = new int[amountTowns][amountTowns];// müsste klappen, eventuell

//Hier wird der Ausgabewert für die Matrix generiert. Ist die Form korrekt?
while(a<amountTowns){// müsste klappen
while(j<amountTowns){// müsste klappen
System.out.println("Entfernung zwischen " + townsName[a] + " und " + townsName[j] + " (oder -1 für keine Verbindung): ");
adjacencymatrix[a][j] = In.readInt();// müsste klappen
adjacencymatrix[j][a] = adjacencymatrix[a][j];//müsste klappen
adjacencymatrix[j][j] = 0;//müsste klappen
j++;
}
a++;//müsste klappen
j = a + 1;//müsste klappen
}

//Zuweisung der Matrix, bzw. des Attributes
this.matrix = adjacencymatrix;//Richtige Zuweisung? Eventuell falsch
//adjacencyMatrixToLists();

}
}
/*
Hier sollen die Listen entstehen.
public void adjacencyMatrixToLists(){
	int listen = 0;
	int orte = 1;
	while(listen < matrix[].length()){kann ich jetzt auf matrix zugreifen?
		while(orte < matrix[].length()){
			String erstelleliste =\n + Standorte[listen];
			if(matrix[listen][orte] != -1){
				erstelleliste  = erstelleliste + "(" + Standorte[orte] + ", " + matrix[listen][orte] + ")"}
		}//Eventuell String falsch erstellt,also nicht gültig so.
		orte = 0;//müsste klappen
		listen++;//müsste klappen
	}
	this.list = erstelleliste;//Zuweisung korrekt?
}
//Aufgabe c) fehlt komplett
}

*/
.
Der folgende Datei ausführen soll:
Java:
class Towns{

public static void main(String args[]){
Graph towns = new Graph();
towns.initFromUser();
System.out.println(towns);
}

}
Der Fehler ist ein Zeigerfehler, weil die System.outprint von towns nicht auf die Attribute vond Towns zeigt, denke ich. Also ich denke die Attribute von towns werden schon richtig gespeichert, aber in der Ausgabe schein kein Zeiger drauf zu weisen.
Falls ihr die In Klasse braucht um mir zu helfen, findet ihr Sie hier:
http://www.ssw.uni-linz.ac.at/JavaBuch/In.class

Ich wäre für Hilfe echt dankbar.:toll:
 

pl4gu33

Top Contributor
Java:
class Towns{

public static void main(String args[]){
Graph towns = new Graph();
towns.initFromUser();
System.out.println(towns);
}

}

du gibst Syso hier nur das Objekt, woher soll Syso denn wissen, was es ausgeben soll außer das Objekt? ^^

wenn du hier z.b. die Attribute ausgeben lassen willst,... is Getter/Setter, toString- Methode oder eine "Methode mit Syso's drin" sinnvoll :)
 
Zuletzt bearbeitet:

Sesostris

Aktives Mitglied
Deine Klasse Graph hat keine eigene toString()-Methode, folglich wird die Standardmethode verwendet und die gibt dir nur die Referenz aus.

Aber was sollte denn
Java:
System.out.println(towns);
überhaupt ausgeben? Den String Ausgabe?
Aber selbst der beinhält nur "Es gibt folgende Orte: ", mehr speicherst du darin nicht. Da kann man nicht von einem Fehler sprechen, sondern es verhält sich genau so, wie du es programmiert hast. Ob das so beabsichtigt ist, kann man schlecht beurteilen, wenn man nicht weiß, was dein Programm denn überhaupt machen soll.
 

Roydebatzen

Mitglied
Hi,

mein Programm soll eine Ortematrix erstellen, also eine Matrix ausgeben in denen die Distanzen zwischen den Orten ausgegeben werde. Also eigentlich(!) sollen alle Attribute ausgegeben werden. Wir hatten auch schon mal so eine Aufgabe un da wurde es eigentlich so ähnlich gelöst. Da wurde ein Objekt[] a erstellt und dann in einer Methode ein System.out.print(p) gemacht wobei vorher das objekt a mitels ":" in p kopiert wurde, dann wurde das ganze array oder die kopie ausgegeben, so wollte ich das nun auch machen.
 
Zuletzt bearbeitet:

Sesostris

Aktives Mitglied
Um diese Ausgabe musst du dich aber selbst kümmern. Es gibt dafür keine automatische Methode, die immer sinnvolle Ergebnisse liefert - wie denn auch? Java kann ja nicht wissen, welche Instanzvariablen wie zu interpretieren sind und in welchem Zusammenhang sie stehen.

Deine Instanzvariablen enthalten zum Beispiel:
Ausgabe: "Es gibt folgende Orte: "
Standorte: Ein Array mit den vom Benutzer eingegeben Ortsnamen
matrix: Ein zweidimensionales Array, das die Entfernungen zwischen den eingegeben Orten enthält
list: null
 

Roydebatzen

Mitglied
Ja genau so.

Jetzt wollte ich aber eben diese Augabe durch System.out.print(towns) erhalten.
ich dachte er macht das denn in der Reihenfolge wie die Instanzvariablen gegeben sind. Also das er erst den Inhaltt von Ausgabe dann standorte und dann matrix ausgibt. Wie sollte ich es denn sonst machen? Er hat ja praktisch einen Zeiger von towns auf die Instanzvariablen, oder nicht? Ja nja gut irgendwie ist das schon klar, das er z.B. die Matrix nicht sinnvoll ausgeben kann, könnt ihr mir denn einen Ansatz geben, wie ich die Instanzvariablen über System.ou.print(towns) ausgeben kann?
Ich muss ja praktisch entweder alle sachen(ausgabe, standorte...) in towns speichern oder eher wahrschienlich einen Zeiger von towns direkt auf diese Objekte bauen. Ich könnte natürlich auch einen String mit genau diesen Instanzvariablen bauen, aber selbst dann muss ich ja noch einen zeiger von towns auf diesen string bauen, richtig?
 
Zuletzt bearbeitet:

Sesostris

Aktives Mitglied
Ich könnte natürlich auch einen String mit genau diesen Instanzvariablen bauen
Genau das solltest du. Mit einer toString()-Methode in deiner Graph-Klasse könnte das zum Beispiel so aussehen:
Java:
	public String toString() {
		return Ausgabe + Arrays.toString(standorte);
	}
Wie auch noch deine Matrix hier schön ausgeben wird, musst du dir allerdings selbst überlegen.
 
Zuletzt bearbeitet:

Roydebatzen

Mitglied
Oh s*****e, hoffentlich bin ich icht viel zu spät.
Ich will keine return-methode schreiben.
Ich will den Inhalt eines objects towns ausgeben über system.out.print(towns).
Ansonsten erhalte ich ja in der Zeile system.out.print(towns) immer einen zeigerfehler generiert.

Danke falls mir noch jemand helfen kann
 
V

vanny

Gast
Der Inhalt eines Objektes vom Typ towns ist was? --- da bin ich jetzt genau so blöd wie Java auch.
Logisch, denn den Inhalt hast du ja verzapft, ich und java können nicht wissen, was du da als Ausgabe haben möchtest.
sysout gibt was wieder ? ... richtig einen string! ... also gib der Methode auch einen String!

simples Beispiel:
Java:
public class ToStringTest {

	private int zahl  = 5;
	private String string = "Die Zahl ist ";
	
	public ToStringTest(){
		
	}
	
	public String toString(){
		return  string + zahl;
	}
	
	
	public static void main(String[] args) {
		System.out.println(new ToStringTest());
	}
}

Ausgabe= "Die Zahl ist 5"
 

Roydebatzen

Mitglied
Danke nochmal für die späte Antwort.

Ja das mit dieser toString methode ist so eine Technik. HAbs jetzt aber hinbekommen. versuch noch grad die ausgeklammerte toadjacencymatrix() mit an zu hängen. Falls du noch Lust hast mir zu helfen,

Ich dachte ich mach es einfach so, dass ich in meiner toString() noch eine Zeile hinzufüge ungefähr so:

String wasAuszugebenIst = AllesWasSchonDrinIst + list;

und dann wollte ich noch meine andere Methode also die adjacencymatrixtolist() so überarbeiten das sie funktioniert, aber ich finde den Fehler grade nicht.
Aufgerufen wird Sie in der intFromUser();

und folgendes steht grade drin:

Java:
public void adjacencyMatrixToLists(){//Die Methode funktioniert nicht
	int listen = 0;
	String erstelleliste = new String();
	int orte = 1;
	while(listen < matrix.length){
		while(orte < matrix.length){
			erstelleliste ="\n" + standorte[listen];
			if(matrix[listen][orte] != -1){
				erstelleliste  = erstelleliste + "(" + standorte[orte] + ", " + matrix[listen][orte] + ")";
			}
		}
		orte = 0;
		listen++;
	}
	this.list = erstelleliste;
}
 

pl4gu33

Top Contributor
"String wasAuszugebenIst = AllesWasSchonDrinIst + list;"
kann man theoretisch so machen, wenn du den String dann auch wirklich zurück gibst in der toString Methode und dir das so genügt.

was genau funktioniert denn nicht? (Exception?, Falsche Ausgabe? Gar nix?) ;)
was mir nur so auffällt mit Schlaf- Augen,... in dem Codestück
Code:
erstelleliste ="\n" + standorte[listen];
überschreibst du jedes Mal deinen String.

Bau einfach mal ein paar Syso ein... dann siehst Durchgang für Durchgang, wie das Programm arbeitet und kannst, gerade zu Anfang, viel leichter Fehler finden
 
Zuletzt bearbeitet:

Roydebatzen

Mitglied
mittlerweile hab ichs hinbekommen, aber wer mal genauer hinguckt, dem springt der fehler praktisch ins auge.
Also das mit dem überschreiben ist der eine richtig grobe schnitzer, aber es ist noch ein zweiter noch fetterer fehler drin und indirekt hast du ihn schon angesprochen....viel spaß :D
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
M Code aus IntelliJ in "Textform" für Word-Paper? Java Basics - Anfänger-Themen 3
G Icon für App Java Basics - Anfänger-Themen 1
Kerstininer Vererbung Hilfe beim lernen von Objektorientierung für eine Klausur Java Basics - Anfänger-Themen 10
Sniper1000 Java 391 für Windows Java Basics - Anfänger-Themen 37
P Wieso kann ich als Index für einen Array einen Char angeben? Java Basics - Anfänger-Themen 3
benny1993 Java Programm erstellen für ein Fußball-Turnier Java Basics - Anfänger-Themen 3
V Durchschnittliche Volatility in Prozent für 4 Stunden berechnen Java Basics - Anfänger-Themen 14
P Welches SDK für das erstellen einer ausführbaren Datei? Java Basics - Anfänger-Themen 4
C negamax-Algorithmus für Tic-Tac-Toe spielt manchmal falsch Java Basics - Anfänger-Themen 10
D Apache HTTPClient für alle Fälle Java Basics - Anfänger-Themen 41
J Layout Manager, welcher ist der Richtige für mein Program? Java Basics - Anfänger-Themen 1
J Fehlermeldung unverständlich für Jakarta Java Basics - Anfänger-Themen 17
M Minimax-Algorithmus für Vier gewinnt Java Basics - Anfänger-Themen 11
M GUI für Vier-Gewinnt. Java Basics - Anfänger-Themen 4
I JPA Query für mehrere Klassen Java Basics - Anfänger-Themen 3
D Quellcode für cmd funktioniert nicht Java Basics - Anfänger-Themen 9
R Operatoren Rechenoperation in Java verwenden für Calculator Java Basics - Anfänger-Themen 2
R Operatoren Rechenoperation verwenden für Taschenrechner. Java Basics - Anfänger-Themen 32
Ostkreuz Counter für Booleanwerte Java Basics - Anfänger-Themen 8
B Regex Ausdrücke für Monate Java Basics - Anfänger-Themen 7
I BlueJ Queue Frage für Klausur Java Basics - Anfänger-Themen 2
K loop pausieren für eine bestimmte Anzahl? Java Basics - Anfänger-Themen 1
Jxhnny.lpz Randomisier für Buttons Java Basics - Anfänger-Themen 13
W Intuitive interface für Komponenten Java Basics - Anfänger-Themen 4
M "Class<T> clazz" im Constructor - auch für int möglich? Java Basics - Anfänger-Themen 7
B Schrankensystem mit Farberkennung für Flashgame funktioniert nicht wie geplant Java Basics - Anfänger-Themen 4
I Code für Bezahlsystem (auch bei Offline Aktivität) Java Basics - Anfänger-Themen 7
U jUnit 5 Test für eine addMethode Java Basics - Anfänger-Themen 18
M monte carlo Algorithmus für 4 gewinnt Java Basics - Anfänger-Themen 12
frager2345 Java Singleton Muster -> Methode für Konstruktor mit Parametern Java Basics - Anfänger-Themen 3
izoards Sortier Algorithmus für Bounding Box Elememte Links nach Rechts und von Oben nach Unten Java Basics - Anfänger-Themen 33
M generate Methode für Streams Java Basics - Anfänger-Themen 6
I Datenmodell für "Tags" Java Basics - Anfänger-Themen 6
Lion.King for-Kontrollstruktur für Pyramide Java Basics - Anfänger-Themen 8
B Mit Countdown Midnestdauer für Teilaufgabenerledigung erzwingen Java Basics - Anfänger-Themen 8
J File length als Prüfwert für Download Java Basics - Anfänger-Themen 5
K Spieleidee gesucht für Informatikprojekt - JAVA (BlueJ)? Java Basics - Anfänger-Themen 15
P Zähler Variable für mehrere Objekte Java Basics - Anfänger-Themen 6
javamanoman Java für Online Banking Java Basics - Anfänger-Themen 12
NadimArazi Wie kann ich eine collision detection für die Paddles in meinem Pong Programm hinzufügen? Java Basics - Anfänger-Themen 4
JordenJost Java ist auch eine Insel für Anfänger Java Basics - Anfänger-Themen 2
P9cman Tipps für Rekursive Aufgaben mit Strings oder allgemein Java Basics - Anfänger-Themen 2
F Suche nach betreuender Person für eine Jahresarbeit der 12. Klasse. Java Basics - Anfänger-Themen 6
I SQL / JPA Query für StartDate und EndDate Java Basics - Anfänger-Themen 1
T getMethode für ein Array Java Basics - Anfänger-Themen 2
Fats Waller Farben mixen für den Hintergrund ? Java Basics - Anfänger-Themen 1
H Suche jemanden für kleine Uni-Abgabe/ mit Vergütung Java Basics - Anfänger-Themen 1
K Für was braucht man die left und right shift operatoren? Was bringen die, also welchen Zweck haben die? Java Basics - Anfänger-Themen 15
N Api nur für Textdatein (.txt) Java Basics - Anfänger-Themen 2
bluetrix Programmieren eines Bots für Zahlen-Brettspiel Java Basics - Anfänger-Themen 9
M Wie kann eine Methode für ein vorhandenes "Array von char" einen Index-Wert zurückliefern? Java Basics - Anfänger-Themen 3
R Ist Java das Richtige für mich? Java Basics - Anfänger-Themen 4
E Mittelquadratmethode für Hexadezimalzahlen Java Basics - Anfänger-Themen 1
P Einfacher regulärer Ausdruck (RegEx) für E-Mail-Adressen Java Basics - Anfänger-Themen 2
Kiki01 Wie würde eine geeignete Schleife aussehen, die die relative Häufigkeit für jeden Charakter in einem Text bestimmt? Java Basics - Anfänger-Themen 3
N Fehler im Code (Aufgabe für Anfänger) Java Basics - Anfänger-Themen 11
O Wie erstelle ich eine Instanz in einer Klasse für die ich die Instanz will? Java Basics - Anfänger-Themen 4
S BubbleSort für ArrayLists Java Basics - Anfänger-Themen 3
T Übungsbuch für Anfänger Java Basics - Anfänger-Themen 3
L Konzept für Quiz Java Basics - Anfänger-Themen 33
D Methoden Plathhalter für Integer in einer Methode Java Basics - Anfänger-Themen 19
B Datentyp für Einzelnes Objekt oder Liste Java Basics - Anfänger-Themen 9
D Welche GUI Library für eine Client Server Chat App Java Basics - Anfänger-Themen 14
T Algorithmus für Index mit min-Wert Java Basics - Anfänger-Themen 2
Aqtox Hallo ich muss für die Schule ein Wuerfell Duell erstellen jedoch habe ich ein fehler Java Basics - Anfänger-Themen 4
L loop für Namen Java Basics - Anfänger-Themen 11
kxrdelis Konstruktor für ein Rechtwinkliges Dreieck Java Basics - Anfänger-Themen 10
S Fehler bei Code mit SubStrings für mich nicht auffindbar. Java Basics - Anfänger-Themen 4
nevel Programm für die Summer der Zahlen 1- 1ß Java Basics - Anfänger-Themen 12
I Entity erstellen, die für API gedacht ist Java Basics - Anfänger-Themen 33
C Archiv für eigene Klassen Java Basics - Anfänger-Themen 9
A Junit Test für MysqlDataSource JDBC Java Basics - Anfänger-Themen 3
Animal-Mother BMI Rechner erstellen für W/M Java Basics - Anfänger-Themen 7
E Kleines Java-Projekt für Anfänger Java Basics - Anfänger-Themen 10
A Java die richtige Programmiersprache für mein Projekt? Java Basics - Anfänger-Themen 1
I DecimalFormat in Zahlenformat für Währung, habe 7,99, bekomme aber 7 Java Basics - Anfänger-Themen 4
L Methode für Zweidimensionale Arrays Java Basics - Anfänger-Themen 4
Kanaska Datentyp für Zahlenbereiche Java Basics - Anfänger-Themen 7
T Startbildschirm für ein Spiel erstellen Java Basics - Anfänger-Themen 0
U BestPractise für Deployment unter Windows gesucht Java Basics - Anfänger-Themen 12
lilrack UML Diagramm für Parkplatzverwaltung Java Basics - Anfänger-Themen 8
W Mehrfach das gleiche Attribut für ein Objekt erzeugen (mit verschiedenen Werten) Java Basics - Anfänger-Themen 2
B Generische Typen für dynamisches Formular Java Basics - Anfänger-Themen 3
C Was ist nötig für ein Java-Programm auf Server für Website Java Basics - Anfänger-Themen 18
T Vererbung Verschiedene Attribute für vererbte Klassen Java Basics - Anfänger-Themen 4
T Start-Activity für Java Maven Web-Anwendung festlegen Java Basics - Anfänger-Themen 2
T Alternative für switch case Java Basics - Anfänger-Themen 1
P Ressourcen für JSON & API Informationen? Java Basics - Anfänger-Themen 1
M Java Einstellung von Apache POI für MS Word Erstellung mit Eclipse Java Basics - Anfänger-Themen 6
L Compiler-Fehler SupressWarning für clone() Java Basics - Anfänger-Themen 6
P Wie für EIN Java Programm von 64bit Java (=Standard) auf 32bit Java Installation (Windows) umschalten? Java Basics - Anfänger-Themen 6
B Methode für jede beliebe Entity erstellen Java Basics - Anfänger-Themen 7
D Ampel für Mitarbeiter zum An-/Abwesend zeigen Java Basics - Anfänger-Themen 28
T Wahrscheinlichkeiten für Slot Machine Java Basics - Anfänger-Themen 13
C Konvertierung des int typs in den double typ für die Ausgabe mit Nachkommastellen Java Basics - Anfänger-Themen 4
M Code nur für Cracks? Crack the Passwort Übung Java Basics - Anfänger-Themen 7
L Konstruktor für eine Map-Datei/Map-Datei einlesen Java Basics - Anfänger-Themen 5
T Roulette für Anfänger Java Basics - Anfänger-Themen 7
A Überprüfung für unentschieden in TicTacToe Java Basics - Anfänger-Themen 10
L Best Practice Code Refactoring für Methoden mit fast gleicher Aufbau Java Basics - Anfänger-Themen 6

Ähnliche Java Themen

Neue Themen


Oben