フィールド (属性)
CoddyのJavaジャーニー「オブジェクト指向プログラミング」セクションの一部 — レッスン 6/87。
フィールド(属性)は、クラス内にデータを保持する変数です。これらは通常 private であり、ゲッターおよびセッターメソッドを通じてアクセスされます。
フィールドの宣言
public class Person {
private String name;
private int age;
}ゲッターとセッターの追加
public class Person {
private String name;
private int age;
public String getName() {
return this.name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return this.age;
}
public void setAge(int age) {
if (age >= 0) {
this.age = age;
}
}
}クラスの使用
Person person = new Person();
person.setName("Alice");
person.setAge(25);
System.out.println(person.getName()); // Aliceフィールドを private にすることはカプセル化と呼ばれます。メソッドを通じてアクセスを制御することでデータを保護し、セッターでバリデーション(検証)を追加できるようにします。
チャレンジ
中級プライベートフィールドとゲッターメソッドを持つ BankAccount クラスを作成してください:
- プライベートフィールド:
accountName(String) とbalance(double) - 両方のフィールドを設定するためのコンストラクタ
- 各フィールドのゲッターメソッド
- お金を追加するための
deposit()メソッド - "Success" または "Insufficient funds" を返す
withdraw()メソッド
チートシート
フィールド(属性)は、クラス内にデータを格納する変数です。通常は private に設定され、ゲッター(getter)およびセッター(setter)メソッドを介してアクセスされます。
private フィールドの宣言:
public class Person {
private String name;
private int age;
}ゲッターとセッターの追加:
public class Person {
private String name;
private int age;
public String getName() {
return this.name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return this.age;
}
public void setAge(int age) {
if (age >= 0) {
this.age = age;
}
}
}クラスの使用:
Person person = new Person();
person.setName("Alice");
person.setAge(25);
System.out.println(person.getName()); // Aliceフィールドを private にすることは、カプセル化と呼ばれます。これは、メソッドを介してアクセスを制御することでデータを保護し、セッター内でバリデーション(検証)を追加できるようにします。
自分で試してみよう
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
String name = scanner.nextLine();
double initial = Double.parseDouble(scanner.nextLine());
double deposit = Double.parseDouble(scanner.nextLine());
BankAccount account = new BankAccount(name, initial);
System.out.println("Account: " + account.getAccountName());
System.out.println("Balance: " + account.getBalance());
account.deposit(deposit);
System.out.println("After deposit: " + account.getBalance());
String result = account.withdraw(2000);
System.out.println("Withdraw 2000: " + result);
System.out.println("Final Balance: " + account.getBalance());
}
}このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。
オブジェクト指向プログラミングのすべてのレッスン
4継承
継承の基本 (extends)super キーワードメソッドのオーバーライド (@Override)コンストラクタチェーンObject クラス単一継承と多段階継承なぜ多重継承ができないのかまとめ:従業員の階層構造