Schaffung Was wird die Wirkung sein, wenn wir FIELDS geben kapseln und was wird die Wirkung sein, wenn wir die kapseln fileds nicht gebenEncapsulating Felder während Klassen in Netbeans
Antwort
Der Punkt der Einkapselung ist damit Sie einen expliziten Algorithmus für die Aktualisierung einer Variablen bereitstellen können. Zum Beispiel erlauben, wenn Sie nur andere Klassen eine Variable zu aktualisieren direkt:
var1 = 123;
... dann sind Sie mit den anderen Klassen in der Lage zu stecken nur Variablen Ihre Klasse zu aktualisieren, ohne die Kontrolle über welchem Wert zugewiesen wird oder wenn irgendwelche anderen Variablen aktualisiert werden sollten, als Folge davon, dass diese Variable aktualisiert wird.
Aber wenn Sie Ihre Variablen deklarieren private
und bieten zu get
und set
Ihre Variablen Werte ein public
Accessor zu sein, dann haben Sie die volle Kontrolle darüber, wie diese Variablen aktualisiert werden.
Zum Beispiel könnten Sie zwei miteinander verbundene Variablen haben. Wenn eine Variable aktualisiert wird, sollte auch die andere aktualisiert werden. Vielleicht haben Sie zwei Variablen, var1
und var2
(beide natürlich private
deklariert, so dass keine andere Klasse direkt darauf zugreifen kann). Vielleicht sollte var2
immer eine Summe von 5 mehr als der Wert von var1
sein. Also, wenn var
1 aktualisiert wird, unter Verwendung einer setter
(Kapselung) Sie diese Anforderung erzwingen können:
void setVar1(int val) {
var1 = val;
var2 = val + 5;
}
und die inverse, Einstellung field2
subtrahiert 5 von field1
:
void setVar2(int val) {
var2 = val;
var1 = val - 5;
}
Sie auch die Werte einschränken könnten dieser Variablen ist ein bestimmter Bereich von Werten, wie von 10 bis 200 (aus welchem Grund auch immer). Sie könnten den Wert prüfen, der an den Setter übergeben wird, und die Ausnahme IllegalArgumentException
mit einer Ausnahmebedingungsnachricht auslösen, die erläutert, welche Regel verletzt wurde: Value of var1 must be >= 5 <= 200
.
Dies ist nur ein einfaches Beispiel dafür, warum Verkapselung ist gut und sollte geübt werden, wenn Java-Code zu schreiben (oder jede OOP Art Sprache) und warum die meisten IDEs wird die Erzeugung dieser Getter und Setter für Sie automatisieren.
Sie können learn more about encapsulation here.
Warum versuchst du es nicht? –