Grundsätzliche Fragen zu Objekten

C

C_A

Gast
Hallo,

ich habe zwei Fragen:

1. Wenn ich ein Objekt habe - meinetwegen ein Objekt der Klasse Auto - , kann ich dieses Objekt an Methoden übergeben, dieses Objekt kann das Ergebnis eines Methodenaufrufes sein, usw. Ich kann mit Objekten genauso verfahren wie mit Datentypen. Eine Instanz der Klasse String ist ja auch nur ein Objekt (sehr blöd formuliert ;-) ), genau wie eine Instanz der Klasse Auto. Dennoch werden Strings als komplexe Datentypen oder Referenzdatentypen bezeichnet - ich habe aber noch nie gelesen, dass Auto-Objekte als komplexer Datentyp bezeichnet werden. Warum nicht? Warum wird ein Objekt der Klasse String als Datentyp bezeichnet, ein Objekt der Klasse Auto aber nicht?

2. Ich habe folgenden Code-Ausschnitt:
Java:
public class Test
{ 
    public Test()
    {
        new Fenster(new ControlClass()).setVisible(true);
    }

}

Hier lege ich zwei Objekte an - ein Controller-Objekt und ein Fenster-Objekt. Auf das Objekt der Control-Klasse wird spätestens im Kontruktor des Fenster-Objektes referenziert. Wer referenziert auf Objekt der Fenster-Klasse? Da keine Variable vom Typ Fenster existiert, würde ich vermuten, dass niemand auf das Fenster-objekt referenziert. Folge wäre doch: sobald der GarbageCollector wieder aktiv wird, wird das Fenster-Objekt einkassiert. Wo ist mein Denkfehler?

Vielen Dank für Eure Antworten und schönen Abend!

Florian
 

Murray

Top Contributor
Warum wird ein Objekt der Klasse String als Datentyp bezeichnet, ein Objekt der Klasse Auto aber nicht?
Auch ein Objekt der Klasse String ( also eine String-Instanz) wird nicht als Datentyp bezeichnet; der Datentyp ist String (eben der Typ der Instanz) . Und tatsächlich ist Auto genau so ein Datentyp wir String.

Ich habe folgenden Code-Ausschnitt:
Java:
public class Test
{ 
    public Test()
    {
        new Fenster(new ControlClass()).setVisible(true);
    }

}

Hier lege ich zwei Objekte an - ein Controller-Objekt und ein Fenster-Objekt. Auf das Objekt der Control-Klasse wird spätestens im Kontruktor des Fenster-Objektes referenziert. Wer referenziert auf Objekt der Fenster-Klasse? Da keine Variable vom Typ Fenster existiert, würde ich vermuten, dass niemand auf das Fenster-objekt referenziert. Folge wäre doch: sobald der GarbageCollector wieder aktiv wird, wird das Fenster-Objekt einkassiert. Wo ist mein Denkfehler?
Nirgends - wenn im Fenster-Konstuktor nicht irgendwo dafür gesorgt wird, dass irgendeine Referenz auf das Objekt entsteht, dann wird es bei der nächsten Gelegenheit collected.
 

Wortraum

Bekanntes Mitglied
> Warum wird ein Objekt der Klasse String als Datentyp bezeichnet, ein
> Objekt der Klasse Auto aber nicht?

Eine Klasse (nicht Objekt!) ist ein Datentyp, und daher ist String ebenso ein Datentyp wie Auto. Daß Du es bei Auto noch nicht gehört hast, liegt dann wohl daran, daß String gerne zuerst und, da es in der Standardbiliothek ist, häufiger erwähnt wird.

> Folge wäre doch: sobald der GarbageCollector wieder aktiv wird,
> wird das Fenster-Objekt einkassiert. Wo ist mein Denkfehler?

Nirgends, denn genau so ist es. Natürlich können vorher im Konstruktor noch irgendwelche „wilden“ Sachen passieren; danach wird das Objekt eingetütet und irgendwann vom Müllwagen abgeholt.
 

Marco13

Top Contributor
Davon ausgehend, dass es bei dem "Fenster" um ein echtes Fenster geht ("...extends JFrame" oder so) dann bleibt sozusagen eine "unsichtbare" Referenz erhalten, die so lange lebt, bis das Fenster geschlossen wird (so lange lebt auch der EDT, und so lange kann man sich das Fenster auch noch von der Frame klasse abholen)
 
C

C_A

Gast
@Marco: Ja, so hatte ich das gedacht: class Fenster extends JFrame

es deckt sich mit meiner Erfahrung, dass das Fenster bestehen bleibt. Erfahrung und erwartetes Verhalten passen nicht zusammen. Das mit den "unsichtbaren Referenzen" klingt plausibel - ich finde es allerdings nicht dokumentiert.
 

Marco13

Top Contributor
Naja, das mit der "unsichtbaren Referenz" war eher sinngemäß zu verstehen: Natürlich kann ein Fenster nicht garbage collected werden, solange es noch sichtbar ist. Und demnach existiert irendwo (in den Tiefen von Swing) auch noch irgendeine Form von Referenz darauf - im Zweifelsfall eben die, die bei Frame (Java 2 Platform SE v1.4.2) zurückgegeben wird.

Sobald man ein Fenster aufmacht, läuft ja der "Event Dispatch Thread", der z.B. Mausklicks verarbeitet. Und der muss ja wissen, worauf Mausklicks gemacht wurden. Da sind einige ziemlich komplizierte Mechanismen im Hintergrund, bei denen ich mir nicht anmaßen würde, zu behaupten, Ahnung davon zu haben - aber ich mir doch anmaßen würde, zu behaupten, dass sie für den Entwickler (erfreulicherweise) meistens ziemlich unbedeutend sind :D
 

Wortraum

Bekanntes Mitglied
Da sind einige ziemlich komplizierte Mechanismen im Hintergrund, bei denen ich mir nicht anmaßen würde, zu behaupten, Ahnung davon zu haben - aber ich mir doch anmaßen würde, zu behaupten, dass sie für den Entwickler (erfreulicherweise) meistens ziemlich unbedeutend sind :D
Das fällt unter die „wilden“ Sachen, die ich meinte. Irgendwo muß es ja zumindest mit dem EDT und einem WindowListener verzwirbelt, verdrahtet und geklöppelt sein. :bahnhof:
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
DStrohma Grundsätzliche Fragen zu Drag & Drop Java Basics - Anfänger-Themen 1
M Grundsätzliche Fragen Java Basics - Anfänger-Themen 3
J Grundsätzliche Fragen zur Anwendung von Applets Java Basics - Anfänger-Themen 12
J Grundsätzliche Frage zu return Types in Methoden Java Basics - Anfänger-Themen 6
S Grundsätzliche Programmstruktur planen Java Basics - Anfänger-Themen 5
B Grundsätzliche Klassen-Struktur/Stil Java Basics - Anfänger-Themen 12
F Grundsätzliche Frage zu GUI's. Java Basics - Anfänger-Themen 5
W Gui - Grundsätzliche Programmierung Java Basics - Anfänger-Themen 11
Zrebna Fragen zu einem Klassendiagramm Java Basics - Anfänger-Themen 8
H Fragen zu Wrapperklassen Java Basics - Anfänger-Themen 29
S Best Practice Fragen zu Projektstruktur einer Datenbank-Abfrage-App (MVC) Java Basics - Anfänger-Themen 13
A Bei VierGewinnt fragen ob man gegen CPU oder Menschen spielen will. Java Basics - Anfänger-Themen 7
A Bei VierGewinnt vorher fragen, ob man gegen den Computer spielen möchte oder gegeneinander. Java Basics - Anfänger-Themen 1
A Bei VierGewinnt fragen, ob man gegen den Computer spielen möchte oder gegeneinander Java Basics - Anfänger-Themen 1
sserio Wie kann man nach einer Klasse fragen? Java Basics - Anfänger-Themen 12
G Fragen zu Kompelierfehler in Aufgabe. Java Basics - Anfänger-Themen 25
E Bäume/ allgemeine Fragen Java Basics - Anfänger-Themen 21
O Falsche Antworten zu Fragen Java Basics - Anfänger-Themen 4
S Diverse Fragen vor Schulaufgabe ;) Java Basics - Anfänger-Themen 4
S Fragen zu Ausgabe double und float Java Basics - Anfänger-Themen 3
B fragen zu Aufbau eines UML-Klassendiagramm Java Basics - Anfänger-Themen 1
C 3 Fragen rund um Klassenattribute Java Basics - Anfänger-Themen 8
L Erste Schritte Log4J Fragen Java Basics - Anfänger-Themen 5
NeoLexx Fragen zu diversen Elementen der Javabibliothek Java Basics - Anfänger-Themen 5
D Budget Manager fragen zur Umsetzung Java Basics - Anfänger-Themen 9
N Fragen zur Datenspeicherung Java Basics - Anfänger-Themen 45
T Java Anfänger mit konkreten Fragen Java Basics - Anfänger-Themen 2
CT9288 Fragen zu Java Java Basics - Anfänger-Themen 16
W Fragen zu Generics Java Basics - Anfänger-Themen 14
T ObjectInput/OutputStream Fragen zur Funktionsweise Java Basics - Anfänger-Themen 3
J Fragen zu einer Methode Java Basics - Anfänger-Themen 3
J Fragen zum Code aus dem Buch "Schrödinger programmiert Java 2.te Ausgabe" Java Basics - Anfänger-Themen 6
Z Fragen zu Exception (Throws/throw) Java Basics - Anfänger-Themen 7
J Fragen zu Input/Output Java Basics - Anfänger-Themen 3
J Erste Schritte Oracle Tutorials zu Java 8 - Fragen dazu Java Basics - Anfänger-Themen 1
H Java Quereinsteiger Roadmap und Fragen Java Basics - Anfänger-Themen 29
H fragen Java Basics - Anfänger-Themen 15
M Samelsarium Grundlegender Fragen 2 Java Basics - Anfänger-Themen 9
M Sammelsarium an Grundlagen Grundlagen Fragen Java Basics - Anfänger-Themen 11
B Java ist / wird kostenpflichtig. Ein paar Fragen Java Basics - Anfänger-Themen 1
J Fragen zu synrchonized und kritischen Abschnitten Java Basics - Anfänger-Themen 5
S Fragen zu einem Rechentrainer Java Basics - Anfänger-Themen 2
B Java Vererbung Fragen (zu Code Beispiel) Java Basics - Anfänger-Themen 3
J Wo kann man Fragen zu ireport stellen. Java Basics - Anfänger-Themen 0
M Fragen zum Anlegen und Benutzen von Listen Java Basics - Anfänger-Themen 9
G Ein paar Anfänger Fragen zu StdDraw Java Basics - Anfänger-Themen 4
D Fragen zur Klassen Java Basics - Anfänger-Themen 4
Aprendiendo Zwei Fragen und ein geerbtes "protected"-Attribut Java Basics - Anfänger-Themen 2
J Interface Fragen bezüglich "Sauberkeit" von Code Java Basics - Anfänger-Themen 5
D Objekte-Fragen Java Basics - Anfänger-Themen 1
V Erste Schritte Habe Fragen zu der For und While Schleife als auch Inkrement und Dekrement Java Basics - Anfänger-Themen 4
D Anfänger-Fragen(Parameter einer Methode) Java Basics - Anfänger-Themen 7
K Zwei Fragen zu Graphics/Graphics2D Java Basics - Anfänger-Themen 5
R Fragen über den Konstruktor Java Basics - Anfänger-Themen 0
Azazel Ein paar Fragen zu Methodenaufrufen(java.awt) Java Basics - Anfänger-Themen 2
S Erste Schritte Fragen zur For-Schleife Java Basics - Anfänger-Themen 9
C Interface Fragen zum Interface Java Basics - Anfänger-Themen 7
GreenTeaYT Exception und zur OOP fragen? Java Basics - Anfänger-Themen 3
C Fragen zum Spigot Plugin (1.8) Java Basics - Anfänger-Themen 6
J Fragen zu Exceptions Java Basics - Anfänger-Themen 24
N Quiz- Fragen zufällig anzeigen lassen Java Basics - Anfänger-Themen 7
J Verschieden Fragen über Java Programmierung Java Basics - Anfänger-Themen 3
L Viele Fragen zu den Grundlagen Java Basics - Anfänger-Themen 5
B Fragen zu ZIP-File Java Basics - Anfänger-Themen 9
L fragen zu arrays Java Basics - Anfänger-Themen 8
L Fragen zu selbstgeschriebenem Programm Java Basics - Anfänger-Themen 5
M Fragen zum Auslesen von HTML Seiten Java Basics - Anfänger-Themen 5
J Threading-Aufgabe. Totale Noob Fragen, aber bitte trotzdem beantworten ;) Java Basics - Anfänger-Themen 7
S Java Fragen Konstruktor & Statische Methoden Java Basics - Anfänger-Themen 4
K Erste Schritte Frage Antwort Spiel - Fragen zur Planung Java Basics - Anfänger-Themen 2
C Java Applet Fragen: Serialisierung, Excel import Java Basics - Anfänger-Themen 2
Anfänger2011 2 kleine Fragen zu ArrayListen Java Basics - Anfänger-Themen 5
S Fragen zu Ausdrücken&Bedingungen Java Basics - Anfänger-Themen 5
A 2 kurze Anfänger fragen Java Basics - Anfänger-Themen 6
H grundlegende Fragen Java Basics - Anfänger-Themen 3
V Interface ich schäme mich das zu fragen, aber ich schaff nicht ein Text zu zentrieren :( [javaFX] Java Basics - Anfänger-Themen 6
N Programm: Fragen beantworten Java Basics - Anfänger-Themen 6
C Anfänger Anfänger Fragen Java Basics - Anfänger-Themen 8
Z Compiler-Fehler LinkedList Fragen Java Basics - Anfänger-Themen 4
D Rekursion Allgemeine Fragen Java Basics - Anfänger-Themen 2
D [Fragen] zu Methoden Java Basics - Anfänger-Themen 2
S Fragen zur Implementierung eines Binärbaums Java Basics - Anfänger-Themen 3
T Ein paar Fragen zu OOP und Java. Java Basics - Anfänger-Themen 16
J Allgemeine Fragen zur GUI Java Basics - Anfänger-Themen 1
johnnydoe Erste Schritte Erster Blick - erste Fragen Java Basics - Anfänger-Themen 11
N Klassen fragen zur getter und setter methode Java Basics - Anfänger-Themen 11
S 3 Fragen, Verzeichnis, GridLayout psoitionieren, Werte für JSpinner Java Basics - Anfänger-Themen 2
T Fragen zu Set / Relationen verknüpfen Java Basics - Anfänger-Themen 4
S 2 Fragen Java Basics - Anfänger-Themen 4
S Hallo und Fragen zu Arbeitsverzeichnis und Menü Java Basics - Anfänger-Themen 8
N Java Fragen... Java Basics - Anfänger-Themen 10
F ExecutorService Fragen! Java Basics - Anfänger-Themen 2
O HashMap Fragen Java Basics - Anfänger-Themen 8
C Fragen zu Arrays Java Basics - Anfänger-Themen 19
T viele "kleine" Fragen... Java Basics - Anfänger-Themen 3
S Fragen zur Implementierung eines Adressbuches Java Basics - Anfänger-Themen 20
S Fragen zu Arrays Java Basics - Anfänger-Themen 6
K Diverse Fragen zum Fehlerlogging Java Basics - Anfänger-Themen 9
N StringReader - Fragen Java Basics - Anfänger-Themen 8
C Einige Fragen zu Frames Java Basics - Anfänger-Themen 7

Ähnliche Java Themen


Oben