カテゴリ: Javaのカプセル化 更新日: 2026/02/26

Javaのgetterメソッドとsetterメソッドの使い方を完全ガイド!初心者でもわかるアクセス方法

142
Java の getter メソッドと setter メソッドの使い方

先生と生徒の会話形式で理解しよう

生徒

「Javaでprivateフィールドを守りながら、外からデータを読み取ったり書き換えたりする方法ってありますか?」

先生

「いいですね!そのために使うのが、getterメソッドsetterメソッドなんです。」

生徒

「getterメソッドとsetterメソッドって、具体的にはどういうものですか?」

先生

「実際にコード例を交えながら、Javaのgetterメソッドとsetterメソッドの基本から応用までしっかり見ていきましょう!」

1. getterメソッドとsetterメソッドとは?

1. getterメソッドとsetterメソッドとは?
1. getterメソッドとsetterメソッドとは?

Javaでは、クラスの中にあるprivateフィールドを外から直接いじれないようにして、情報を安全に守る仕組みがあります。ですが、privateにすると外から値を取り出したり入れたりできなくなってしまいますよね。そこで登場するのがgetterメソッドsetterメソッドです。

getterメソッドは、privateフィールドの値を外から読み取るためのメソッドです。例えば名前を読み取りたいときに使います。

setterメソッドは、privateフィールドに新しい値を設定するときに使います。例えば年齢を新しく入れたいときに使います。

このように、getterメソッドsetterメソッドを作ることで、privateで守ったフィールドを外から安全に使えるようにすることができます。

2. getterメソッドの基本的な使い方

2. getterメソッドの基本的な使い方
2. getterメソッドの基本的な使い方

まず、getterメソッドの書き方を見ていきましょう。getterメソッドは、getという言葉を使って名前をつけるのが基本の形です。例えば、名前を取り出す場合はgetNameというメソッドを作ります。

下のコードは、privateフィールドのnameを外から読み取るためのgetterメソッドの例です。


public String getName() {
    return name;
}

このメソッドはnameの中身を外に返してくれます。とてもシンプルですが、プログラムの安全性を高めるためにとても重要な役割をしています。

3. setterメソッドの基本的な使い方

3. setterメソッドの基本的な使い方
3. setterメソッドの基本的な使い方

次に、setterメソッドの書き方です。setterメソッドは、setという言葉を使って名前をつけるのが基本です。例えば、名前を新しく入れる場合はsetNameというメソッドにします。

下のコードは、nameに新しい値を入れるためのsetterメソッドの例です。


public void setName(String newName) {
    name = newName;
}

このメソッドを使うことで、外のプログラムからnameに値を安全に入れることができます。直接アクセスするのではなく、必ずこのsetterメソッドを通すので、プログラムが間違った動きをしにくくなります。

Javaをこれから始める人や、 オブジェクト指向の考え方を基礎から理解したい人には、 定番の入門書がこちらです。

スッキリわかるJava入門 第4版をAmazonで見る

※ Amazon広告リンク

4. getterメソッドとsetterメソッドを使ったサンプルプログラム

4. getterメソッドとsetterメソッドを使ったサンプルプログラム
4. getterメソッドとsetterメソッドを使ったサンプルプログラム

それでは、getterメソッドとsetterメソッドを使って、pleiadesの開発環境で試せる簡単なサンプルプログラムを紹介します。


// Person.java
public class Person {
    private String name;
    private int age;

    public String getName() {
        return name;
    }

    public void setName(String newName) {
        name = newName;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int newAge) {
        if (newAge >= 0) {
            age = newAge;
        } else {
            System.out.println("年齢は0以上にしてください。");
        }
    }
}

// Main.java
public class Main {
    public static void main(String[] args) {
        Person person = new Person();

        person.setName("さくら");
        person.setAge(20);

        System.out.println("名前: " + person.getName());
        System.out.println("年齢: " + person.getAge());

        person.setAge(-3);
    }
}

このプログラムをpleiadesで実行すると、getterメソッドとsetterメソッドの動きを実際に確認できます。

実行結果は以下のようになります。


名前: さくら
年齢: 20
年齢は0以上にしてください。

このように、getterメソッドで値を読み取り、setterメソッドで新しい値を入れる仕組みがよくわかります。setterメソッドの中で条件を付けて、間違った値が入らないようにしているのもポイントです。

5. getterメソッドとsetterメソッドの応用例

5. getterメソッドとsetterメソッドの応用例
5. getterメソッドとsetterメソッドの応用例

getterメソッドとsetterメソッドは、実はとても柔軟に使えます。例えば、getterメソッドの中で値を加工して返すこともできます。名前の先頭だけ大文字にして返す、というような工夫です。


public String getName() {
    if (name == null || name.isEmpty()) {
        return "";
    }
    return name.substring(0, 1).toUpperCase() + name.substring(1);
}

また、setterメソッドの中で値の確認だけでなく、ログを出力するなど、さまざまな工夫ができます。これが、getterメソッドsetterメソッドの大きなメリットです。

6. getterメソッドとsetterメソッドを使うメリット

6. getterメソッドとsetterメソッドを使うメリット
6. getterメソッドとsetterメソッドを使うメリット

ここまで見てきたように、Javaのgetterメソッドsetterメソッドを使うことで、privateで守ったフィールドを安全に外から使うことができます。それにより、データの間違った書き換えを防ぐことができます。

さらに、どのようなデータを外に見せたいか、どのように値を入れたいかを考えながら作れるので、プログラムがわかりやすく整理されます

特に大きなプロジェクトでは、プログラムを後から直すときや別の人が読むときに、getterメソッドsetterメソッドのおかげでとてもスムーズになります。

初心者のうちは「こんなにメソッドを作る必要があるの?」と思うかもしれません。でも、pleiadesなどで練習していくうちに、その大切さがわかってきます。

これからもprivateでフィールドを守りながら、getterメソッドsetterメソッドをしっかり使えるようにしていきましょう。

まとめ

まとめ
まとめ

Javaのgetterメソッドsetterメソッドは、private修飾子で守られたフィールドに安全にアクセスするための基本中の基本です。特に初心者にとって、直接フィールドを操作できない理由や、その代わりにメソッドを通して値を読み書きする意味は、最初は少しとっつきにくいかもしれません。しかし、実際にgetName()setAge()のようなコードに触れていくことで、その意義と便利さを自然と理解できるようになります。

プログラムの設計において、データの保護(カプセル化)はとても重要です。たとえば、名前が空のまま返されないようにしたり、年齢がマイナスの値にならないようにチェックを加えたりすることで、プログラムの信頼性が大きく向上します。こうした工夫は、setterメソッドgetterメソッドの中で実装するのが一般的です。

また、getterメソッドでは単純に値を返すだけでなく、必要に応じて値を加工することも可能です。例えば、先頭の文字を大文字にする処理などが挙げられます。これにより、フィールドそのものの値を変更せずに、見た目だけを整えるような柔軟な対応もできます。

一方で、setterメソッドの中では、値の妥当性を確認したり、条件に応じてログを出したりすることもできます。これは、Javaの設計力を身につける上でとても有効な手段です。

さらに、pleiadesなどのJava開発環境を使って自分でコードを書き、実行しながら学ぶことで、理解が一気に深まります。以下は、今回の学びをもとに改めて整理したサンプルコードです。


// サンプルクラス
public class Student {
    private String name;
    private int score;

    public String getName() {
        if (name == null || name.isEmpty()) {
            return "名無し";
        }
        return name.substring(0, 1).toUpperCase() + name.substring(1);
    }

    public void setName(String newName) {
        if (newName != null && !newName.trim().isEmpty()) {
            name = newName.trim();
        } else {
            System.out.println("名前を正しく入力してください。");
        }
    }

    public int getScore() {
        return score;
    }

    public void setScore(int newScore) {
        if (newScore >= 0 && newScore <= 100) {
            score = newScore;
        } else {
            System.out.println("スコアは0から100の間にしてください。");
        }
    }
}

このように、実際のコードでgetterとsetterを使い分けながら、データを保護しつつ、正しく扱う技術を身につけていきましょう。Javaのオブジェクト指向プログラミングにおける基礎力がしっかりついてくるはずです。

Javaのgetterメソッドsetterメソッドは、シンプルながら強力な道具です。クラス設計においてはもちろん、テストやデバッグ、コードの保守など、さまざまな場面で活躍します。ぜひ積極的に使いながら、自然と身につけていってください。

先生と生徒の振り返り会話

生徒

「getterメソッドとsetterメソッドの役割がよくわかりました!値を読み書きするだけじゃなくて、チェックや加工もできるんですね。」

先生

「そうですね。フィールドの中身をそのまま外に出すのではなく、条件を加えたり、安全性を保つための工夫ができます。」

生徒

「今度からはprivateにして、getterとsetterでしっかり管理するようにしてみます!」

先生

「それがとても大切です。プログラム全体の品質を高める第一歩ですよ。pleiadesでどんどん試してみてくださいね。」

この記事を読んだ人からの質問

この記事を読んだ人からの質問
この記事を読んだ人からの質問

プログラミング初心者からのよくある疑問/質問を解決します

Javaのgetterメソッドとは何ですか?初心者でもわかる使い方を教えてください。

getterメソッドとは、Javaでprivateフィールドの値を外部から読み取るためのメソッドです。メソッド名は通常「get + フィールド名」で定義され、カプセル化されたデータを安全に取得できます。

setterメソッドは何のために使うのですか?Javaのsetterメソッドの基本が知りたいです。

setterメソッドは、Javaでprivateに設定されたフィールドに新しい値を代入するためのメソッドです。メソッド名は「set + フィールド名」で作り、値を安全に更新する際に使います。

Javaでprivateフィールドに直接アクセスできない理由は何ですか?

Javaではカプセル化の原則により、privateフィールドへの直接アクセスは禁止されています。これはデータの保護や誤った操作の防止のためで、代わりにgetterやsetterを使って制御されたアクセスを行います。
Javaのカプセル化の一覧へ
新着記事
Java
Java のカプセル化とは?データを安全に管理する仕組み
Java のカプセル化とは?データを安全に管理する仕組みを解説
Java
Java の継承の制約(final クラスや final メソッドの扱い)
Java の継承の制約を完全解説!final クラスや final メソッドの扱いを初心者向けにやさしく解説
AWS
【AWS】CLIで環境変数を使った安全な認証情報管理
【AWS CLI】環境変数で安全に認証情報を管理する方法を徹底解説!初心者向けセキュリティ対策ガイド
Java
Java のコンストラクタと継承(親クラスのコンストラクタを呼ぶ方法)
Java のコンストラクタと継承(親クラスのコンストラクタを呼ぶ方法)を初心者向けにやさしく解説
人気記事
AWS
【AWS】s3 cpコマンド完全ガイド!基本・recursive・exclude/includeも解説
【AWS】s3 cpコマンド完全ガイド!基本・recursive・exclude/includeも解説
AWS
【AWS】VPCエンドポイントとは?種類・使い方・S3連携まで完全解説
【AWS】VPCエンドポイントとは?種類・使い方・S3連携まで完全解説
AWS
インスタンスタイプの料金比較と最適な選び方(最新2026年版)
AWSインスタンスタイプの料金比較と最適な選び方!初心者でもわかる2025年最新ガイド
AWS
【AWS】RDSの料金体系まとめ!ざっくり理解・高いと感じる理由も解説
【AWS】RDSの料金体系まとめ!ざっくり理解・高いと感じる理由も解説

🔌 USBポート不足を解消

Type-C 1本で拡張。
開発・作業環境を一気に快適に

UGREEN USB-Cハブを見る

※ Amazon広告リンク