warum werden nicht die neuen Point Daten der Zeile 25 beim ausprinten Zeile 28 übernommen ?

latrellvie

Mitglied
Hallo bei diesen Programm wird pt1 und ptAlias mit (10,10) definiert und ausgegeben(Zeile 22 und 23)
dann ändere ich ptAlias bei Zeile 25 und neue Daten werden nicht ausgepríntet(Zeile 28). Was stimmt da nicht ? Großes Danke im Vorhinein !!!!!!!!!!!!!!!!!!!!!!!!!!!!!



Java:
import java.awt.* ;

class ZHU_Kap28_Auf2
{
	public static void main (String[]args)
	{
		Point pt1 = new Point (10,10);
		Point pt2 = new Point (30,30);
		Point ptAlias = (pt1);
		int flaeche,laenge,breite;
		int x1=10,y1 =10,x2=30,y2=30;
		String strpt1= pt1.toString(), strptAlias= ptAlias.toString();
	
		
		
		
		if ( pt1 == ptAlias)
			System.out.println(" pt1 und ptAlias verweisen auf dasselbe Objekt");
		else
			System.out.println(" pt1 und ptAlias verweisen nicht auf dasselbe Objekt");
			
		System.out.println("Point pt1 vorher :" + strpt1+"\n"+
		"Point ptAlias vorher :" + strptAlias );
		
		ptAlias = new Point(10*2,10*2);
		
		System.out.println("Point pt1 nacher :" + strpt1+"\n"+
		"Point ptAlias nacher :" + strptAlias );
		
	}
}
 

pro2

Bekanntes Mitglied
Weil du
Code:
strpt1
und
Code:
strptAlias
ausgibst und die werden in deinem Code nicht geändert.
 

Kevin94

Top Contributor
Warum sollten sie das? Strings sind unveränderlich. Du fragst zum Zeitpunkt x (Zeile 12) nach einer Stringrepräsentation von ptalias, die wird dann in der Referenz strptAlias gespeichert solange bis du dieser Referenz einen neuen Wert zuweisen würdes, was du nicht tust, deshalb ist zum Zeitpunkt y (Zeile 28) auch immernoch das selbe in dieser Variablen gespeichert.
 

Final_Striker

Top Contributor
du teilst
Code:
strptAlias
keinen neuen Wert zu, warum sollte sich da was verändern?

Java:
if ( pt1 == ptAlias)
Objekte vergleicht man übrigens mit
Code:
equals
z.B.
Code:
obj1.equals(obj2)
und nicht mit
Code:
==
 
Zuletzt bearbeitet:

Kababär

Top Contributor
Java:
if ( pt1 == ptAlias)
Objekte vergleicht man übrigens mit
Code:
equals
z.B.
Code:
obj1.equals(obj2)
und nicht mit
Code:
==

Hmm.. ich weiß da etwas anderes. Ich beschäftige mich auch gerade mit dem Thema und habe Folgendes gelernt:
Mit == kann man überprüfen, ob zwei Referenzen auf das selbe Objekt verweisen.
Beispiel
Code:
Point pt1= new Point(30,15);
Point pt2 = pt1;

Mit equals vergleicht man nur den Inhalt von Objekten.
Code:
Point pt3 = new Point(22,98);
Point pt4 = new Point(22,98);
Da zeigen die Referenzen nicht auf das selbe Objekt, aber besitzen den selben Zustand.
 
Zuletzt bearbeitet:

latrellvie

Mitglied
Zuerst mal Danke für die Antworten, jede vertieft mein Wissen weiter !
NUN ... :=) ... Ich weiß ich habe in Zeile 25 nur ptAlias geändert aber da strptAlias als Referenz zu ptAlias gilt [Zeile 12 als strptAlias= ptAlias.toString();] gehe ich davon aus, dass das Programm in Zeile 28 auf strptAlias trifft dann die Definition davon nachschaut [ strptAlias= ptAlias.toString(); in Zeile 12] und daher den neuen Wert ausgiebt . Stimmt aber anscheinend nicht.
 

Kevin94

Top Contributor
Es gibt beim Programmieren sowas wie "Definitionen" nicht direkt, sondern das = steht für eine Zuweisung. Es wird der Variablen nur der Zustand des Point-Objekts zum Zeitpunkt des Methodenaufrufs zugewiesen.
 

pro2

Bekanntes Mitglied
Nein, strptAlias ist die Referenz auf einen String, den du in Zeile 12 quasi erstellst. Du kannst aber übrigens einfach schreiben
Code:
System.out.println(ptAlias);
da hierbei immer die
Code:
toString()
Methode des Objekts aufgerufen wird.
 

AquaBall

Top Contributor
Code:
aber da  strptAlias als Referenz zu ptAlias gilt [Zeile 12 als strptAlias= ptAlias.toString();]
Das ist keine Referenz!, sonderne eine Zuweisung eines Strings. Der String wird physikalisch im Speicher angelegt.


Code:
gehe ich davon aus, dass das Programm in Zeile 28 auf strptAlias trifft dann die Definition davon nachschaut
Das ist keine Definition, sondern eine Anweisung.

Die Denkweise ist nicht ganz unlogisch, weil ja bei Funktionen und KlassenMethoden genau sowas passiert.
Aber allein die Schreibweise "strptAlias=" zweigt klar, dass es eine Anweisung ist. (und kein "return ...")
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
S nach Import von jars (PLC4x) in Eclipse kann nicht mehr compiliert werden Java Basics - Anfänger-Themen 9
N Ich kriege ganze zeit die Fehlermeldung "Inhalt der Zwischenablage kann nicht in die ausgewählten Elemente eingefügt werden" hat jemand eine Lösung? Java Basics - Anfänger-Themen 6
R Java kann nicht installiert werden Java Basics - Anfänger-Themen 8
P BeforeEach AfterEach werden nicht ausgeführt. Java / Selenium Java Basics - Anfänger-Themen 4
I Greenscreen, funktioniert nicht zu 100%... nicht alle Pixel werden geändert Java Basics - Anfänger-Themen 1
L Hilfe! Liste mit Items werden ausgegeben aber nicht in zufälliger Reihenfolge Java Basics - Anfänger-Themen 6
sserio Wieso werden nicht alle Primzahlen bis 1000 in meine Liste gepackt ? Java Basics - Anfänger-Themen 8
E Umlaute und Sonderzeichen werden nach der Build Project nicht richtig angezeigt Java Basics - Anfänger-Themen 2
U Hauptklasse kann nicht gefunden werden Java Basics - Anfänger-Themen 8
C java.sql Statement kann nicht geschlossen werden Java Basics - Anfänger-Themen 9
LetsSebi Dateien werden nicht in Zip gespeichert Java Basics - Anfänger-Themen 1
J Array Elemente werden nicht gefunden! Java Basics - Anfänger-Themen 6
M Warum werden character, die Leerzeichen sind, nicht korrekt verarbeitet? Java Basics - Anfänger-Themen 2
P Variablen HttpResponse.getBody() wird automatisch org.json Object und kann nicht zu json.simple Object gecastet werden? Java Basics - Anfänger-Themen 7
F JMenuItem Kann nicht nach einem String benannt werden... Java Basics - Anfänger-Themen 11
Zrebna Programm kann aus der Konsole nicht gestartet werden (in der IDE läuft es) Java Basics - Anfänger-Themen 2
T Javafx ListView kann nicht gefüllt werden. Java Basics - Anfänger-Themen 6
H Eclipse kann nicht gestartet werden .... Java Basics - Anfänger-Themen 15
R Warum werden hier nur die grün und orangen Linien ausgegeben und der Rest unten nicht? Java Basics - Anfänger-Themen 5
J Eckige Klammern werden nicht erkannt Java Basics - Anfänger-Themen 1
Kirby.exe Hauptklasse konnte nicht gefunden werden.... Java Basics - Anfänger-Themen 27
B Nach dem kompilieren werden Bilder nicht mehr gefunden Java Basics - Anfänger-Themen 10
D java main methode kann nicht kompiliert werden (Erstellen eines Objekts) Java Basics - Anfänger-Themen 6
B Warum können super() und this() nicht gemeinsam in einem Konstruktor verwendet werden? Java Basics - Anfänger-Themen 7
V Array, Symbol kann nicht gefunden werden Java Basics - Anfänger-Themen 2
S TableView Items werden nicht angezeigt (+Verständnisfragen) Java Basics - Anfänger-Themen 15
O Apache: Log-Settings werden nicht gezogen Java Basics - Anfänger-Themen 0
H LayoutRes, Nullable und SystemServices werden in LayoutInflater nicht importiert Java Basics - Anfänger-Themen 9
L Input/Output AudioInputStream kann nicht erstellt werden. Java Basics - Anfänger-Themen 3
E Die Hauptklasse konnte nicht gefunden werden. Java Basics - Anfänger-Themen 12
H Hauptklasse ... konnte nicht gefunden oder geladen werden Java Basics - Anfänger-Themen 8
I Projekt als .jar Datei speichern - Bilder werden nicht mehr angezeigt Java Basics - Anfänger-Themen 4
S Hauptklasse konnte nicht gefunden werden Java Basics - Anfänger-Themen 0
C Matrix-Werte werden nicht wie erwartet ausgegeben Java Basics - Anfänger-Themen 7
M GUI Startbutton und Titel werden nicht angezeigt Java Basics - Anfänger-Themen 1
F Variablen JTextField-Inhalt kann nicht mit String abgeglichen werden Java Basics - Anfänger-Themen 2
F Interface JButtons werden nicht angezeigt... Java Basics - Anfänger-Themen 5
DaCrazyJavaExpert Bilder werden nicht angezeigt! Java Basics - Anfänger-Themen 6
DaCrazyJavaExpert JLabels werden nicht angezeigt Java Basics - Anfänger-Themen 4
G Verkettete Liste - Neu erzeugte Elemente werden nicht ausgegeben Java Basics - Anfänger-Themen 5
S Fehler: Hauptklasse bin.demo.Start konnte nicht gefunden oder geladen werden Java Basics - Anfänger-Themen 2
M Klassen Fehler: Hauptklasse konnte nicht gefunden oder geladen werden Java Basics - Anfänger-Themen 17
P Interface Variablen-Inhalte werden nicht übergeben Java Basics - Anfänger-Themen 3
S Classpath "Hauptklasse konnte nicht gefunden oder geladen werden" Java Basics - Anfänger-Themen 6
A Interface Abstrakte Interface Methode kann nicht benutzt werden Java Basics - Anfänger-Themen 10
C AppletViewer-Eigenschaftendatei kann nicht gelesen werden Java Basics - Anfänger-Themen 0
D Erste Schritte JFrame Inhalte werden nicht angezeigt Java Basics - Anfänger-Themen 8
P Threads Prozess kann nicht über die GUI gestartet werden Java Basics - Anfänger-Themen 8
H javac.exe konnte nicht gefunden werden Java Basics - Anfänger-Themen 2
H Methoden können nicht verwendet werden Java Basics - Anfänger-Themen 10
P Programm kann über CMD nicht ausgeführt werden Java Basics - Anfänger-Themen 2
C Java Hauptklasse konnte nicht gefunden oder geladen werden Java Basics - Anfänger-Themen 14
K Hauptklasse konnte nicht gefunden oder geladen werden Java Basics - Anfänger-Themen 3
N String kann nicht in Wochentag konvertiert werden Java Basics - Anfänger-Themen 6
C Klassen Sudoku-Spiel Werte werden nicht gesetzt Java Basics - Anfänger-Themen 4
B PATH kann nicht geändert werden Java Basics - Anfänger-Themen 2
J JDK installieren Hauptklasse .... konnte nicht geladen werden. Java Basics - Anfänger-Themen 4
K Klassen Hilfe - Hauptklasse kann nicht gefunden oder geladen werden Java Basics - Anfänger-Themen 5
D Classpath Bild kann in .jar nicht geladen werden Java Basics - Anfänger-Themen 2
E Shell: Hauptklasse konnte nicht gefunden oder geladen werden Java Basics - Anfänger-Themen 3
C Klassen Hauptklasse kann nicht gefunden werden Java Basics - Anfänger-Themen 4
W Was passiert mit Objekten die nicht in Objektvariablen initialisiert werden ? Java Basics - Anfänger-Themen 3
S Methoden Linked List Methoden können nicht aufgerufen werden Java Basics - Anfänger-Themen 1
J Hauptklasse kann nicht gefunden werden! HILFE!!!! Java Basics - Anfänger-Themen 1
M Interpreter-Fehler Klasse kann nicht gefunden werden. Java Basics - Anfänger-Themen 2
D javac kann trotz PATH-Eintrag nicht gefunden werden (Hello World) Java Basics - Anfänger-Themen 10
M Fehler: Hauptklasse konnte nicht gefunden oder geladen werden Java Basics - Anfänger-Themen 6
E Dateien werden nicht gelöscht Java Basics - Anfänger-Themen 10
V Methoden Objekte werden anscheinend nicht erstellt Java Basics - Anfänger-Themen 3
W HTML Code, Umlaute werden nicht richtig dargestellt Java Basics - Anfänger-Themen 7
S try-catch - Variablen werden nicht an return übergeben Java Basics - Anfänger-Themen 3
I komponenten werden in JFrame nicht richtig angezeigt Java Basics - Anfänger-Themen 1
R Compiler-Fehler javac -> "hauptklasse com.sun.tools.javac.main konnte nicht gefunden oder geladen werden" Java Basics - Anfänger-Themen 33
S Input/Output Hauptklasse kann nicht gefunden oder geladen werden Java Basics - Anfänger-Themen 2
lord239123 Buttons werden nicht angezeigt Java Basics - Anfänger-Themen 3
S Datei kann nicht eingelesen werden Java Basics - Anfänger-Themen 8
E Hauptklasse konnte nicht gefunden werden... Java Basics - Anfänger-Themen 6
K org/slf4j/LoggerFactory kann nicht gefunden werden Java Basics - Anfänger-Themen 16
P Classpath jdbc-Treiber kann nach export in jar-File nicht mehr geladen werden Java Basics - Anfänger-Themen 2
B Buttondrücke werden nicht gezählt Java Basics - Anfänger-Themen 2
B Buttondrücke werden nicht gezählt Java Basics - Anfänger-Themen 2
M Mutiple markers werden in Eclipse nicht mehr angezeigt Java Basics - Anfänger-Themen 2
I Fehler: Hauptklasse com.sun.tools.javac.main konnte nicht gefunden werden Java Basics - Anfänger-Themen 3
J Regex Ausdrücke im Array - Wieso werden sie nicht erkannt? Java Basics - Anfänger-Themen 4
D Erste Schritte Hauptklasse konnte nicht gefunden oder geladen werden Java Basics - Anfänger-Themen 6
C FilenameFilter kann nicht instanziert werden Java Basics - Anfänger-Themen 4
FrozeTee .java Dateien unter Windows 7 werden nicht angezeigt Java Basics - Anfänger-Themen 7
H Classpath konnte nicht gefunden werden? Java Basics - Anfänger-Themen 2
M Applet kann in Browser nicht ausgeführt werden Java Basics - Anfänger-Themen 4
O swing komponenten werden nicht angezeigt Java Basics - Anfänger-Themen 6
X Erste Schritte JTable kann nicht in CSV gespeichert werden Java Basics - Anfänger-Themen 8
A Daten werden nicht gespeichert Java Basics - Anfänger-Themen 3
M Erste Schritte Konto darf nicht überzogen werden... Java Basics - Anfänger-Themen 5
S Classpath Libraries werden unter Linux nicht erkannt Java Basics - Anfänger-Themen 5
M Primzahlen - es werden alle Nicht-Primzahlen ausgegeben Java Basics - Anfänger-Themen 5
M Listenobjekte werden nicht komplett gelöscht Java Basics - Anfänger-Themen 2
M Java kann nicht installiert werden "entpacken RT fehlgeschlagen" Java Basics - Anfänger-Themen 7
M Sonderzeichen werden nicht erkannt Java Basics - Anfänger-Themen 3
F Warum werden nicht mehr Programme in Java geschrieben? Java Basics - Anfänger-Themen 27
G RegEx werden nicht erkannt Java Basics - Anfänger-Themen 7

Ähnliche Java Themen

Neue Themen


Oben