私は最近、このフレーズに出会いました:
"Class A has class member int a"
おそらく明らかですが、この文は単に定義されてa
いることを意味しますよね?int
class A
また、たとえば、 のメソッドの下に別のものa
が定義されていclass A
ます。それはまだクラスのメンバーですか?クラスメンバーの明確な定義が見つかりませんでした。ここ
を見ましたが、あまり役に立ちませんでした。
助けてくれてありがとう
私は最近、このフレーズに出会いました:
"Class A has class member int a"
おそらく明らかですが、この文は単に定義されてa
いることを意味しますよね?int
class A
また、たとえば、 のメソッドの下に別のものa
が定義されていclass A
ます。それはまだクラスのメンバーですか?クラスメンバーの明確な定義が見つかりませんでした。ここ
を見ましたが、あまり役に立ちませんでした。
助けてくれてありがとう
クラス メンバーは、静的メンバーを呼び出す別の方法です。
class A {
int a; //instance variable
static int b; //class variable
public void c() {
int d; //local variable
}
}
クラスメンバーは、クラスの単なる変数ではありません。クラス名を使用してアクセスできます。つまり、それらはそのクラスの静的変数です。
ドキュメントはそれを明確に述べました。
public class Bicycle {
private int cadence;
private int gear;
private int speed;
// add an instance variable for the object ID
private int id;
// add a class variable for the
// number of Bicycle objects instantiated
private static int numberOfBicycles = 0;
...
}
上記のコードの numberOfBicycles はクラス メンバーです。を使用してアクセスできます
Bicycle.numberOfBicycles
また、メソッド内の変数はそのようにアクセスできません。そのため、クラスのメンバーになることはできません。メソッド内で宣言された変数はローカル変数であり、そのメソッドに属します。したがって、それらを final と呼ぶことはできますが、static、public、protected、private とは言えません。
宣言に static 修飾子があるフィールドは、静的フィールドまたはクラス変数と呼ばれます
クラス変数は、次のようにクラス名自体によって参照されます。
Bicycle.numberOfBicycles
これにより、それらがクラス変数であることが明確になります。