AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein GoTo in java gibt es nicht... alternative?
Thema durchsuchen
Ansicht
Themen-Optionen

GoTo in java gibt es nicht... alternative?

Ein Thema von Nicodius · begonnen am 9. Nov 2004 · letzter Beitrag vom 10. Nov 2004
 
choose

Registriert seit: 2. Nov 2003
Ort: Bei Kiel, SH
729 Beiträge
 
Delphi 2006 Architect
 
#23

Re: GoTo in java gibt es nicht... alternative?

  Alt 10. Nov 2004, 09:23
Zitat von r_kerber:
Der Vergleich line == "Ja" überprüft, ob zwei Objekte gleich sind
Genau das führt in der OOP oft zu Missverständnissen. Ein Objekt hat immer eine Identität, die in der Menge aller Objekte einzigartig ist und einen Zustand, der insbesondere bei identischen Klassen (ja, auch Klassen haben eine Identität inne (einige Sprachen betrachten sie als normale Objekte)!) zwischen unterschiedlichen (nicht-identischen) Objekten gleich sein kann.

Objekte können also per Definition gleich, wenn ihr Zustand gleich ist. Das kann in Java mithilfe der Methode Object.equals geprüft werden:
Code:
  AClass anObject = new AClass(aValue);
  AClass anotherObject = new AClass(aValue);

  // anObject is equal to anotherObject
  Assert(anObject.equals(anotherObject));
  Assert(anotherObject.euqals(anObject));
Zwei Objekte sind genau dann identisch, wenn sie dasselbe Objekt sind
Code:
  AClass anObject = new AClass(aValue);
  AClass anotherObject = anObject;
 
  // anObject same as anotherObject (identity)
  Assert(anObject == anotherObject);
  Assert(anotherObject == anObject);
Während dieses Prinzip in allgemeinen Klassen einsichtig sein sollte und von einem Java-Entwickler beherzigt wird, wenn er die equals-Methode überschreibt, scheint es bei anderen Datentypen etwas merkwürdig. Ursache der Missverständnisse ist die "stümperhafte" Umsatung der OOP in Java: Während Zahlen (int, double, etc.) mit gleichem Wert auch identisch sind aber auch nicht über "normale" Konstruktoren erzeugt werden, ist dies bei Strings nicht so! Es gibt in Java leider kein stringentes Konzept zu Objekt-Werttypen (ohne entsprechende Fabriken...), so dass Deine Anweisung
Code:
String aString = "Foo";
String anotherString = "Foo";
vergleichbar wäre mit
Code:
String aString = new String(aValue);
String anotherString = new String(aValue);
bei der Erzeugung der Art
Code:
String aString = aValue;
String anotherString = aValue;
hingegen währen aValue, aString und anotherString identisch...
Schöne Welt
gruß, choose
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:25 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz