Sind Java-Klassen Objekte?

7

Ich habe vorher gelesen, dass Java-Klassen Instanzen der Klasse Class sind. Aber jetzt sagt mein Informatiklehrer, dass Java-Klassen keine Objekte sind.

Was ist wahr?

    
itdoesntwork 16.08.2012, 15:09
quelle

4 Antworten

15

Eine Java-Klasse ist kein Objekt.

Jede Java-Klasse hat jedoch eine Instanz der Klasse Class , die sie beschreibt.
Diese Instanzen sind Objekte.

    
SLaks 16.08.2012, 15:11
quelle
3

Java-Klassen sind keine Objekte, sie sind eine Abstraktion.

Jede Java-Klasse hat jedoch eine entsprechende Instanz der Klasse java.lang.Class , die sie repräsentiert. Diese Repräsentation ist ein Objekt. Aber Sie sollten die Darstellung nicht mit der tatsächlichen Sache verwechseln.

Die Beziehung ist ähnlich wie zwischen Musik und Noten. Obwohl die geschriebene Notation Musik darstellt, ist sie selbst nicht die Musik.

Der Unterschied spielt in der Praxis jedoch nur selten eine Rolle, solange Sie wissen, was Sie mit java.lang.Class objects tun können und was nicht.

    
biziclop 16.08.2012 15:15
quelle
1

Die Klasse (Ihr Code oder sogar der kompilierte Code in Ihren .class-Dateien) sind keine Objekte. Sie haben kein Objekt, bis Sie diese Klasse instanziiert haben.

Zum Beispiel ist Java.lang.String eine Klasse. String s = new String("Hello world"); definiert ein Objekt vom Typ String. Das mag die Unterscheidung sein, die dein Professor macht.

    
Babak Naffas 16.08.2012 15:14
quelle
0

Jede Java-Klasse, auch java.lang.Class stammt von java.lang.Object ab.

BEARBEITEN:

Der Wortlaut ist ein wenig mehrdeutig. Die Instanzen von Java-Klassen sind definitiv Objekte. Klassen für sich selbst können nicht wirklich als Objekte betrachtet werden, nun, da nichts außer der Klasse "Blueprint" im Gedächtnis existiert.

    
jn1kk 16.08.2012 15:10
quelle

Tags und Links