Dies ist eine statische Kopie unseres alten Forums. Es sind keine Interaktionen möglich.
This is a static copy of our old forum. Interactions are not possible.

Neo

Erfahrener Schreiberling

  • "Neo" is male
  • "Neo" started this thread

Posts: 322

Date of registration: Jul 24th 2005

Location: Hannover

Occupation: Informatik

1

Tuesday, June 5th 2007, 8:16pm

Polymorphismus in Java

Ein Auszug aus dem Java Buch: (www.javabuch.de):

Quoted


* Zuerst werden die Konstruktoren der Vaterklassen aufgerufen und so deren Membervariablen initialisiert.
* Dann werden die Initialisierer und initialisierenden Zuweisungen der eigenen Klasse aufgerufen.
* Schließlich wird der Rumpf des eigenen Konstruktors ausgeführt.


Was sind Initialisierer? Sind "Initialisierer" einfach Setter Methoden?

Kaos

Lesen, denken, flamen!

  • "Kaos" is male

Posts: 973

Date of registration: Oct 16th 2005

Location: Han. / Vahrenwald Sinnvolle Beiträge: 7

2

Tuesday, June 5th 2007, 9:16pm

Guckst du mal da:

http://dbs.cs.uni-duesseldorf.de/lehre/d…vel3id008003004

Unter statische Initialisierer findest du glaube ich das, was du suchst.

Quoted

Man findet immer dort besonders viel Chaos, wo man nach Ordnung sucht. Das Chaos besiegt die Ordnung, weil es besser organisiert ist.

denial

Erfahrener Schreiberling

  • "denial" is male

Posts: 394

Date of registration: Feb 18th 2003

Location: Göttingen

Occupation: Linux Coder (ex Mathe SR Inf Student)

3

Tuesday, June 5th 2007, 9:42pm

Ich glaube eher das hier ist gemeint, also nicht static.

Neo

Erfahrener Schreiberling

  • "Neo" is male
  • "Neo" started this thread

Posts: 322

Date of registration: Jul 24th 2005

Location: Hannover

Occupation: Informatik

4

Tuesday, June 5th 2007, 11:18pm

Danke für die Antworten. Weiß zufällig jemand, ob der Compiler automatisch erkennt, ob
ein im Konstruktor aufgerufener Setter eine Instanzvariable setzen will? Weil, es kann ja sein,
dass eine Methode im Konstuktor aufgerufen wird, die keine Instanzvariablen setzen will.

denial

Erfahrener Schreiberling

  • "denial" is male

Posts: 394

Date of registration: Feb 18th 2003

Location: Göttingen

Occupation: Linux Coder (ex Mathe SR Inf Student)

5

Tuesday, June 5th 2007, 11:31pm

Ich verstehe deine Frage nicht ganz. Warum sollte sich der Compiler die Mühe machen die vom Rumpf des Konstruktors aufgerufenen Methoden zu analysieren?
Was würde eine solche Analyse am generierten Bytecode ändern?

olexd

Praktikant

Posts: 6

Date of registration: Oct 15th 2006

6

Wednesday, June 6th 2007, 12:11am

Schon vor erste Aussage in der Rumpf von jedem Konstruktor haben alle Instanzvariable den Standard-Nullwert. Falls Instanzvariable ein Literal ist - 0, falls ein Objekt (auch arrays) - null. D.h. egal was du weiter im Konstruktorrumpf machst, jede Instanzvariable endlich entweder 0 (null) ist oder bei dir gesetzte Wert hat.

AnyKey

Erfahrener Schreiberling

Posts: 451

Date of registration: Dec 11th 2001

Location: H-Town

Occupation: Student

7

Wednesday, June 6th 2007, 9:46pm

RE: Polymorphismus in Java

Das Javabuch von Guido Krüger ist cool, das hat sogar ein search-applet :) wann man da "initialisierer" eingibt, kommt man zu Kapitel 8.3.4: Statische Initialisierer

Quoted

Original aus dem Javabuch
Ein statischer Initialisierer wird als parameterlose Methode mit dem Namen static definiert:

001 class Test
002 {
003 static int i;
004 static int j;
005
006 static
007 {
008 i = 5;
009 j = 3 * i;
010 }
011 }

Listing 8.10: Definition eines statischen Initialisierers


have fun :D

"Der Mensch braucht Schubladen." -- Any Key