Heim  >  Artikel  >  Java  >  Erläuterung des Wesens von Java Final

Erläuterung des Wesens von Java Final

(*-*)浩
(*-*)浩nach vorne
2019-09-23 16:32:512459Durchsuche

Erläuterung des Wesens von Java Final

Bedeutung: endgültiges Mittel [kann nur einmal vergeben werden].

Zuweisungsort: In [Zuweisung bei Deklaration], [Zuweisung im Konstruktor]

Beispiel:

package com.dada.data;
 
public class TestFinal {
    // 1.声明时赋值
    private final int i = 0;
    private final int j;
    public TestF() {
        // 2.构造方法中赋值
        j = 10;
    }
}

Hinweis: Wir sagen, dass final nur einmal zugewiesen werden kann, aber wir wissen, dass es in Java [es gibt zwei Arten von Werten], [Werte von Basisdatentypen] und [Werte von Referenzdatentypen]. Zuweisung Das heißt, den [Wert der Variablen] direkt zuzuweisen. Bei Referenzdatentypen bedeutet dies, [die Referenz der Variablen zuzuweisen].

Deshalb: Die Bedeutung der Möglichkeit, einen Wert nur einmal zuzuweisen, ist in zwei Situationen unterteilt: 1. Wenn es sich um einen Basisdatentyp handelt, kann der Wert selbst nicht geändert werden eines Referenzdatentyps, d. h. Die Referenz kann nicht geändert werden, der Inhalt der Referenz kann jedoch geändert werden.

Beispiel:

Studentenklasse definieren:

package com.dada.data;
 
public class Student {
	private int id;
	private String name;
	private int score;
	public Student(int id, String name, int score) {
		this.id = id;
		this.name = name;
		this.score = score;
	}
	public int getId() {
		return id;
	}
	public void setId(int id) {
		this.id = id;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	
	public int getScore() {
		return score;
	}
	public void setScore(int score) {
		this.score = score;
	}
	
	@Override
	public String toString() {
		return "id: " + id + "\t name:" + name + "\tscore:" + score;
	}
}

Testklasse definieren:

package com.dada.data;
 
public class TestFinal {
	private final Student ss;
	
	public static void main(String[] args) {
		TestFinal tf = new TestFinal();
	}
	public TestFinal() {
		Student student = new Student(1, "dada", 3);
		// 第一次赋值
		ss = student;
		System.out.println(ss.toString());
		
		// 修改引用所对应的对象的内容
		student.setId(2);
		student.setName("hehe");
		student.setScore(10);
		System.out.println(ss.toString());
	}
}

Ausgabeergebnis:

id: 1     name:dada    score:3
id: 2     name:hehe    score:10

Zusammenfassung:

Aus dem obigen Beispiel können wir den Inhalt der Referenz nach der Variablen erkennen Wird von final geändert Es kann immer noch geändert werden. Der Grund, warum wir oft das Gefühl haben, dass es nicht geändert werden kann, ist:

1 Normalerweise können wir beim Definieren von Variablen Werte zuweisen für grundlegende Typdaten durchgeführt werden.

2. Da wir bei Referenztypdaten die entsprechende Referenz nicht erhalten können, sind wir auch der Meinung, dass die Referenztypdaten nicht geändert werden können.

Das obige ist der detaillierte Inhalt vonErläuterung des Wesens von Java Final. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:csdn.net. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen
Vorheriger Artikel:JSON-Daten auf Anfrage abrufenNächster Artikel:JSON-Daten auf Anfrage abrufen