Ich kann den Unterschied zwischen einer Wertklasse und einer Enumeration nicht sehen. Es wäre großartig, wenn mir jemand den Unterschied zwischen ihnen und dem Unterschied in ihrem Gebrauch sagen könnte.Java: Was ist der Unterschied (auch in Verwendung) zwischen einer Aufzählung und einer Wertklasse?
Java: Was ist der Unterschied (auch in Verwendung) zwischen einer Aufzählung und einer Wertklasse?
Antwort
Zunächst ist es keine "Wertklasse". Es ist eine "wertbasierte Klasse". Bitte versuchen Sie die richtige Terminologie zu verwenden.
Der Blog-Eintrag "Value-based Classes" von Nicolai Parlog erklärt ziemlich detailliert, worum es bei all diesen Dingen geht. Im Wesentlichen sind sie ein Vorläufer von "Werttypen", die wahrscheinlich in einer zukünftigen Version von Java hinzugefügt werden. (Wahrscheinlich Java 10 - siehe Project Valhalla.)
Der Hauptgrund, dass enum
Typen (im Allgemeinen) keine wertebasierten Klassen sind, ist, dass sie nicht unbedingt unveränderbar sind. Unveränderlichkeit ist eine der wichtigsten Voraussetzungen für eine Klasse, um wertorientiert zu sein. (Es gibt andere Aspekte von enums, die nicht ganz mit den Anforderungen übereinstimmen, aber die spezielle Art der enum-Werte bedeutet wahrscheinlich, dass diese keine Rolle spielen würden.)
Im Moment hat das Merkmal "wertbasierte Klasse" keine direkte Verwendung. Aber es kann in einer zukünftigen Version von Java tun.
Wenn also ein ENUM unveränderlich ist, sollte es sich wie eine wertebasierte Klasse verhalten? – Sander
Ziemlich viel. Vergleichen Sie die Anforderungen und Eigenschaften einer Enum-Klasse. (Du entscheidest ...) –
- 1. Was ist der Unterschied zwischen einer "nonce" und einer "GUID"?
- 2. Was ist der Unterschied zwischen einer HashMap und einer TreeMap?
- 3. Was ist der Unterschied zwischen einer Portnummer und einer Protokollnummer?
- 4. Was ist der Unterschied zwischen einer Subroutine und einer Funktion?
- 5. Was ist der Unterschied zwischen einer Eigenschaft und einer Instanzvariablen?
- 6. Was ist der Unterschied zwischen einer Webreferenz und einer Servicereferenz?
- 7. Was ist der Unterschied zwischen FileReader und FileInputStream in Java?
- 8. Was ist der Unterschied zwischen Interface und @interface in Java?
- 9. Was ist der Unterschied zwischen einer Systemeigenschaft und Umgebungsvariable
- 10. Was ist der Unterschied zwischen einem Bündel und einer Absicht?
- 11. Was ist der Unterschied zwischen der Verwendung eines Prädikats oder einer Funktion als Java-Stream-Filter?
- 12. Was ist der Unterschied zwischen einem Ausdruck und einer Aussage?
- 13. Was ist der Unterschied zwischen + = und = +?
- 14. Was ist der Unterschied zwischen:
- 15. Was ist der Unterschied zwischen '&' und ',' in Java Generics?
- 16. Was ist der Unterschied zwischen `==` und `ist`?
- 17. Was ist der Unterschied zwischen einem Benutzer und einer Rolle?
- 18. Was ist der Unterschied zwischen einer Funktion und * Funktion?
- 19. Was ist der Unterschied zwischen BackgroundImage und Image einer Schaltfläche?
- 20. Was ist der Unterschied zwischen einer Schließung und einem Modul?
- 21. Was ist der Unterschied zwischen der Verwendung externer und # Headerdateien?
- 22. Was ist der Unterschied zwischen einer Steckdose, die offen ist, und einer Steckdose, die angeschlossen ist?
- 23. Was ist der Unterschied zwischen einem URI und einer URL?
- 24. Was ist der Unterschied zwischen einem Algorithmus und einer Funktion?
- 25. Was ist der Unterschied zwischen einem Fehler und einer Ausnahme?
- 26. Was ist der Unterschied zwischen einer Hashtable und Eigenschaften?
- 27. Was ist der Unterschied zwischen Panik und einer Behauptung?
- 28. Was ist der Unterschied zwischen einer Sprache und einem Framework?
- 29. Was ist der Unterschied zwischen einem Adapter und einer Netzwerkschnittstelle?
- 30. Was ist der Unterschied zwischen einer Ansicht und einem Stream?
Was ist Wertklasse – ThiepLV
https://docs.oracle.com/javase/8/docs/api/java/lang/doc-files/ValueBased.html – Sander
Fragen Sie Google, erhalten Sie weitere Informationen. – LowLevel