ホームページ  >  記事  >  Java  >  Java 修飾子のabstract、static、finalの使用方法

Java 修飾子のabstract、static、finalの使用方法

WBOY
WBOY転載
2023-04-26 09:46:141101ブラウズ

Modifier abstract

1. Abstract はクラスを変更できます

(1) abstract によって変更されたクラスは抽象クラスと呼ばれます
(2) 構文:

# 抽象クラス クラス名 {}

(3) 特徴: 抽象クラスはオブジェクトを個別に作成できませんが、
抽象カテゴリ名;
( 4) 抽象クラスはメンバー変数とメンバー メソッドを定義できます
(5) 抽象クラスには構築メソッドがあります。サブクラス オブジェクトの作成に使用される場合、jvm はデフォルトで親クラス オブジェクトを作成します。
抽象構築メソッドは、Applied で使用されます。 jvm が親クラス オブジェクトを作成するとき。

2. Abstract はメソッドを変更できます

(1) asbtract によって変更されたメソッドは抽象メソッドと呼ばれます
(2) 構文:

アクセスの変更シンボル抽象 戻り値型メソッド名(仮引数リスト);

注: 抽象修飾子とアクセス修飾子に順序の制限はありません
(3) 特徴: 抽象メソッドは宣言部分のみを持ちます。メソッドなし 実装部分 (; で終わる {} も不可)
(4) 注: 抽象メソッドは抽象クラスでのみ定義できますが、抽象メソッドは非抽象メソッドと同様に抽象クラスでも定義できます

抽象クラスのサブクラス:

(1) 構文:

クラスのサブクラス名は抽象クラス名を拡張します{}

( 2)要件: サブクラスが抽象クラスになりたくない場合は、抽象クラスの親クラス内のすべての抽象メソッドをカバーする必要があります (目的: 抽象メソッドの実装部分を完了するため);
サブクラスがすべてをカバーしていない場合親クラスの抽象メソッドは抽象クラスとして定義する必要があり、オブジェクトは作成できません
(3) アプリケーション: 抽象クラスはポリモーフィック アプリケーションを具体化します

抽象クラス名参照名 = 新しいサブクラスclass name () ; // 親型の参照には、サブタイプのオブジェクトが格納されます

Modifier of static? (static)

1. static は属性を変更できます

( 1) static によって変更されるプロパティは、静的プロパティ、静的変数、クラス変数と呼ばれます
注: メンバー変数は、インスタンス変数と静的変数 (または静的プロパティ、クラス変数) に分けられます
(2 ) 位置: 定義 クラス内、メソッド外では static によって変更されます
(3) 構文:

アクセス修飾子の静的データ型変数名;
アクセス修飾子の静的データ型変数名=値;

注: アクセス修飾子と静的の間に順序の要件はありませんが、それらはデータ型の前にある必要があります
(4) 機能: 静的プロパティは、以下に基づいて存在します。クラスと作成されるオブジェクトの数 無関係、すべてのオブジェクトで共有
(5) 使用方法:
a. オブジェクト名を介して 静的プロパティ名
b. クラス名を直接介して 静的プロパティ名 &mdash ;—>提案

注: インスタンス変数は、オブジェクト名を通じてアクセスする必要があります。インスタンス変数名

2. 静的はメソッドを変更できます

(1) によって変更されるメソッドstatic は静的メソッドと呼ばれます
(2) 構文:

アクセス修飾子 static 戻り値の型 メソッド名 (仮引数リスト) {
// メソッド実装、メソッド本体
}

注: アクセス修飾子と静的メソッドの間に順序の要件はありません
(3) 使用方法:
a. クラス名を直接渡します 静的メソッド名 (実際のパラメーター); -- 》推奨
b. オブジェクト名を通して. 静的メソッド (実際のパラメータ); -->非推奨
(4) 静的メソッド構文の詳細:
a. このクラスの静的メンバーのみ (静的プロパティと静的メソッド) は静的メソッドでアクセスできます )
b. このクラスの非静的メンバーには静的メソッドで直接アクセスできません (インスタンス変数は非静的メソッドです)
c. this/super キーワードは使用できません静的メソッドで使用されます
d. 静的メソッドはサブクラスによって継承できます
e. 静的メソッドは静的メソッドによってのみオーバーライドできます 静的メソッドは多態性アプリケーションを反映しません
(5) 静的メソッドの適用シナリオ:ツール クラスのメソッドは通常、ユーザーの便宜のために静的メソッドに設定されます。

Java 修飾子のabstract、static、finalの使用方法

3. 静的は初期化コード ブロックを変更できます

(1) static によって変更された初期化コード ブロックは、static コード ブロックと呼ばれます。
(2) 静的コード ブロックの位置: クラス内で定義され、メソッドは、{}

が静的クラスのクラス名によって変更されることです。 {
} 静的{
}
} }

(3) 機能: クラスロード時、静的プロパティの定義順に静的プロパティの初期化が完了します
(4) クラスのロード:
a. 概念:JVM No.一度に1つのクラスを使用する場合、クラスパスを介してクラスに対応する.classファイルを見つけます。 jvm メモリを使用し、クラスごとに 1 つのクラスのみをロードします。

b。クラスの読み込みのタイミング:( JVMがクラスを使用するのは初めてです)
サブクラスの静的属性または静的メソッドを呼び出します
② サブクラス オブジェクトの最初の作成: 最初のクラスがロードされ、次にオブジェクトの作成が完了します
ロード: まず親クラスが完了しますロード中 クラスロード

オブジェクトの作成: まず、親クラスの作成、クラス オブジェクトの再作成の作成を完了します。

修飾子? 変更された変数

final は変数を変更できます(ローカル変数、メンバー変数 - インスタンス変数、静的変数)

(1) 特徴: Final によって変更された変数はスコープ内の定数です。代入は 1 つだけ許可され、複数回使用できます。

注:最終的に変更された変数が割り当てられると、その変数は変更できなくなります。

(2) 構文:

アクセス修飾子の最終データ型変数 名前 = 値;


(3) 最終的に変更されたインスタンスにはデフォルト値がなくなり、開発者は次のように値を割り当てることができます:

a. 値を定義して割り当てるときに初期化します

ask####this.a;

public a(int a){

#(4)最終的な変更された静的変数にはデフォルト値がなくなり、開発者は値を割り当てる機会を開発者にします

a. 定義時に初期化し、値を割り当てます。
b. 静的コード ブロックを使用して初期化します。

class A{

Final static int n;
STATIC {

n = 5;

}
}


## (5) 最終的に変更された参照。つまり、参照内のストレージ オブジェクトは変更できません。
2. Final はメソッドを変更できます。

サブクラスに継承できますが、サブクラスでオーバーライドすることはできません。

3. Final はプロパティを変更できます

クラスは変更されますFinal は継承できません。つまり、サブクラスがありません。

以上がJava 修飾子のabstract、static、finalの使用方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はyisu.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。