Unterschied zwischen Objekttyp und Referenztyp

8

Ich studierte Polymorphismus von "Head First Java" und kam zu diesem Konzept. Kann mir das bitte mit einem Beispiel erklären?

  

Der Compiler prüft die Klasse des Referenztyps - nicht den Objekttyp.

Was ist der Unterschied zwischen Referenztyp und Objekttyp?

    
Sikander 24.05.2013, 07:48
quelle

2 Antworten

27

Ich glaube nicht, dass ihre Verwendung von "Objekttyp" und "Referenztyp" standardisiert ist, aber hier ist meine Interpretation.

Betrachten Sie diesen Code:

%Vor%

Die Referenz o hat den Typ Object . Das Objekt , auf das es verweist, hat den Typ Integer .

Also wäre der "Referenztyp" Object und der "Objekttyp" wäre Integer .

Was das verwirrend macht, ist, dass es den (standardisierten, offiziellen) Begriff " Referenztyp " gibt, der Typen kapselt, die das können referenziert werden. In Java, das alle Klassen, Enums, Schnittstellen und Arrays enthält. Es schließt nur die primitiven Typen aus ( int , ...).

    
Joachim Sauer 24.05.2013, 07:51
quelle
6

Was mit den Begriffen gemeint ist, ist folgendes:

  • Objekttyp (in Ihrem Buch) = der tatsächliche Laufzeittyp des Referenten
  • Referenztyp (in Ihrem Buch) = der statische Typ der Referenz

Vielleicht werden manche es einfacher finden, mit diesen Begriffen zu verstehen.

    
Bruno Reis 24.05.2013 08:00
quelle

Tags und Links