ホームページ  >  記事  >  Java  >  Javaで「ファイナル」とはどういう意味ですか?

Javaで「ファイナル」とはどういう意味ですか?

尚
オリジナル
2019-12-02 14:38:444305ブラウズ

Java の

Javaで「ファイナル」とはどういう意味ですか?

#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 {

}

Java の知識をさらに深めたい場合は、java 基本チュートリアル 列に注目してください。

以上がJavaで「ファイナル」とはどういう意味ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。