温故知新—JAVA基礎知識総括


1、オブジェクトの初期化
(1)非静的オブジェクトの初期化
オブジェクトを作成すると、オブジェクトが存在するクラスのすべてのデータ・メンバーが最初に初期化されます.
基本タイプ:int型、初期化は0です.
オブジェクトの場合:これらのオブジェクトは順番に初期化されます.
※すべてのクラスメンバーの初期化が完了してから、このクラスの構築方法を呼び出してオブジェクトを作成します.
構造方法の役割は初期化である.
(2)静的オブジェクトの初期化
プログラム内のプライマリクラスの静的変数はmainメソッドの実行前に初期化されます.
オブジェクトを最初に作成するだけでなく、クラス内のすべての静的変数が初期化され、クラス(このようなオブジェクトは作成されていないことに注意)の静的オブジェクトに初めてアクセスする場合、すべての静的変数もクラス内の順序で初期化されます.
2、継承時、オブジェクトの初期化プロセス
(1)主クラスのスーパークラスは、静的メンバーがprivateであるかどうかにかかわらず、高い順から低い順に静的メンバーを初期化する.
(2)プライマリクラスの静的メンバーの初期化.
(3)主クラスのスーパークラスは,デフォルトの構築方法の呼び出しを高から低に行う.なお、各スーパークラスのデフォルトの構築方法を呼び出す前に、このスーパークラスに対して非静的オブジェクトの初期化を行います.
(4)主クラス非静的メンバーの初期化.
(5)主クラスの構築方法を呼び出す.
3、構造方法について
(1)クラスには構築方法がなくてもよいが,複数の構築方法がある場合はデフォルトの構築方法が必要であり,そうでない場合は,このクラスを継承する際に親クラスの非デフォルトの構築方法を子クラスで明示的に呼び出す必要がある.
(2)1つのコンストラクションメソッドでは、他のコンストラクションメソッドは1回しか呼び出せず、コンストラクションメソッドを呼び出す文は最初の文でなければならない.
4、public、privateとprotectedについて
(1)public修飾のないクラスで、他のクラスにアクセスできる条件は、a.2つのクラスが同じファイルにあり、b.2つのクラスが同じフォルダにあり、c.2つのクラスが同じパッケージにあることである.
(2)protected:継承クラスと同じパッケージのクラスにアクセスできます.
(3)構築方法がprivateの場合,他のクラスではそのクラスのオブジェクトを作成できない.
5、抽象類
(1)抽象クラスはオブジェクトを作成できません.
(2)クラスの1つのメソッドが抽象メソッドである場合、このクラスはabstract抽象クラスでなければならない.
(3)抽象クラスを継承するクラスは,クラスにおいて抽象クラスにおける抽象メソッドを実現しなければならない.
(4)抽象クラスには抽象メソッドがあってもよいし,非抽象メソッドがあってもよい.抽象メソッドはprivateではありません.
(5)抽象クラスを間接的に継承するクラスは,抽象メソッドの定義を与えなくてもよい.
6、finalキーワード
(1)オブジェクトは定数であり、オブジェクトを変更できないメンバーではなく、そのメンバーが操作できる.
(2)定数は使用前に値を付けなければならないが,宣言と同時に初期化する以外は構築方法でのみ初期化できる.
(3)final修飾の方法はリセットできない(サブクラスに同名の方法は現れない).
(4)クラスがfinalであることを宣言すると、すべてのメソッドはfinalであり、finalによって修飾されるかどうかにかかわらず、データメンバーはfinalであってもそうでなくてもよい.
7、インタフェースinterface(implementsでインタフェースを実現する)
(1)インタフェース内のすべてのデータはstaticとfinal,すなわち静的定数である.この2つのキーワードを修飾する必要はありませんが、定数に初期値を割り当てる必要があります.
(2)インタフェースのメソッドはいずれもpublicであり,実装インタフェースクラスでは実装メソッドがpublicキーワードである必要がある.
(3)publicを用いてインタフェースを修飾する場合、インタフェースはファイル名と同じでなければならない.
8、多重継承
(1)クラスがクラスとインタフェースを継承する場合は、クラスを前に書き、インタフェースを後ろに書き、インタフェース間をカンマで区切る必要があります.
(2)インタフェース間は多重継承可能であり,キーワードextendsを用いることに注意する.
(3)1つのクラスは1つのインタフェースしか実現していないが,このインタフェースのすべてのメソッドだけでなく,このインタフェースが継承するインタフェースのメソッドも実現し,インタフェースのすべてのメソッドはクラスで実現しなければならない.
9、インタフェースの埋め込み
(1)インタフェース埋め込みクラスではprivate修飾を用いることができる.この場合、インタフェースは存在するクラスでのみ実現され、他のクラスはアクセスできません.
(2)インタフェースに埋め込まれたインタフェースは必ずpublicである.
10、クラスの埋め込み
  
(1)クラスは別のクラスに埋め込むことができるが,インタフェースに埋め込むことはできない.(2)静的メソッドや他のメソッドでは,内部クラスオブジェクトを直接作成することはできず,手段によって取得する必要がある.
手段は2つあります.
 

class A {  class B {}  B getB() {  B b = new B();  return b;  }  } 

static void m() {  A a = new A();  A.B ab = a.getB(); // A.B ab = a.new B();  } 


(3)あるクラスは別のクラスの内部クラスを継承している.スーパークラスは内部クラスであり,内部クラスの構造方法は自動的に呼び出されないため,サブクラスの構造方法でスーパークラスの構造方法を明確に呼び出す必要がある.次に、次の例を示します.
 

class C extends A.B {  C() {  new A().super(); // 。  }  } 


構造方法は、次のように書くこともできます.
 

C(A a) {  a.super();  } // , C c = new C(a); a A 。


 
 
11、異常類JAVAの中でRunTimeException類を除いて、その他の異常はすべて捕獲或いは放出しなければならない