クラスとオブジェクト第26章 / 全26章
フィールドとメソッド
この章で学ぶこと
クラスの「フィールド」と「メソッド」が連携する仕組みを学びましょう。現実の「もの」をプログラムで表現する感覚が身につきます。
「もの」はデータと機能でできている
「人間」をクラスで表すとしたら、こうなります。
| 要素 | 例 |
|---|---|
| フィールド(データ) | 名前、年齢、身長 |
| メソッド(機能) | 歩く、話す、食べる |
フィールドが「状態を記憶する」、メソッドが「状態を変えたり使ったりする」役割を持ちます。
フィールドとメソッドで銀行口座を作る
text
110000円を入金しました。残高:10000円25000円を入金しました。残高:15000円33000円を出金しました。残高:12000円4残高が足りませんjava
1class BankAccount {2 String owner;3 int balance;45 void deposit(int amount) {6 balance += amount;7 System.out.println(amount + "円を入金しました。残高:" + balance + "円");8 }910 void withdraw(int amount) {11 if (balance >= amount) {12 balance -= amount;13 System.out.println(amount + "円を出金しました。残高:" + balance + "円");14 } else {15 System.out.println("残高が足りません");16 }17 }18}1920public class Main {21 public static void main(String[] args) {22 BankAccount account = new BankAccount();23 account.owner = "田中たろう";24 account.balance = 0;2526 account.deposit(10000);27 account.deposit(5000);28 account.withdraw(3000);29 account.withdraw(20000);30 }31}String owner;/int balance;→ フィールド(口座名義と残高を記憶する)void deposit(int amount)→ 入金メソッド。amount円を受け取って残高に足すbalance += amount;→ 残高に入金額を足す(balance = balance + amountの短縮形)void withdraw(int amount)→ 出金メソッド。残高不足なら断るbalanceフィールドをdepositとwithdrawの両方が読み書きしている。フィールドが「状態」、メソッドが「状態を変える機能」という役割分担
ポイント
フィールドはクラスのデータ(状態)、メソッドはクラスの機能(できること)です。フィールドとメソッドが連携することで、現実のものをプログラムで表現できます。
よくあるミス
別のインスタンスのデータを操作してしまう
account.balance と account2.balance は別の値です。どのインスタンスのフィールドやメソッドを操作しているかを意識しましょう。
まとめ
- フィールド:クラスが持つデータ(名前、残高など)
- メソッド:クラスが持つ機能(入金する、出金するなど)
- フィールドとメソッドが連携して「もの」の振る舞いを表現する
- クラス・フィールド・メソッド・インスタンスがJavaの基本的な土台
確認問題
クラスのフィールドとメソッドの組み合わせとして正しい説明はどれですか?