Java の Final キーワードの機能: 1. 参照の変更に使用されます; 2. メソッドの変更に使用されます; 3. クラスの変更に使用されます。メソッドが最終的に変更されると、このメソッドが最終メソッドとなり、サブクラスによってオーバーライドすることはできません。
1.final キーワードの機能の概要
final キーワードは、参照、メソッド、クラスを変更するために使用できます。
(ビデオ チュートリアルの推奨事項: java コース )
1. 参照の変更に使用されます
参照が基本データ型の場合、参照が定数の場合、値は変更できません。参照がオブジェクトや配列などの参照データ型の場合、オブジェクトまたは配列自体は変更できますが、オブジェクトまたは配列のアドレスを指す参照は変更できません。参照がクラスのメンバー変数への場合、その場で値を割り当てる必要があります。そうでない場合、コンパイルでエラーが報告されます。
例は次のとおりです:
final class Person { String name ="zs"; //3. 此处不赋值会报错 //final int age; final int age = 10; } public class Demo01 { public static void main(String[] args) { //1. 基本数组类型为常量,无法修改 final int i = 9; //i = 10; //2. 地址不能修改,但是对象本身的属性可以修改 Person p = new Person(); p.name = "lisi"; final int[] arr = {1,2,3,45}; arr[3] = 999; //arr = new int[]{1,4,56,78}; } }
2. メソッドの変更に使用されます
最終的に変更されたメソッドが使用される場合、このメソッドは最終メソッドとなり、変更することはできません。サブクラスによってオーバーライドされます。ただし、メソッドは引き続き継承できます。
class Person { public final void say() { System.out.println("说...."); } public void eat() { System.out.println("吃..."); } } class Teacher extends Person { //1. final修饰的方法不能被重写,但此方法仍然被继承 /*@Override public void say() { System.out.println("老师在一本正经的说..."); }*/ public void eat() { System.out.println("老师在大口大口的吃..."); } } public class Demo02 { public static void main(String[] args) { Teacher t = new Teacher(); t.say(); } }
3. クラスの変更に使用されます
final を使用してクラスを変更すると、そのクラスは最終クラスになり、継承できません。単に「子孫を絶つ、子孫を絶つ」とも言います。
/*** * final用法3:修饰类,则该类成为最终类,无法被继承 * @author Administrator * */ final class Person02 { } //class Teacher02 extends Person02 { } //class MyString extends String{} public class Demo03 { }
たとえば、一般的に使用される String クラスが最後のクラスです。
関連する推奨事項:Java の使用を開始する
以上がJavaのfinalキーワードの機能は何ですかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。