Verwendung von ":" und "="

JavaFX und die Programmierung

Moderator: wegus

Antworten
Tiefflieger
Beiträge: 8
Registriert: 24.04.2010, 19:51

Verwendung von ":" und "="

Beitrag von Tiefflieger » 26.04.2010, 13:35

Hallo,

weiß hier vielleicht jemand, warum der Doppelpunkt nicht nur zur Angabe von Variablen- und Funktionsrückgabe-typen verwendet wird, sondern auch zum Setzen von Objektvariablen? Warum wird im letzteren Fall nicht auch das Gleichheitszeichen verwendet?

So hat doch der Doppelpunkt mal die eine, mal die andere Bedeutung. Und als Programmierer muß man mal den Doppelpunkt, mal das Gleichheitszeichen verwenden, um Variablen einen Wert zuzuweisen.

Find ich sehr verwirrend, aber ich nehme an, daß die Erschaffer von JavaFX sich etwas dabei gedacht haben. Nur was....?

Danke schonmal für die Erleuchtung :-)
Heute code ich, morgen debug ich, und übermorgen cast ich die Königin auf int

Benutzeravatar
arittner
Beiträge: 3229
Registriert: 05.08.2008, 07:20
Wohnort: Südniedersachsen
Kontaktdaten:

Re: Verwendung von ":" und "="

Beitrag von arittner » 26.04.2010, 13:51

Moin!

Was meinst Du mit dem Doppelpunkt? Das, hier (?):

Code: Alles auswählen

Text {
  content: "Das ist ein Demo";
}
Die geschweiften Klammern rufen den Default-Constructor auf. Die Key:Value Elemente sind im Prinzip Initialzuweisungen im Contructor, im Vergleich zu Java wären das die setKey (Value) Aufrufe. Aber nicht 100% zu vergleichen, weil bei JavaFX Objekten das die direkten Property-Zugriffe sein können.

Oder meinst Du was anderes?

Beste Grüße,
Josch.
JNBB/BeanDev-Blog | Twitter@beandev
Bild
Sun Certified Specialist for NetBeans IDE

Tiefflieger
Beiträge: 8
Registriert: 24.04.2010, 19:51

Re: Verwendung von ":" und "="

Beitrag von Tiefflieger » 26.04.2010, 14:02

Genau das meinte ich, bitte verzeih meine unverständliche Ausdrucksweise.

In Deinem Beispiel rufe ich doch den Constructor auf und weise dem Parameter content den Wert "Das ist eine Demo" zu. Warum wird da nicht das Gleichheitszeichen verwendet?


Vielen Dank für Deine Antwort :-)
Heute code ich, morgen debug ich, und übermorgen cast ich die Königin auf int

Benutzeravatar
arittner
Beiträge: 3229
Registriert: 05.08.2008, 07:20
Wohnort: Südniedersachsen
Kontaktdaten:

Re: Verwendung von ":" und "="

Beitrag von arittner » 26.04.2010, 14:10

Moin!

Weil es in diesem Fall keine "echte" Zuweisung ist. Es kann ein setXXX Methoden Aufruf, eine Injizierung eines privaten Feldes oder die Zuweisung eines public Feldes sein. Außerdem darf man nur so per Doppelpunkt public-init Felder eines JavaFX Objektes füllen (nie später per Gleichheitszeichen ändern).

Aufgrund dieser vielen Besonderheiten und der ausschließlichen Verwendung im deklarativen Constructor { ... } hat man den Doppelpunkt gewählt. Denn außerhalb der geschweiften Klammern ist das nicht möglich. Der Doppelpunkt unterscheidet sich demnach deutlich von der einfachen Zuweisung.

Beste Grüße,
Josch.
JNBB/BeanDev-Blog | Twitter@beandev
Bild
Sun Certified Specialist for NetBeans IDE

Tiefflieger
Beiträge: 8
Registriert: 24.04.2010, 19:51

Re: Verwendung von ":" und "="

Beitrag von Tiefflieger » 26.04.2010, 20:35

Wiederum vielen Dank für Deine Erklärung.

Noch eine Zusatzfrage: Verstehe ich Dich richtig, daß man in einem Konstruktor auch private member eines Objekts setzen darf?
Heute code ich, morgen debug ich, und übermorgen cast ich die Königin auf int

Benutzeravatar
arittner
Beiträge: 3229
Registriert: 05.08.2008, 07:20
Wohnort: Südniedersachsen
Kontaktdaten:

Re: Verwendung von ":" und "="

Beitrag von arittner » 26.04.2010, 21:16

Moin!

Nur wenn set-Methoden da sind, es gibt ein paar Ausnahmen, die aber nur deswegen existieren, weil man Java-Objekte so besser im Zugriff haben wollte. Inzwischen gibt es für diese Problemfälle aber immer JavaFX Objekte.

Beste Grüße,
Josch.
JNBB/BeanDev-Blog | Twitter@beandev
Bild
Sun Certified Specialist for NetBeans IDE

Antworten