1. 理解
final: 最終的な
2. 関数
変更に使用できる最終的な構造: クラス、メソッド、変数
1. 変更 - クラス
final はクラスを変更するために使用されます。これは、このクラスが他のクラスに継承できないことを示し、セキュリティを向上させ、プログラムの可読性を向上させます。
例: String クラス、System クラス、StringBuffer クラス...
コードのデモ:
最終クラス A{
}
class B は A を拡張します{ //エラー。継承できません。
}
2. Modification-method
final はメソッドの変更に使用され、このメソッドがサブクラスによってオーバーライドできないことを示します。
例: Object
#getClass();
コードのデモ:
1 2 3 4 5 6 7 8 9 10 | class A {
public final void print () {
System.out.println( "A" );
}
}
class B extends A {
public void print () {
}
}
|
ログイン後にコピー
3. 変更変数
最終的に変更された変数 (メンバー変数またはローカル変数) は定数と呼ばれます。名前は大文字で、一度しか割り当てることができません。
static Final は、属性 (グローバル定数) を変更するために使用されます。
コードのデモ:
1 2 3 4 5 6 7 | class A {
private final String INFO = "嘻嘻" ;
public void print () {
}
}
|
ログイン後にコピー
3.1 変更メンバー変数 (プロパティ)
Final マーク付きのメンバー変数は、宣言 (明示的に初期化) するか、各コンストラクターまたはコード ブロック内で宣言する必要があります。使えるようになる前に。
例:
final double MY_PI = 3.14;
3.2 変更 - ローカル変数
final を使用してローカル変数を変更する場合、次のことを示します。この仮パラメータは定数です。このメソッドを呼び出すときは、実パラメータを定数パラメータに割り当てます。この仮パラメータは、一度割り当てられるとメソッド本体内でのみ使用でき、再割り当てすることはできません。
3. よくある質問
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 | public class Test1 {
public int addOne( final int 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.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();
System.out.println( "Mid的带参数构造器,其参数值:"
+ msg);
}
}
class Leaf extends Mid{
static {
System.out.println( "Leaf的静态初始化块" );
}
{
System.out.println( "Leaf的普通初始化块" );
}
public Leaf(){
super( "小老师ir" );
System.out.println( "Leaf的构造器" );
}
}
public class LeafTest{
public static void main(String[] args){
new Leaf();
System.out.println();
new Leaf();
}
}
|
ログイン後にコピー
以上がJavaでのfinalキーワードの使用方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。