Java
 Computer >> コンピューター >  >> プログラミング >> Java

Javaの静的メソッドまたは静的コードブロックに課せられる制限は何ですか?


静的メソッドと静的ブロック

静的メソッドはクラスに属し、クラスとともにメモリにロードされます。オブジェクトを作成せずに呼び出すことができます。 (クラス名を参照として使用します。)

一方、静的ブロック staticキーワードを持つコードのブロックです。一般に、これらは静的メンバーを初期化するために使用されます。 JVMは、クラスのロード時にmainメソッドの前に静的ブロックを実行します。

public class Sample {
   static int num = 50;
   static {
      System.out.println("Hello this is a static block");
   }
   public static void demo() {
      System.out.println("Contents of the static method");
   }
   public static void main(String args[]) {
      Sample.demo();
   }
}

出力

Hello this is a static block
Contents of the static method

静的ブロックと静的メソッドの制限

静的メソッド

  • 静的コンテキストから非静的メンバー(メソッドまたは変数)にアクセスすることはできません。

  • これとsuperは静的コンテキストでは使用できません。

  • staticメソッドは、静的型データ(静的型インスタンス変数)にのみアクセスできます。

  • 静的メソッドをオーバーライドすることはできません。隠すだけです。

静的ブロック

  • 静的ブロックからは何も返すことができません。

  • 静的ブロックを明示的に呼び出すことはできません。

  • 静的ブロックで例外が発生した場合は、try-catchペアでラップする必要があります。投げることはできません。

  • これとスーパーは使用できません 静的ブロック内のキーワード。

  • 静的ブロックの場合、実行の順序を動的に制御することはできません。静的ブロックは宣言の順序で実行されます。


  1. Javaのpaint()メソッドとrepaint()メソッドの違いは何ですか?

    Paint()とRepaint() paint(): このメソッドは、このコンポーネントをペイントするための命令を保持します。 Java Swingでは、paintが paintBorder()を呼び出すときに、paint()メソッドの代わりにpaintComponent()メソッドを変更できます。 paintComponent() およびpaintChildren() メソッド。このメソッドを直接呼び出すことはできません。代わりに、 repaint()を呼び出すことができます。 。 repaint() :このメソッドはオーバーライドできません。 paint()を制御します サイ

  2. JavaでのsetBounds()メソッドの使用は何ですか?

    レイアウト マネージャー 追加されたコンポーネントの位置とサイズを自動的に決定するために使用されます。レイアウトマネージャーがない場合は、コンポーネントの位置とサイズを手動で設定する必要があります。 setBounds() このような状況では、メソッドを使用して位置とサイズを設定します。コンポーネントの位置とサイズを手動で指定するには、フレームのレイアウトマネージャーを nullにすることができます。 。 setBounds() setBounds() メソッドには4つの引数が必要です。最初の2つの引数は、x座標とy座標です。 左上の コーナー コンポーネントの3番目の引数は幅です コ