Machen String private oder public in Java
Strings in Java sind, sagte unveränderlich.
Also, wenn ich sage
String one = "myString";
und
String two = "myString";
Intern sowohl die Objekte werden mit der gleichen buchstäblichen.
Nun, was puzzlles mich ist, warum sollte ich meine Strings private in verschiedenen Klassen, wenn intern werden Sie verweisen auf den gleichen string-literal.
Ist es nur so, dass externe Elemente(wie Klassen-oder Objekt) wird nicht wissen, was die Mitglieder der Klasse in sich trägt?
Gut, da Sie unveränderlich sind, es spielt keine Rolle, wenn zwei Mitglieder von zwei verschiedenen Objekten auf das gleiche Objekt zeigen. Aber um zu verhindern, dass jemand verändert den internen Zustand des Objekts durch Neuzuweisen einer member-variable, das ist, warum Sie machen es privat.
InformationsquelleAutor me_digvijay | 2013-10-15
Du musst angemeldet sein, um einen Kommentar abzugeben.
Sichtbarkeit und Zugriffsrechte existiert eigentlich nur während der Kompilierung, um zu überprüfen, ob Sie in der Lage sind, dieses oder jenes zu tun, während der Laufzeit in der Regel können Sie rufen private Methoden oder ändern unveränderliche Daten über verschiedene hacks
Weiterer Punkt: diese strings sind unveränderlich, Sie können also Ihren Wert ändern, über standard-Methoden, so können Sie den gleichen Platz im Speicher und Ihre egal, welche Klasse Sie verwendet
InformationsquelleAutor Iłya Bursov
Für
String
Referenzen, nicht wirklich etwas ändern. Es ist nur eine Frage der Konvention und der Kapselung. Wenn die anderen Felder sind privat und haben Getter und setter, also warum nicht auch IhreString
Felder (es sei denn, es soll verborgen sein)?getter
undsetter
dann auch ändern kann ich den Verweis auf etwas anderes, so was ist die Bedeutung wenn private. Und da intern verwenden Sie die gleichen string-literal, warum soll ich Sie privat?Yadiv Sie sind die Entwickler, so Sie nicht unbedingt implementieren müssen, um eine
setter
Methode, wenn Sie nicht wollen. Sie können es nur mit einemget
Methode.getter
undsetters
sind obligatorisch in Paaren.InformationsquelleAutor Sotirios Delimanolis
Weil der client könnte dann legen Sie Ihre internen Mitglieder um etwas ganz anderes. Es scheint, dass Sie verwirrend erscheinen, eine
String
's Unveränderbarkeit mit der Referenz wirdfinal
.Stellen Sie sich vor Sie haben diese Klasse:
So wie Java-compiler-Experten, wir wissen intern
first
undsecond
auf das gleiche Objekt beziehen. Cool.Nun, wenn ich
MyClass
:Ist das schlecht. Wie wirklich schlecht.
Deklarieren
String
Mitgliederprivate
hat nichts zu tun mit dem Verlust der Vorteil der compiler-Effizienz. Es wird über die Klasse Zusammenfassung Ihrer Umsetzung, so dass Ihre Kunden sind nicht eng gekoppelt, sodass die Klasse nicht haben, um sorgen über seltsame Verhalten verursacht durch etwas unverantwortlich, die client hat.Die Tatsache, dass das Objekt "Test" ist unveränderlich, bedeutet nicht, dass ich nicht ändern kann
first
odersecond
auf etwas anderes zeigen.Hoffe, das hilft.
InformationsquelleAutor Vidya
Mithilfe von privaten für die String-Referenz blockiert den direkten Zugang vom äußeren Objekte. Aber setter und Getter Zugriff/ändern der string-variable (wenn Sie). Aber in der Set-Methode können Sie überprüfen, die Parameter, bevor Sie den Wert ändern. Und das ist der wichtigste Vorteil der Verwendung der setter-Methode.
dann, angenommen, Sie haben zwei gleich private string Variablen in zwei Objekte. Dann werden diese beiden Referenzen zeigen sollte, zu einer Stelle in den string-pool. Aber, dass Sie nicht klingt, Sie können auf beide Saiten von einem Objekt (Weil immer die Referenz-variable, eingeschränkt durch private-Modifizierer).
InformationsquelleAutor Madhujith