Instantiierung

Status
Nicht offen für weitere Antworten.
D

Destiny1985

Gast
Geht um einen Abschnitt aus meinem Buch. Bin gerade beim Thema Klassen. Ich schreib mal gerade den betreffenden Teil:


In der main-Methode unserer Programme wollen wir nun mit dieser Klasse arbeiten. Zuerst wollen wir aus dieser Klasse ein einzelnes Objekt erzeugen - man spricht hier von einer Instantiierung. Hierbei stellen wir fest, dass sich dieser Vorgang ähnlich wie bei Feldern (siehe 6.1.2) mit Hilfe des new-Operators bewerkstelligen lässt

Syntaxregel: <INSTANZNAME> = new <KLASSENNAME> ();

Wenn wir in unserem Falle also eine Variable names adr erzeugen und dieser eine Instanz der Klasse Adresse zuweisen wollen, gelingt uns dies durch die folgenden Zeilen:

Adresse adr;
adr = new Adresse();

usw usw....

also mir ist folgendes unklar: Der Sytnaxregel nach verstehe ich das

Code:
adr = new Adresse();

aber was bedeutet die Zeile

Code:
Adresse adr;

Stehe ich jetzt auf der Leitung ?? Diese Zeile wird doch gar nicht erwähnt ?!


mfg
 
S

stev.glasow

Gast
De zeile gibt an das adr vom Typ (Klasse) Adresse ist. Klor?
 
D

Destiny1985

Gast
stevg hat gesagt.:
De zeile gibt an das adr vom Typ (Klasse) Adresse ist. Klor?

Net richtig ehrlich gesagt ?!

Passiert das nicht in der Zeile

Code:
 adr = new Adresse();
 
S

stev.glasow

Gast
Nein, dort legst du ein neues object an und weißt es der Variable zu.

sagenwir du hast eine Variable adr und du würdest hiermit adr = new Adresse(); sagen von welchen typ die Variable ist
dann wäre ja folgnedes möglich:

adr = new Adresse();
...
adr = new Person();
...
adr = new Adresse();

so das adr ja den Typ ändern müsste von Adresse auf Person und dann wieder auf Adresse, dann wäre da Kaos perfekt, also sage ich imh vorher mit Adresse adr; von welchem typ adr ist. so das solche schweinereien adr = new Person();
dann nicht mehr möglich sind da adr ja nur noch werte vom Typ Adresse annehmen kann.
Ist ziehmlich blöd erklärt, wenn's noch nicht klar sag's ich hab Zeit. :)
 

Bleiglanz

Gesperrter Benutzer
Code:
 Adresse adr;
bereitet eine Variable vor, die eine Referenz (= ein Handle, ein "Zeiger") auf eine Objektinstanz (Klasse Adresse) aufnehmen kann

wenn das ein Member ist, wirds gleich mit null initialisiert

wenn das eine lokale Variable ist, stellt der Compiler durch Code-Analyse sicher, dass adr irgendwann später wirklich ein Wert zugewiesen wird
 
D

Destiny1985

Gast
okok muss ich mal drüber philosophieren... ;)

thx 4 erklärungen
 
Status
Nicht offen für weitere Antworten.

Ähnliche Java Themen


Oben