Lesen Sie nur die Klassen/Methoden
In der Vorbereitung für ein interview, jemand erwähnt zu wissen, wie man eine Klasse/Methode in java nur Lesen. Ich habe dabei ein wenig auf der Suche, aber habe nicht gefunden was wirklich konkret.
Vielleicht ist diese Frage einfacher zu beantworten, als ich es bin macht es aus zu sein, aber was wäre ein Weg, um eine Klasse oder Methode Lesen-nur in java?
InformationsquelleAutor joshft91 | 2013-01-10
Du musst angemeldet sein, um einen Kommentar abzugeben.
Eine Lösung ist die Erstellung
immutable
Objekte, die dazugehören, nur-lese-Unterricht. Man kann eine Klasse definieren, so dass keine Methoden in der Klasse zu änderungen des internen Zustands des Objekts. In einer solchen Klasse, aliasing hat keine Auswirkungen, da Sie Lesen kann, nur der innere Zustand, also wenn viele Teile des Codes Lesen das gleiche Objekt, es ist kein problem.Erstellen immutable-Objekt, nehmen Sie einen Blick auf folgende links:
InformationsquelleAutor Sumit Singh
Dem folgenden code wird sichergestellt, dass Ihre Klasse ist immer NUR zu LESEN, sondern wenn du eine Schleife Loch, bitte hier posten.
InformationsquelleAutor DJ Coder
Den
Read-only
Klasse bedeutet, wir sprechen über "UNVERÄNDERLICH" - Konzept.Das folgende Beispiel zeigt die gleichen:
InformationsquelleAutor DJ Coder
Können Sagen, Sie wollen einem nur-lese-version eines Objekts,
Fall 1: wenn Ihre Klasse enthält Felder, die keine Zeiger auf andere Objekte, z.B.:
in diesem Fall kann man wieder eine Kopie dieser Klasse, schreiben einen Konstruktor akzeptiert die Person, wer will, um ein Person-Objekt wird eine Kopie dieses Objekts, also alle Setter-Operationen nicht-Effekt-das original-Objekt(Strings sind immutable)
Fall 2: im Fall, dass Ihr Objekt enthält einen Zeiger auf ein anderes Objekt oder eine Liste oder Karte
in diesem Fall stellen Klassen implementieren eine Schnittstelle, die hat nur nur-lese-Methoden(Getter) und wohin sind Sie wieder, das Objekt, ändern Sie Sie, um zurückzukehren, diese Schnittstelle, so hat der Klient Zugang zu nur nur-lese-Methoden
zB:
Ich denke, zur Verbesserung zweiten Staat: wir verlängern könnte eine andere Klasse von Person und machen setter-Methoden als leere Methode, die nichts oder wirft eine exception, wenn einer ruft einer der Set-Methoden.
InformationsquelleAutor jayant mishra
Einfache Regel: Don ' T haben keine public-Felder und Keine öffentliche setter-Methoden.
Siehe beispielsweise die folgende Klasse:
ja, einverstanden. aber die Referenz auf das selbe Objekt zeigen immer. in dieser Ansicht ist es endgültig.
final
hat nichts zu tun mit der Unveränderlichkeit. Ihre Klasse ist ein gutes Beispiel, einfach loszuwerden, diefinal
Zeug in deine Antwort.@BrianRoach kommentiert, endgültig in Ihrem Beispiel erzählt dieser Klasse nicht erweitert werden kann, das bedeutet nicht, es kann nicht instanziiert werden.
BrianRoach: indem er es endgültig, wir brauchen keine sorgen über das ändern der Methode, das Verhalten durch überschreiben bestimmte Methode. das ist, warum ich markiert es
final
.InformationsquelleAutor Azodious