コンストラクターで常にこれを呼び出す必要がありますか?

ikhebgeenaccount

このクラスを作成したとしましょう:

public class Panel extends JPanel{
    private JTextBox textBox;
    public Panel(){
        this.textBox = new JTextBox(10);
        add(this.textBox);
    }
}

そして私のメインでは:

public class Main{
    public static void main(String[] args){
        Panel panel1 = new Panel();
        Panel panel2 = new Panel();
    }
}

クラスPanelではthis、すべての回線で電話をかける必要がありますか、それともそのままにしておくことはできますか?それともそれはPanelsを台無しにするでしょうか?

ルイギメンドーサ

クラスで宣言されたフィールドと同じ名前のパラメーターを受け取った場合にのみ必要です。

public class Foo {
    int x;
    int y;
    public Foo(int x) {
        this.x = x; //here is necessary
        y = -10; //here is not
    }
}

もう1つの奇妙なシナリオは、サブクラスがスーパークラスのフィールドをシャドウイングする場合です。次に例を示します。

class Bar extends Foo {
    int y; //shadows y field in Foo
    public Bar(int x) {
        super(x); //calling constructor of super class
        super.y = -5; //updating y field from super class
        this.y = 10; //updating y field from current class
    }
}

後者の詳細:Javaチュートリアル。フィールドを隠すこのようなシナリオは避ける必要があるため、これは奇妙なことに注意してください。技術的には可能ですが、コードの読み取りと保守が困難になります。これに関するさらに詳しい情報:Javaクラスで使用される変数シャドウイングとは何ですか?

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

なぜreactクラスコンポーネントは常にコンストラクターでsuper(props)を呼び出す必要があるのですか?

分類Dev

コンストラクターの最初の行でparent :: __construct()を呼び出す必要がありますか?

分類Dev

Ajax経由で呼び出された場合、常にコントローラーからJsonResultを返す必要がありますか?

分類Dev

クロージャ内で常に完了ハンドラーを呼び出す必要がありますか?

分類Dev

コンストラクターをループから呼び出すことができるようにクラスを編成する必要があります

分類Dev

暗黙のスーパーコンストラクターclassA()を解決する方法が表示されません。別のコンストラクターを明示的に呼び出す必要がありますか?

分類Dev

C ++:呼び出しに一致する関数がありません:なぜ空のコンストラクターが必要なのですか?

分類Dev

コンストラクターを呼び出すときは、どの程度明示的にする必要がありますか?

分類Dev

ベース仮想デストラクタを明示的に呼び出す必要がありますか?

分類Dev

ベース仮想デストラクタを明示的に呼び出す必要がありますか?

分類Dev

ベース仮想デストラクタを明示的に呼び出す必要がありますか?

分類Dev

Java:このようにmainでコンストラクターを呼び出すことに利点はありますか?

分類Dev

クラスを拡張するたびにsuperを呼び出す必要があり、そのコンストラクターをトリガーする必要がありますか?

分類Dev

継承されたコンストラクターjava:super()の呼び出しは最初のステートメントである必要があります

分類Dev

Pythonの継承:親のコンストラクタとデストラクタを明示的に呼び出す必要がありますか?

分類Dev

ひし形の親移動コンストラクターをどのように呼び出す必要がありますか?

分類Dev

スーパークラスコンストラクターの呼び出しは、コンストラクター本体に含める必要があります

分類Dev

暗黙のスーパーコンストラクターPerson()は未定義です。別のコンストラクターを明示的に呼び出す必要がありますか?

分類Dev

コンストラクターは常にパブリックである必要がありますか?

分類Dev

Typescript:error TS2377:派生クラスのコンストラクターには「super」呼び出しが含まれている必要があります

分類Dev

コンパイル時に、指定されたパラメータータイプのセットでジェネリックラムダを正常に呼び出すことができるかどうかを検出する方法はありますか?

分類Dev

Solidity:別のコントラクトの関数を呼び出すときにエラーが発生しました。エラー:値を送信するときにコンストラクターが支払われる必要があります

分類Dev

ベクトルがありますが、どのコンストラクターが呼び出されるかは明確ではありません

分類Dev

デコンストラクターを呼び出すと、これによりメモリリークが発生しますか?

分類Dev

操作コントラクトが呼び出される前に、WCFでメソッドを呼び出す必要があります

分類Dev

スーパークラスコンストラクターを明示的に呼び出す必要があるのはいつですか?

分類Dev

コンストラクタ初期化リストでデフォルトのctorを呼び出す必要がありますか?

分類Dev

Javaエラー:暗黙のスーパーコンストラクターが定義されていません。別のコンストラクターを明示的に呼び出す必要があります

分類Dev

SensorManagerクラスでunregisterListernerを明示的に呼び出す必要がありますか?

Related 関連記事

  1. 1

    なぜreactクラスコンポーネントは常にコンストラクターでsuper(props)を呼び出す必要があるのですか?

  2. 2

    コンストラクターの最初の行でparent :: __construct()を呼び出す必要がありますか?

  3. 3

    Ajax経由で呼び出された場合、常にコントローラーからJsonResultを返す必要がありますか?

  4. 4

    クロージャ内で常に完了ハンドラーを呼び出す必要がありますか?

  5. 5

    コンストラクターをループから呼び出すことができるようにクラスを編成する必要があります

  6. 6

    暗黙のスーパーコンストラクターclassA()を解決する方法が表示されません。別のコンストラクターを明示的に呼び出す必要がありますか?

  7. 7

    C ++:呼び出しに一致する関数がありません:なぜ空のコンストラクターが必要なのですか?

  8. 8

    コンストラクターを呼び出すときは、どの程度明示的にする必要がありますか?

  9. 9

    ベース仮想デストラクタを明示的に呼び出す必要がありますか?

  10. 10

    ベース仮想デストラクタを明示的に呼び出す必要がありますか?

  11. 11

    ベース仮想デストラクタを明示的に呼び出す必要がありますか?

  12. 12

    Java:このようにmainでコンストラクターを呼び出すことに利点はありますか?

  13. 13

    クラスを拡張するたびにsuperを呼び出す必要があり、そのコンストラクターをトリガーする必要がありますか?

  14. 14

    継承されたコンストラクターjava:super()の呼び出しは最初のステートメントである必要があります

  15. 15

    Pythonの継承:親のコンストラクタとデストラクタを明示的に呼び出す必要がありますか?

  16. 16

    ひし形の親移動コンストラクターをどのように呼び出す必要がありますか?

  17. 17

    スーパークラスコンストラクターの呼び出しは、コンストラクター本体に含める必要があります

  18. 18

    暗黙のスーパーコンストラクターPerson()は未定義です。別のコンストラクターを明示的に呼び出す必要がありますか?

  19. 19

    コンストラクターは常にパブリックである必要がありますか?

  20. 20

    Typescript:error TS2377:派生クラスのコンストラクターには「super」呼び出しが含まれている必要があります

  21. 21

    コンパイル時に、指定されたパラメータータイプのセットでジェネリックラムダを正常に呼び出すことができるかどうかを検出する方法はありますか?

  22. 22

    Solidity:別のコントラクトの関数を呼び出すときにエラーが発生しました。エラー:値を送信するときにコンストラクターが支払われる必要があります

  23. 23

    ベクトルがありますが、どのコンストラクターが呼び出されるかは明確ではありません

  24. 24

    デコンストラクターを呼び出すと、これによりメモリリークが発生しますか?

  25. 25

    操作コントラクトが呼び出される前に、WCFでメソッドを呼び出す必要があります

  26. 26

    スーパークラスコンストラクターを明示的に呼び出す必要があるのはいつですか?

  27. 27

    コンストラクタ初期化リストでデフォルトのctorを呼び出す必要がありますか?

  28. 28

    Javaエラー:暗黙のスーパーコンストラクターが定義されていません。別のコンストラクターを明示的に呼び出す必要があります

  29. 29

    SensorManagerクラスでunregisterListernerを明示的に呼び出す必要がありますか?

ホットタグ

アーカイブ