[JAVA] Verkapselung

Zweck der Kapsel

Wenn Sie das Feld nicht verfügbar machen, entschuldigen wir uns für den Feldwert, der nicht geändert werden sollte, damit er nicht geändert werden kann.

Informationen zur Zugriffskontrolle

Zugriffskontrollebene

Name Wie schreibe ich in das Programm Zugriffsbereich
private private Nur in der gleichen Klasse wie ich
package private Nichts schreiben (Standard) Nur das gleiche Paket wie ich
protected protected Untergeordnete Klassen, die zum selben Paket gehören wie sie selbst oder von sich selbst erben
public public Alle Klassen

Zugriffskontrolle für Felder und Methoden

** (Nachdenken) ** Grundsätzlich wird "privat" häufig für Felder verwendet. Bei jeder Erstellung einer Methode wird der Anwendungsbereich berücksichtigt.

Felder über Methoden setzen

getter

** (Wie benutzt man) **

public Ein Typ, der einen Wert zurückgibt und den Feldnamen abruft(){
  return this.Feldname;//
}

(Code)

private String name;

public String getName(){
   return this.name;//Gibt den Wert des Namens für diese Klasse zurück
}

** (Aufrufmethode) **

System.out.println(getName());

setter

** (Wie benutzt man) **

public void set field name (Datentyp des Arguments Variablenname zum Setzen des Arguments){
  this.Feldname = Variablenname, um das Argument zu setzen
}

(Code)

private String name;

public void setName(String name){
   this.name = name
}

** (Aufrufmethode) **

Instanzname.setName("Yoshihiko");

Vorteile der Verwendung von Getter / Setter

** Schreibgeschützt Nur schreibgeschützt Feld kann realisiert werden. ** **. → Nur schreiben für Nur-Set, Nur Lesen für Nur-Abrufen

** Einfach zu ändernde Feldnamen ** → Wenn beim Umbenennen eines Felds eine andere Klasse den Feldnamen direkt verwendet, muss die andere Klasse geändert werden. Wenn jedoch get / set verwendet wird, befindet sie sich in Ihrer eigenen Klasse. Sie müssen lediglich den Klassennamen in get / set ändern.

** Sie können den Zugriff auf das Feld überprüfen ** → (Beispiel) Wenn dem Feld mp ein Wert von 0 oder weniger zugewiesen wird, erzeugt eine "neue IllegalArgumentException auslösen" zwangsweise einen Fehler und fährt das System herunter.

	public void setMp(int mp) {
		if (mp < 0) {
			throw new IllegalArgumentException("Bitte setzen Sie mp auf 0 oder mehr");
		}
		mp = this.mp;
	}

Zugriffskontrolle für Klassen

Zugriffskontrollebene

Name Wie schreibe ich in das Programm Zugriffsbereich
public public alles
package private Nichts schreiben (Standard) Nur das gleiche Paket wie ich

Merkmale nicht öffentlicher Klassen

-Der Klassenname kann sich vom Namen der Quelldatei unterscheiden

Recommended Posts

Verkapselung
Java (Kapselung)
Verkapselungsüberprüfung
Über die Kapselung
[Java] Kapselung
Verkapselung, Polymorphismus
Was ist Java-Kapselung?
Glossar: Accessor / Accessor-Methode, Kapselung
Über Kapselung und Vererbung
Über Java-Kapselung privat öffentlich