ブロックデバッグデバッグ

ブロックデバッグデバッグ

ブロック

ブロック{}は、javaで独自のスコープを持ち、次のように分割できます。

静的コードブロック 構造コードブロック 通常のブロック 同期コードブロック
場所を宣言する クラス内、メソッド外 クラス内、メソッド外 方法 fynchronized(){}
効果 クラス全体が特定の初期化操作を実行します(静的プロパティの割り当て...) 構築コードブロックは、オブジェクトの初期化操作用です(静的または非静的メンバープロパティに値を割り当てます...) いくつかの一時変数などを宣言します。 並行性を制御する
実行のタイミング クラスが初めてロードされるとき、クラスは1回だけ実行されます。複数の静的ブロックがある場合、それらは上から下に1回実行されます。 オブジェクトを作成するときは、コンストラクターコードを実行する前に実行します。複数ある場合は、上から下に実行します。 メソッドの実行に従う メソッドの実行に従う

注意:

  • 静的コードブロックは、クラスが初めてロードされるときに実行されます。クラスが複数回ロードされる場合、静的コードブロックは1回だけ実行されます。静的ブロックは、静的変数を初期化するためによく使用されます。

  • オブジェクトの作成時ではなく、クラスの初期化時に実行されます。

  • 非静的メンバーは、静的初期化ブロックではアクセスできません。

  • ビルディングブロックは、実行されるコンストラクタコードの前に実行されるようにコンパイルされます

クラスが初めて使用されるときにのみロードされる静的ブロック。
ビルディングブロックはコンストラクターの前に実行され、オブジェクトが作成されるたびに実行されます

デバッグ

学習や開発の過程では、バグに遭遇することは避けられません。迅速にデバッグできるようにするために、デバッグデバッグツールを使用できます。

Javaプログラムのデバッグは非常に簡単で、主にブレークポイントの設定、デバッグの開始、シングルステップ、およびデバッグの終了が含まれます。

デバッグインターフェイスウィンドウ:

1)ブレークポイントを設定する

2)デバッグを開始します

Eclipseには、プログラムのデバッグを開始する方法(Launch)がいくつかあります。つまり、メニュー(Run-> Debug)、アイコン( "green bug")、および右ボタン-> DebugAsを使用します。

プロンプトが表示されたら、[デバッグ]作業領域に切り替えて、[決定を記憶する]にチェックマークを付け、選択内容を記憶します。次回はプロンプトが表示されないので、[はい]をクリックします。

3)シングルステップ

主に上記のいくつかのビューをデバッグに使用し、デバッグビューのいくつかのボタンにはショートカットキーがあります。

ステップReturn(F7):現在のメソッドを終了し、呼び出し元のレイヤーに戻ることを示します。

ステップオーバー(F6):次のコード行を実行することを示します。

ステップイン(F5):現在のメソッドを入力することを示します。

4)デバッグを終了します

Terminateコマンドを使用して、ローカルプログラムのデバッグを終了します。

オブジェクト指向-継承

継承

「木の上の鳥と木の下の2匹のウサギ。何種類の動物、何種類の生き物?」継承の概念があります。

継承:息子は父親の継承を継承します

継承の本質は抽象化にあります。クラスはオブジェクトの抽象化であり、継承は、実世界のより良いモデリングを実現するための、クラスの特定のバッチの抽象化です。

継承の役割:継承を使用すると、コードの再利用性を向上させることができます。

継承の使用方法:

親クラス|スーパークラス|基本クラス:いくつかのサブクラスに従って抽象化し、画像部分を抽出して、親クラスで定義します

サブクラス|派生クラス:サブクラスは親クラスを継承し、親クラスのコンテンツを使用する権利を持ち、サブクラスの新しいコンテンツを定義できるため、サブクラスは親クラスの継続+拡張です。

extendsキーワードは、「拡張」を意味します。子クラスは親クラスの拡張です。

javaでは、<font color = "red"> extends </ font>キーワードを使用して、クラスの継承メカニズムである文法規則を実装します。

<modifier> class <name> [extends <superclass>]{} 
//父类
class Person{
    public String name;
    public int age;

    public void sleep(){
        System.out.println("休息");
    }
}
//子类
//教师类
class Teacher extends Person{
    public String subject;

    public Teacher() {
    }

    public void teach(){
        System.out.println("传授知识");
    }

}

//学生类
class Student extends Person{
    public String school;

    public Student() {
    }

    public void study(){
        System.out.println("在知识的海洋畅游!");
    }
}

注意:

  • 子クラスは、親クラスのメンバー変数とメンバーメソッドを継承しますが、親クラスの構築メソッドは継承しません。
  • Javaには単一の継承のみがあり、C ++のような複数の継承はありません。複数の継承は混乱を引き起こす可能性があり、継承チェーンが複雑になりすぎて、システムの保守が困難になります。私たちの現実と同じように、複数の親がいる場合、それは混沌とした世界です。複数の継承はコードの再利用性を実現することですが、複雑さをもたらし、システムクラス間の関係を混乱させます。
  • javaでの複数の継承は、インターフェイスを介して実現できます
  • クラスを定義するときにextendsを呼び出さない場合、その親クラスはjava.lang.Objectです。

継承された特性:

利点:

  • 継承により、クラス定義が簡素化され、コードの再利用が実現されます|コードの再利用性が向上します
  • より良く拡張することができます
  • サブクラスが親クラスを継承すると、親クラスのメンバーを使用する権利を持つか、サブクラスの一意のコンテンツの定義を拡張できます。
  • Javaは単一の継承であり、実装が簡単です

短所:

  • 子クラスと親クラスは緊密に結合され(高結合)、子クラスは親クラスの実装に依存し、子クラスは独立性に欠けます。
  • メンテナンスが簡単ではありません
  • サブクラスの単一の継承は、親クラスを1つしか持つことができません。これは、十分な柔軟性がなく、後のメンテナンスに便利ではありません。

おすすめ

転載: blog.51cto.com/14966126/2542625