Java のプロパティとフィールドの違いは何ですか?
Java のプロパティは通常、get メソッドと set メソッドとして理解できます。
フィールド (フィールド) は通常「クラス メンバー」または「クラス メンバー変数」と呼ばれ、「ドメイン」とも呼ばれます。これは「データ メンバー」として理解され、データを運ぶために使用されます。
フィールド (フィールド)
クラス メンバー (フィールド)、通常は class で定義されたクラス メンバー変数、
例:
public class A{ private String s = "123"; }
クラス A には s というメンバー変数があり、クラス A にはフィールド s があると言えます。
フィールドは通常、データを運ぶために使用されるため、セキュリティ上の理由から、通常はプライベートとして定義されます。
フィールドと定数はクラスのデータ (ドメイン) を記述します。これらのデータの一部が外部からのアクセスを許可されていない場合、
「オブジェクトのカプセル化」の原則に従って、 " の場合、型のフィールドが外部に公開されることをカプセル化することは避ける必要があります。最終的に変更された定数を除きます。
通常はプライベートタイプに設定します。これはプライベートなので、外部の世界はどのようにアクセスできるのでしょうか? もちろん、Java の属性メソッドを使用します。
属性 (プロパティ)
属性はクラス内のメソッドの宣言に限定され、クラスの他のメンバーとは関連せず、JavaBean のカテゴリに属します。 。
例:
void setA(String s){} String getA(){}
クラスにそのようなメソッドのペアがある場合、このクラスには読み取り可能および書き込み可能なプロパティがあると言えます (小文字であることに注意してください) )。 set メソッドが削除された場合、それは読み取り可能な属性になり、その逆も同様です。
ルール: get または set の後に残った文字列を削除します。
要約:
属性とフィールドを区別する目的は、次のことをより適切に達成するためです。データ セキュリティ。たとえば、クラスの属性に値を割り当てたり、それを他のクラスで使用したりする場合、このフィールドを public に設定する必要があります。ただし、これにより、フィールドに対する任意の読み取りおよび書き込み操作が可能になります。データのセキュリティにとって非常に有害です。そこで属性が追加されました。簡単に言えば、属性はフィールドのカプセル化を実現します。属性には、フィールドを制御するための get メソッドと set メソッドがあります。このフィールドの属性には set メソッドのみがあり、get メソッドはありません。そのため、このメソッドでは代入操作のみを実行できます。読み取り操作はありません。その逆も同様です。つまり、フィールドに対する操作は属性を通じて制御されます。
属性を作成し、フィールドと属性を一緒にカプセル化できます。属性を使用すると、フィールドと同様にデータ メンバーにアクセスし、データのカプセル化を実現し、不正なデータ割り当てを回避し、データの整合性を確保し、クラス内で変更が発生した場合のプログラム全体の変更を回避できます。
get メソッドと set メソッドに基づくリフレクションはオブジェクト データを破壊せず、IDE は規則に従っていくつかのインテリジェントなプロンプトを作成できます。自分でリフレクションを使用し、各フィールドを横断する一般的な処理を実行したい場合、どのフィールドが書き込み可能でどのフィールドが読み取り可能であるかを誰も教えてくれないため、処理できません。
以上がJavaフィールドとは何ですかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。