Rumah  >  Artikel  >  Java  >  Cara menggunakan kata kunci akhir dalam Java

Cara menggunakan kata kunci akhir dalam Java

WBOY
WBOYke hadapan
2023-04-26 19:37:051331semak imbas

1. Fahami

akhir: akhir

2. Fungsi

struktur akhir yang boleh digunakan untuk mengubah suai: kelas, kaedah, pembolehubah

1. Pengubahsuaian - kelas

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.
}

2. Kaedah pengubahsuaian

akhir digunakan untuk mengubah suai kaedah: menunjukkan bahawa kaedah ini tidak boleh ditindih oleh subkelas.

Contohnya: ObjectgetClass();

tunjuk cara kod dalam kelas

:

class A {
   public final void print() {
     System.out.println("A");
   } 
}
class B extends A {
    public void print() { 
    // 错误,不能被重写。
    } 
}

3 atau pembolehubah tempatan) dipanggil pemalar. Nama ditulis dengan huruf besar dan hanya boleh diberikan sekali.

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)

Pembolehubah ahli bertanda akhir mesti diisytiharkan (dimulakan secara eksplisit) atau dalam setiap pembina atau blok kod, sebelum ia boleh digunakan.

Contohnya:

final double MY_PI = 3.14;3.2 Pembolehubah setempat pengubahsuaian

Apabila menggunakan muktamad untuk mengubah suai pembolehubah tempatan, ini menunjukkan bahawa parameter formal ini ialah pemalar. Apabila kita memanggil kaedah ini, tetapkan parameter sebenar kepada parameter malar. Setelah ditetapkan, parameter rasmi ini hanya boleh digunakan dalam badan kaedah dan tidak boleh ditetapkan semula.

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!

Kenyataan:
Artikel ini dikembalikan pada:yisu.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam