【Java】getterとsetterを呼び出してみる
getterとsetterとは
getterもsetterもメソッドです。 フィールドは(多分ほとんどが)privateの修飾子になっていると思います。
他の場所からアクセスされるのを防ぐためですね。
その為、他のクラスから呼び出したり(使ったり)する時にエラーが生じてきます。
そこで、他のクラスから呼び出す為にgetterメソッドとsetterメソッドを使用することになります。
書き方
getterメソッド
public フィールドの型 getフィールド名() { return this.フィールド名; }
returnがついています
setterメソッド
public void setフィールド名(フィールドの型 任意の変数名) { this.フィールド名 = 任意の変数名; }
voidがついています
呼び出して使ってみる
まずはgetterもsetterも書いていない状態です
class Main { public static void main(String[] args) { Car car = new Car(); car.work(); } }
class Car { Tanku tanku = new Tanku(); public void work(){ System.out.println(tanku.gas); } }
public class Tanku { private int gas = 10; }
Tankuクラスのgasを表示しようとしてもエラーが表示されます
実行結果
>gas は Tanku でprivate アクセスされます
まずgetterを使い表示させます
・Mainクラスは上と同じ
class Car { Tanku tanku = new Tanku(); public void work(){ System.out.println(tanku.getGas()); } }
public class Tanku { private int gas = 10; public int getGas(){ return this.gas; } }
TankクラスにgetGasメソッドを作ります。
CarクラスでgetGasメソッドを実行し値を表示させます。
実行結果
>10
表示できました
setterを使い値を書き換える
・Mainクラスは上と同じ
class Car { Tanku tanku = new Tanku(); public void work(){ int addGas = 20; car.setGas(addGas); System.out.println(tanku.getGas()); } }
public class Tanku { private int gas = 10; public int getGas(){ return this.gas; } public void setGas(int gas){ this.gas = gas; } }
実行結果
>20
値を書き換えることができました
値を足す
・Mainクラス、Carクラスは上と同じ setterのメソッド名をaddGasとします
public class Tanku { private int gas = 10; public int getGas(){ return this.gas; } public void addGas(int addGas){ this.gas = gas + addGas; } }
実行結果
>30
値を足すことができました!
あとがき
初めは定石という言葉に惑わされていましたが・・・
それでもメソッドなんですよね。
getterは値を引っ張ってくるメソッド
setterは値を代入するメソッド
setterは値を代入するメソッド
メソッドであることをちゃんと頭に入れていたいと思います。