JAVA学習の記録②【クラスのフィールド】
前回までの学びJAVA学習の記録① 【オブジェクト指向の概要】
フィールドについて
フィールドとは、インスタンスにデータを記録するための変数のこと。
例えば、犬を表すDogクラスでいうと、犬の名前や年齢、何を食べるかなど犬に関する情報を記録する変数がフィールド。実体(インスタンス)にデータを記録する。
フィールドの定義
String name;
型 フィールド名
フィールドの定義は、変数の宣言とまったく同じ。
違いは、定義する場所
フィールドの定義は、クラスのブロック内でそのクラスに定義されているすべてのメソッドから利用できる。
変数の宣言は、メソッドのブロック内で変数を宣言したメソッド内でのみ利用できる
フィールドにアクセスする方法
同じクラスに宣言されているフィールドにアクセス場合は、フィールド名=値
他のクラスからフィールドにアクセスする場合は、インスタンスの変数名.フィールド名=値と記述する。
public class Dog {
String name; //フィールド定義
boolean hungry; //フィールド定義
void someMehod(){
name = "ポチ" //nameフィールドに"ポチを代入"
Sytem.out.println(name); //nameフィールドに代入された値を表示
}
}
public class UseDog {
public static void main(String[] args) {
Dog pochi = new Dog(); //Dogクラスの型のインスタンスを生成して変数pochiに代入
pochi.name = "ポチ"; //pochiインスタンスのnameフィールドに"ポチ"を代入
Dog ken = new Dog(); //Dogクラス型のインスタンを生成して変数kenに代入
ken.name ="ケン"; //kenインスタンスのnameフィールドに"ケン"を代入
System.out.println(pochi.name); //pochiインスタンスのnameフィールドに入っている値を表示
System.out.println(ken.name); //kenインスタンスのnameフィールドに入っている値を表示
}
}
このように同じクラス内に定義されているフィールドにアクセスするのか、他のクラスからフィールドにアクセスするのかで代入方法が異なります。また、フィールドは、インスタンスごとに保持されるもの。上の例では、Dogクラス型のインスタンスを2つ(pochiとken)生成し、それぞれのnameフィールドに値を代入しました。
参考文献
「いちばんやさしいJAVAの教本」著者 石井真