Java のクラス属性
1. Javaクラス属性
前章の例では、クラス内で使用している変数 x に対して「変数」という言葉を使いました。
Javaにおいて、クラス内で宣言された変数は「属性(アトリビュート / Attributes)」と呼ばれます。
また、属性とは「クラスに属する変数」であると言うこともできます。
以下の例では、x と y という2つの属性を持つ Main クラスを作成しています:
public class Main {
int x = 5;
int y = 3;
}属性のもう一つの呼び名は「フィールド(Fields)」です。
2. 属性へのアクセス
属性にアクセスするには、そのクラスのオブジェクトを作成し、ドット構文(.)を使用します。
以下の例では、Main クラスのオブジェクトを作成し、名前を myObj とします。その後、オブジェクトの属性 x を使用して、その値を出力します。
コード例:myObj というオブジェクトを作成し、x の値を出力します。
public class Main {
int x = 5;
public static void main(String[] args) {
Main myObj = new Main();
System.out.println(myObj.x);
}
}3. 属性の変更
属性の値は、後から変更することも可能です。
例:x の値を 40 に設定します。
public class Main {
int x;
public static void main(String[] args) {
Main myObj = new Main();
myObj.x = 40;
System.out.println(myObj.x);
}
}また、既存の値を上書きすることもできます。
例:x の値を 25 に変更します。
public class Main {
int x = 10;
public static void main(String[] args) {
Main myObj = new Main();
myObj.x = 25; // xの値は25になりました
System.out.println(myObj.x);
}
}もし、既存の値が上書きされるのを防ぎたい場合は、属性を final として宣言します。
例:
public class Main {
final int x = 10;
public static void main(String[] args) {
Main myObj = new Main();
myObj.x = 25; // エラーが発生します:final変数に値を代入することはできません
System.out.println(myObj.x);
}
}final キーワードは、円周率(PI = 3.14159...)のように、変数に常に同じ値を保持させたい場合に非常に有用です。
なお、この final キーワードは「修飾子(Modifier)」と呼ばれます。これについては「Java修飾子」の章で詳しく学びます。
4. 複数のオブジェクト
一つのクラスから複数のオブジェクトを作成した場合、一方のオブジェクトの属性値を変更しても、もう一方のオブジェクトの属性値には影響を与えません。
例:myObj2 の x の値を 25 に変更し、myObj1 の x はそのままにします。
public class Main {
int x = 5;
public static void main(String[] args) {
Main myObj1 = new Main(); // オブジェクト 1
Main myObj2 = new Main(); // オブジェクト 2
myObj2.x = 25;
System.out.println(myObj1.x); // 出力:5
System.out.println(myObj2.x); // 出力:25
}
}5. 複数の属性
属性は、必要に応じていくつでも指定することができます。
例:
public class Main {
String fname = "John";
String lname = "Doe";
int age = 24;
public static void main(String[] args) {
Main myObj = new Main();
System.out.println("名前: " + myObj.fname + " " + myObj.lname);
System.out.println("年齢: " + myObj.age);
}
}