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.
- 1. Javascript-Klassen in Netbeans
- 2. Statische Felder in inneren Klassen
- 3. Encapsulating Wiederholungen in `mit` Block
- 4. Encapsulating SQL in einem named_scope
- 5. Encapsulating `sort` Interface in Golang
- 6. Klassen des Standardpakets in NetBeans hinzufügen
- 7. Encapsulating und vererben Methoden
- 8. Encapsulating Nested XML
- 9. Encapsulating Methoden hinter Getters
- 10. Copy Felder zwischen ähnlichen Klassen in Java
- 11. Autocomplete für PHP-Objekte mit Klassen in PDT/Netbeans?
- 12. So generieren Sie Klassendiagramm aus vorhandenen Klassen in Netbeans IDE
- 13. Encapsulating der Service-Schicht von Passwort Encoder
- 14. MS Access zu viele Felder während UPDATE
- 15. Eine Liste von Funktionen in Haskell in einem einzigen Encapsulating
- 16. Felder während der Aktualisierung von mongodb erhalten
- 17. Schaltfläche deaktiviert, während erforderliche Felder leer sind
- 18. generische Klassen mit gemeinsamen statischen Felder in C#
- 19. Organisation Importe in NetBeans
- 20. Netbeans weigert sich, bekannte Klassen für Importe automatisch anzugeben
- 21. Test PHP-Funktionen (nicht Klassen) mit Netbeans und PHPUnit
- 22. Klassen während der JVM-Laufzeit neu laden
- 23. Encapsulating Postgres Query in Sicht macht es extrem langsam
- 24. Lernprogramm: XML in Netbeans IDE
- 25. Echo mehrere Felder außerhalb während Anweisung in PHP mysql
- 26. Baumansicht Felder werden nicht aktualisiert, während Onchange in Odoo-8
- 27. serialize Form, während das Eingangsname sind in Array jquery Felder
- 28. Wie den generierten Code für eine Schnittstelle in Netbeans in verschiedene Klassen zu trennen?
- 29. Netbeans 6.5: Ändern einer Umgebungsvariablen während des Laufs/Debug/Test?
- 30. Broken Pipe während Git Push zu OpenShift von Netbeans
Warum versuchst du es nicht? –