akhir: akhir
struktur akhir yang boleh digunakan untuk mengubah suai: kelas, kaedah, pembolehubah
akhir digunakan untuk mengubah suai kelas, menunjukkan bahawa kelas ini tidak boleh diwarisi oleh kelas lain, meningkatkan keselamatan dan kebolehbacaan atur cara.
Contohnya: Kelas rentetan, kelas Sistem, kelas StringBuffer…
Demonstrasi kod:
kelas akhir A{
}
kelas B dilanjutkan A{ //Ralat, tidak boleh diwarisi.
}
akhir digunakan untuk mengubah suai kaedah: menunjukkan bahawa kaedah ini tidak boleh ditindih oleh subkelas.
Contohnya: Object
getClass();
:
class A { public final void print() { System.out.println("A"); } } class B extends A { public void print() { // 错误,不能被重写。 } }
akhir statik digunakan untuk mengubah suai atribut: pemalar global.
Demonstrasi kod:
class A { private final String INFO = "嘻嘻"; //声明常量 public void print() { //INFO = "哈哈"; //The final field A.INFO cannot be assigned } }
3.1 Pengubahsuaian - pembolehubah ahli (sifat)
Contohnya:
final double MY_PI = 3.14;
3.2 Pembolehubah setempat pengubahsuaian
3. Soalan klasik
//题目一: public class Test1 { public int addOne(final int x) { // return ++x; //Cannot assign a value to final variable 'x' return x + 1; } } //题目二: public class Something { public static void main(String[] args) { Other o = new Other(); new Something().addOne(o); } public void addOne(final Other o) { // o = new Other(); o.i++; } } class Other { public int i; } //题目三: class Root{ static{ System.out.println("Root的静态初始化块"); } { System.out.println("Root的普通初始化块"); } public Root(){ super(); System.out.println("Root的无参数的构造器"); } } class Mid extends Root{ static{ System.out.println("Mid的静态初始化块"); } { System.out.println("Mid的普通初始化块"); } public Mid(){ super(); System.out.println("Mid的无参数的构造器"); } public Mid(String msg){ //通过this调用同一类中重载的构造器 this(); System.out.println("Mid的带参数构造器,其参数值:" + msg); } } class Leaf extends Mid{ static{ System.out.println("Leaf的静态初始化块"); } { System.out.println("Leaf的普通初始化块"); } public Leaf(){ //通过super调用父类中有一个字符串参数的构造器 super("小老师ir"); System.out.println("Leaf的构造器"); } } public class LeafTest{ public static void main(String[] args){ new Leaf(); System.out.println(); new Leaf(); } } /*output: Root的静态初始化块 Mid的静态初始化块 Leaf的静态初始化块 Root的普通初始化块 Root的无参数的构造器 Mid的普通初始化块 Mid的无参数的构造器 Mid的带参数构造器,其参数值:小老师ir Leaf的普通初始化块 Leaf的构造器 Root的普通初始化块 Root的无参数的构造器 Mid的普通初始化块 Mid的无参数的构造器 Mid的带参数构造器,其参数值:小老师ir Leaf的普通初始化块 Leaf的构造器 */
Atas ialah kandungan terperinci Cara menggunakan kata kunci akhir dalam Java. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!