Final は Java のキーワードで、「定数」を意味します。 Java の最終データには 2 つの特別な意味があります: 1. 基本データ型の場合、決して変更されないコンパイル時の定数を意味します; 2. 通常のオブジェクトの場合、参照は定数であり、別のオブジェクトを指すことはできませんが、オブジェクトそれ自体は変更可能です。
#Java の Final は、意味が一定のキーワードです。
最終データには 2 つの特別な意味があります:
1. 基本的なデータ型の場合、決して変更されないコンパイル時の定数を表します。
2. 通常のオブジェクトの場合、参照は定数であり、別のオブジェクトを指すことはできませんが、オブジェクト自体は変更できることを意味します。
したがって、注意すべき点がいくつかあります:
1. クラスの静的な Final 属性は、変更できない記憶領域を占有することを意味し、変更する必要があります。宣言で初期化されます。構築中に初期化することはできません。
2. クラスの最後の属性は静的な値ではないため、各コンストラクターで宣言できます。
final と宣言されたプロパティは 1 回しか初期化できないことに注意してください。非静的はインスタンスごとに最大 1 回初期化されます。 static はクラスの作成中に 1 回だけ初期化できます。
3. 最終的に変更されたオブジェクト (配列など) の場合、配列は宣言後に変更できますが、新しい配列にリダイレクトすることはできません。
public class Test_FinalAndStatic { static final int i=1; final int j; public Test_FinalAndStatic(int j){ //i、j只能被初始化一次 所以j在声明中不能初始化 this.j=j; //同时 i只能在声明中初始化,不能在构造中初始化 } final int[] is=new int[]{1,2,3}; //被final修饰的引用一旦被初始化指向一个对象,就不能再改变,但该对象自身可以改变 //is=new int[]{3,2,1}; error public void dois(){ //is对象自身可以改变 is[0]=4; System.out.print("is="); for(int w:is){ System.out.println(w+":"); } } public void showi(){ System.out.println("i="+i); // i只能占据一段不能改变的存储空间 // i++; error // i=5; error } public void showj(){ System.out.println("j="+j); // j++; error // j=2; error } @Override public String toString(){ dois();showi();showj(); return null; } public static void main(String[]args){ Test_FinalAndStatic t1=new Test_FinalAndStatic(100); t1.toString(); Test_FinalAndStatic t2=new Test_FinalAndStatic(200); t2.toString(); } }
結果:
is=4: 2: 3: i=1 j=100 is=4: 2: 3: i=1 j=200
final パラメータ:
メッセージ内のパラメータが Final によって変更された場合、それは意味します。メッセージ内のパラメータ参照が指すオブジェクトは変更できません。
最後のメソッド:
1. メソッドをロックして、継承されたクラスの意味が変更されないようにし、上書きされないようにします。
2. 効率を向上させるために、このメソッドへのすべての呼び出しをインライン呼び出しに変更するコンパイラに同意します。ただし、現在は推奨されていません。
3. すべてのプライベート メソッドは暗黙的に Final として指定されます。 privateメソッドが取得できないため、書き換えることができません。
最終クラス:
継承、変更、サブクラスを持つことはできません。
以上がJavaでfinalってどういう意味ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。