Javaスローとスロー

Javaでは、例外は2つのタイプに分類できます。 Unchecked Exceptions: これらはコンパイル時ではなく実行時にチェックされます。例: ArithmeticException、 NullPointerException、 ArrayIndexOutOfBoundsException、以下の例外 Error クラスなど Checked Exceptions: それらはコンパイル時にチェックされます。 例えば、 IOException、 InterruptedException、など。 チェックされた例外とチェックされていない例外の詳細については、Java例外を参照してください。 通常、チェックされていない例外を処理する必要はありません。 これは、プログラミングエラーが原因でチェックされていない例外が発生するためです。 また、それらを処理するのではなく、修正することをお勧めします。 このチュートリアルでは、を使用してチェックされた例外を処理する方法に焦点を当てます。 throw と throws。 Javaはキーワードをスローします を使用します throws メソッド宣言で、その中で発生する可能性のある例外のタイプを宣言します。 その構文は次のとおりです。 accessModifier returnType methodName()...
các thành phần được kết nối mạnh mẽ

強く接続されたコンポーネント

強連結成分は、各頂点から別の頂点へのパスが存在する有向グラフの部分です。 It is applicable only on a directed graph。下のグラフを見てみましょう。最初の強連結成分では、すべての頂点が有向パスを介して他の頂点に到達できることがわかります。これらのコンポーネントは、 Kosaraju's Algorithm。コサラジュのアルゴリズムは、2回実装された深さ優先探索アルゴリズムに基づいています。3つのステップが含まれます。 グラフ全体で深さ優先探索を実行します。 頂点0から始めて、そのすべての子頂点にアクセスし、アクセスした頂点に完了のマークを付けましょう。 頂点がすでにアクセスした頂点につながる場合は、この頂点をスタックにプッシュします。 例:頂点0から始めて、頂点1、頂点2、頂点3の順に移動します。 Vertex-3は、すでにアクセスされているvertex-0につながるため、ソース頂点(つまり、vertex-3)をスタックにプッシュします。 グラフ上のDFS 前の頂点(頂点2)に移動し、その子頂点、つまり頂点4、頂点5、頂点6、頂点7に順番にアクセスします。 頂点7から移動する場所がないため、スタックにプッシュします。 グラフ上のDFS 前の頂点(vertex-6)に移動し、その子頂点にアクセスします。 ただし、すべての子頂点が訪問されるため、スタックにプッシュします。 スタッキング 同様に、最終スタックが作成されます。 ファイナルスタック 元のグラフを反転します。逆グラフのDFS 逆グラフで深さ優先探索を実行します。 スタックの一番上の頂点から開始します。 すべての子頂点をトラバースします。 すでに訪問した頂点に到達すると、1つの強連結成分が形成されます。 例:スタックから頂点0をポップします。 頂点0から開始して、その子頂点(頂点0、頂点1、頂点2、頂点3を順番に)をトラバースし、それらを訪問済みとしてマークします。 頂点3の子はすでに訪問されているため、これらの訪問された頂点は1つの強連結成分を形成します。 上から開始して、すべての頂点をトラバースします スタックに移動し、すでにアクセスしている場合は上部の頂点をポップします。 それ以外の場合は、スタックから一番上の頂点を選択し、上記のようにその子頂点をトラバースします。 すでにアクセスしている場合は、上部の頂点をポップします 強連結成分 したがって、強連結成分は次のとおりです。強く接続されたすべてのコンポーネント # Kosaraju's algorithm...

JavaScriptクラスの継承

クラス継承 継承により、親クラスからすべての機能を取得し、さらに追加できるクラスを定義できます。 クラス継承を使用すると、クラスは別のクラスのすべてのメソッドとプロパティを継承できます。 継承は、コードの再利用を可能にする便利な機能です。 クラス継承を使用するには、 extends。 例えば、 // parent class class Person { constructor(name) { this.name = name; ...

JavaScriptコンストラクター関数

JavaScriptでは、コンストラクター関数を使用してオブジェクトを作成します。 例えば、 // constructor function function Person () { this.name="John", this.age = 23 } // create an object const person = new Person(); 上記の例では、...
Đóng gói C ++

C++カプセル化

カプセル化は、オブジェクト指向プログラミングの重要な機能の1つです。 これには、単一のクラス内のデータメンバーと関数のバンドルが含まれます。 クラス内で類似のデータメンバーと関数をバンドルすることも、データの非表示に役立ちます。 C++カプセル化 一般に、カプセル化は、同様のコードを1か所にラップするプロセスです。 C ++では、単一のクラス内で一緒に動作するデータメンバーと関数をバンドルできます。 例えば、 class Rectangle { public: int length; int breadth; int getArea() { ...