Wenn Sie Datensätze in Java bereits kennen, werden Sie feststellen, dass die Verwendung der von Klassen sehr ähnlich ist, es gibt jedoch wichtige Unterschiede, die berücksichtigt werden müssen. In diesem Artikel werden wir die Unterschiede zwischen Datensätzen und Klassen in Java sehen. Wenn Sie Datensätze immer noch nicht kennen, empfehle ich Ihnen, meinen Beitrag „Datensätze in Java: Was sie sind und wie man sie verwendet“ zu lesen.
Ein unveränderliches Objekt ist eines, dessen Attribute nach der Erstellung des Objekts nicht mehr geändert werden können. Im Fall von Datensätzen sind diese unveränderlich, d. h. sobald ein Objekt vom Typ Datensatz erstellt wurde, können seine Attribute nicht mehr geändert werden. Andererseits kann eine Klasse je nach Implementierung unveränderlich sein oder auch nicht. Dieser Teil stellt die Integrität der Daten sicher und verhindert, dass sie versehentlich geändert werden.
Klassen werden im Allgemeinen einfach geschrieben, um Daten zu speichern, beispielsweise die aus einer Datenbankabfrage oder die Daten aus einem Formular. In vielen Fällen sind diese Daten unveränderlich, da die Gültigkeit der Daten ohne Verwendung einer Synchronisierung sichergestellt werden muss. Um dies zu erreichen, wird eine Klasse mit den folgenden Elementen geschrieben:
Wenn Sie beispielsweise eine Personenklasse mit den beiden Attributen „Name“ und „Nachname“ haben, könnten Sie diese wie folgt schreiben:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 |
|
Dies ist eine Lösung für die Aufgabe, aber es ist eine Menge Code für das, was tatsächlich benötigt wird. Wenn die Klasse mehr Attribute hätte, würde das Schreiben des Codes noch länger dauern, selbst wenn dies mit Hilfe einer IDE oder eines Plugins wie GitHub Copilot erfolgen würde. Eine bessere Lösung wäre, unsere Klasse als Datenklasse zu deklarieren, also als eine Klasse, die nur Daten speichert und kein bestimmtes Verhalten haben muss, und hier kommen Datensätze ins Spiel.
Auf diese Weise könnte die Person-Klasse wie folgt als Datensatz umgeschrieben werden:
1 |
|
Dadurch werden automatisch die Methoden „equals“, „hashCode“ und „toString“ sowie die Getter-Methoden für jedes der Attribute generiert.
Wenn eine unveränderliche Datenstruktur zum Speichern von Daten erforderlich ist und keine Änderungen an den Attributen vorgenommen werden müssen (es wird lediglich als Objekt zum Übertragen von Informationen betrachtet). Wenn Sie hingegen eine allgemeinere Struktur mit eindeutiger Logik und spezifischen Methoden, einen Ansatz für ein objektorientiertes Paradigma, die Anwendung von Entwurfsmustern oder die Arbeit mit JPA oder Hibernate usw. benötigen, sollten Sie eine Klasse verwenden.
Consideremos el siguiente ejemplo, se tienen dos records Product con los atributos name y price, y Cart con un solo atributo products del tipo ArrayList
1 2 3 |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
|
La cuestión en este caso es que cada uno de los record es inmutable por sí mismo, pero en el caso del record Cart al tener un atributo del tipo ArrayList<> y dado que por naturaleza un ArrayList es mutable, se puede modificar el contenido de la lista una vez que se crea una instancia del record Cart.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
|
El código anterior compila sin problemas, ya que solo se está modificando el contenido de la lista, pero no se está modificando el atributo products en sí. Este solo es un ejemplo para un caso particular, que probablemente no sea necesario, pero es bueno saber que esto se puede realizar.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!