Java拡張のオブジェクト向け(1)
5480 ワード
1.abstractキーワード-抽象メソッドと抽象クラス
추상 메서드(Abstract Method)
とは、宣言部があるが、実施部がない方法をいう.抽象的なメソッドを持つクラスは、추상 클래스(Abstract Class)
と宣言する必要があります.では、なぜ抽象的な方法が必要なのでしょうか.継承関係で親タイプオブジェクト参照変数を使用して子クラスオブジェクトを作成する場合は、親のメソッドは存在する必要がありますが、実装は困難です.この場合、抽象的な方法が使用されます.方法宣言は、あるが体がない形で実現する方法である.
また、抽象クラスはインスタンスになります.つまり、オブジェクトのクラスは作成できません.
したがって、抽象クラスを使用すると、予期せぬ親オブジェクトの作成を回避したり、親タイプ参照変数配列を使用してすべての子クラスを上書きする方法を使用すると、元の親がこの方法を必要とする問題を解決できます.
以下に整理します.
2.作成者
クラスのインスタンス、すなわちオブジェクトを作成するたびにnewキーが使用されます.
동물 뽀로로 = new 동물();
newクラス名()をよく見ると、開いたカッコと閉じたカッコが見えます.を選択します.したがって,クラス名()も一つの方法である.戻り値がなくクラス名と同名のメソッドを生成オブジェクトと呼ぶメソッドを객체 생성자 메서드
と呼ぶ.次いで생성자
と略称され、より多くは称される.また,これらのメソッドを単独で作成しなくても,Javaはパラメータのないデフォルトジェネレータを自動的に作成する.パラメータを持つジェネレータをさらに作成することもできます.ただし、パラメータ付きジェネレータを作成すると、Javaはデフォルトジェネレータを作成しません.ジェネレータは開発者のニーズに応じてオーバーロードできます.以下に整理します.
3.クラス作成時の実行ブロック、静的ブロック
Javaでは、オブジェクト作成者とは異なり、クラス作成者は単独では存在しませんが、クラスが静的領域に配置されたときに実行されるコードブロックがあります.
static 블록
です.また、プログラムの起動時にすべてのパッケージとすべてのクラスがワークスペースにロードされるわけではなく、実際にはこのパッケージまたはクラスを初めて使用したときにロードされることを指摘します.このとき、クラスの静的ブロックは1回のみ実行されます.
ここで、クラスが初めて使用される場合は、次の3つのケースの1つです.
なぜ,プログラム実行時にクラスの情報をTメモリの静的領域に直接ロードせず,クラスの初回使用時にロードするのか.体力領域もメモリなので.メモリの使用を最大限遅く開始し、メモリの返却を最小限に抑えることがメモリ効率に役立ちます.もちろん、Javaはワークスペースに入ると、プログラムが終了する前にメモリを返すことはできませんが、できるだけ遅くロードし、メモリの使用を最大限に遅らせます.
また、静的ブロックと同様に、クラスインスタンス用のインスタンスブロックも存在する.タグなしのブロックを使用している場合は、インスタンスを作成するたびにブロックが実行されます.ブロックは、オブジェクト作成者が実行する前に最初に実行されます.
4.finalキーワード
finalはfinalを意味する最後の単語です.finalキーワードが表示される可能性のある場所は、クラス、変数、メソッドです.
1.finalとclass
クラスにfinalがある場合は、継承は許可されません.したがって、サブクラスを作成できません.
2.finalと変数
package finalVariable;
public class 고양이 {
final static int 정적상수1 = 1;
final static int 정적상수2;
final int 객체상수1 = 1;
final int 객체상수2;
static {
정적상수2 = 2;
// 상수는 한 번 초기화되면 값을 변경할 수 없다.
// 정적상수2 = 4;
}
고양이() {
객체상수2 = 2;
// 상수는 한 번 초기화되면 값을 변경할 수 없다.
// 객체상수2 = 4;
final int 지역상수1 = 1;
final int 지역상수2;
지역상수2 = 2;
}
}
変数にfinalキーワードを追加すると、変更できない定数になります.静的定数は、宣言時に静的コードブロック内で初期化してもよいし、静的ジェネレータ内で初期化してもよい.オブジェクト定数は、宣言時に、オブジェクト作成者またはインスタンスブロックで初期化することもできます.領域定数は、宣言時に1回のみ初期化することもできます.他の言語では、読み取り専用定数ではfinalキーワードではなくconstキーワードが使用される場合がありますが、javaでは、このような混同を避けるためにconstをキーワードとして登録し、使用しません(not use).
3.finalとmethod
メソッドがfinalの場合、最終的なので、再定義、すなわち上書きは禁止されます.
リファレンス
Reference
この問題について(Java拡張のオブジェクト向け(1)), 我々は、より多くの情報をここで見つけました https://velog.io/@jsj3282/자바가-확장한-객체-지향1テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol