Menu
Coddy logo textTech

フィールド (属性)

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 にすることはカプセル化と呼ばれます。メソッドを通じてアクセスを制御することでデータを保護し、セッターでバリデーション(検証)を追加できるようにします。

challenge icon

チャレンジ

中級

プライベートフィールドとゲッターメソッドを持つ 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());
    }
}
quiz icon腕試し

このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。

オブジェクト指向プログラミングのすべてのレッスン