Heim > Java > javaLernprogramm > Hauptteil

Erläuterung des Wesens von Java Final

(*-*)浩
Freigeben: 2019-09-23 16:32:51
nach vorne
2523 Leute haben es durchsucht

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;
    }
}
Nach dem Login kopieren

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;
	}
}
Nach dem Login kopieren

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());
	}
}
Nach dem Login kopieren

Ausgabeergebnis:

id: 1     name:dada    score:3
id: 2     name:hehe    score:10
Nach dem Login kopieren

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!

Verwandte Etiketten:
Quelle:csdn.net
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage