インスタンス変数とは何ですか?

インスタンス変数は、オブジェクト指向プログラミングのデータであり、それが存在するすべてのオブジェクトに対して独自の値を持つ独自の値を備えています。インスタンス変数は、インスタンスメンバー、非静的フィールド、およびデータメンバーと呼ばれる場合があります。それらは、オブジェクトが計算に使用する特定のデータを保持する特定のデータを保持するほとんどのオブジェクトの重要な部分です。たとえば、オブジェクトAが「blah」と呼ばれる2つのオブジェクトAとBが存在する場合、「Blah」と呼ばれるインスタンス変数、2つの「Blah」変数は異なる瞬間です。各変数は、それをカプセル化するオブジェクトに関連付けられています。オブジェクトAに関連付けられた変数「blah」のフルネームは「a.blah」であり、オブジェクトbに関連付けられた変数「blah」のフルネームは「b.blah」です。これらの変数が独自の値を持つことができる場合、それぞれ。オブジェクトAとBが同じタイプで、そのタイプの別のオブジェクトが作成され、オブジェクトCにはインスタンス変数「BLAH」もあります。s独自の一意の値。

インスタンス変数は静的変数と混同されることがよくありますが、2つは大きく異なります。インスタンス変数とは対照的に、特定のタイプのすべてのオブジェクトに独自のオブジェクトがあり、静的変数には1つの値しかありません。この値は、適切なタイプのすべてのオブジェクトで同じです。静的変数はしばしばクラス変数と呼ばれ、インスタンス変数と同じではありません。

それらに割り当てられた可視性プロパティに応じて、インスタンス変数は、特定のオブジェクトの内部、オブジェクトとそのサブクラス、またはそれが存在するオブジェクトやその他のオブジェクトにのみ表示される場合があります。パブリックの可視性と呼ばれる最終的な可視性のタイプは、オブジェクト指向プログラミングのカプセル化原則に違反するのが簡単であるため、たとえば変数のために悪い練習と見なされることがよくあります。このタブーにもかかわらず、パブリックインスタにはNCE変数は便利です。たとえば、Javaの多くの標準クラスには、パブリックインスタンス変数があり、プロパティを簡単に変更できる場合があります。

インスタンス変数の可視性も継承とともに機能します。あるクラスが別のクラスから継承した場合、これにより、両方のクラスが互いのインスタンス変数へのアクセスをすぐに提供するわけではありません。スーパークラスとサブクラスのプライベートインスタンス変数は、それらのクラスのみに制限されたままであるため、サブクラスのプライベート変数はスーパークラスでは見られず、その逆も同様です。スーパークラスとサブクラスの両方が見ることができる唯一のインスタンス変数は、スーパークラスの保護された変数です。

他の言語

この記事は参考になりましたか? フィードバックをお寄せいただきありがとうございます フィードバックをお寄せいただきありがとうございます

どのように我々は助けることができます? どのように我々は助けることができます?