/** * ドメイン非依存URL出力フィルタ * javadrill.tech移行時はwp_options.home/siteurlのみ変更すればよい * * データベースには絶対URL(https://minner.asia)を保持し、 * 表示時に現在のドメイン(home_url())に動的変換する */ function javadrill_make_urls_dynamic($content) { if (empty($content)) { return $content; } // データベース内の絶対URLを現在のhome_url()に置換 $old_url = 'https://minner.asia'; $new_url = untrailingslashit(home_url()); // http版も対応(念のため) $content = str_replace($old_url, $new_url, $content); $content = str_replace('http://minner.asia', $new_url, $content); return $content; } // 投稿本文、ウィジェット、タームの説明、抜粋に適用 add_filter('the_content', 'javadrill_make_urls_dynamic', 20); add_filter('widget_text', 'javadrill_make_urls_dynamic', 20); add_filter('term_description', 'javadrill_make_urls_dynamic', 20); add_filter('get_the_excerpt', 'javadrill_make_urls_dynamic', 20); 012 staticメンバ | Javaドリル https://minner.asia 楽々学べるJavaの問題集 Fri, 05 Sep 2025 02:16:22 +0000 ja hourly 1 https://wordpress.org/?v=6.8.3 https://minner.asia/wp-content/uploads/2023/10/cropped-logo-32x32.png 012 staticメンバ | Javaドリル https://minner.asia 32 32 012 staticメンバ(staticメソッド) 005 解答例 https://minner.asia/archives/2799 https://minner.asia/archives/2799#respond Sun, 26 Nov 2023 01:59:28 +0000 http://localhost/?p=2799
public class InstanceCounter {
    // static変数 - 生成されたインスタンスの数を保持
    private static int instanceCount = 0;

    // インスタンス変数 - 各インスタンスが持つ値(この問題では使用しない)
    private int value;

    // コンストラクタ - インスタンスが生成されるたびにインスタンスカウントをインクリメント
    public InstanceCounter() {
        instanceCount++;
    }

    // staticメソッド - 生成されたインスタンスの数を取得する
    public static int getInstanceCount() {
        return instanceCount;
    }

    public static void main(String[] args) {
        // テスト
        InstanceCounter instance1 = new InstanceCounter();
        InstanceCounter instance2 = new InstanceCounter();
        InstanceCounter instance3 = new InstanceCounter();

        // staticメソッドを使用して生成されたインスタンスの数を取得
        System.out.println("Number of instances created: " + InstanceCounter.getInstanceCount());
    }
}

この解答例では、InstanceCounterクラスが生成されるたびにstatic変数であるinstanceCountがインクリメントされます。getInstanceCountメソッドを通じて、生成されたインスタンスの数を取得することができます。mainメソッドでは、3つのインスタンスを生成し、生成されたインスタンスの数を出力しています。

「012 staticメンバ」問題集リスト

🎯 実習で理解を深めよう

この内容についてJavaDrillで実際に手を動かして学習できます

]]>
https://minner.asia/archives/2799/feed 0
012 staticメンバ(staticメソッド) 005 問題 https://minner.asia/archives/2797 https://minner.asia/archives/2797#respond Sun, 26 Nov 2023 01:57:40 +0000 http://localhost/?p=2797

問題

インスタンスの数を管理するJavaのクラスを作成してください。このクラスには、以下のstaticメソッドが含まれます。

public class InstanceCounter {
    // TODO: staticメソッド - 生成されたインスタンスの総数を取得するメソッド
}

このメソッドは、クラス内で生成されたインスタンスの数を返すようにします。staticメソッドを使用して異なるインスタンスが生成されるたびに正しくカウントされることを確認してください。

ヒント

  1. InstanceCounterクラスの構造:
    • InstanceCounterクラスには、static変数を使用して生成されたインスタンスの数をカウントするための変数が必要です。
  2. static変数の利用:
    • static変数はクラス全体で1つの値を共有します。この特性を利用して、クラスが生成されるたびにその数をインクリメントします。
  3. staticメソッドの実装:
    • staticメソッドを作成して、生成されたインスタンスの数を取得できるようにします。
    • このメソッドは、static変数にアクセスしてその値を返すように実装します。
  4. コンストラクタの利用:
    • インスタンスが生成されるたびに、コンストラクタ内でstatic変数をインクリメントするようにします。

これらのヒントを基にして、InstanceCounterクラスを実装してみてください。

→解答例

「012 staticメンバ」問題集リスト

🎯 実習で理解を深めよう

この内容についてJavaDrillで実際に手を動かして学習できます

]]>
https://minner.asia/archives/2797/feed 0
012 staticメンバ(staticメソッド) 004 解答例 https://minner.asia/archives/2792 https://minner.asia/archives/2792#respond Sun, 26 Nov 2023 01:55:02 +0000 http://localhost/?p=2792
public class StringUtils {
    // staticメソッド - 与えられた文字列が回文かどうかを判定するメソッド
    public static boolean isPalindrome(String str) {
        // 入力文字列から非アルファベット文字を削除し、小文字に変換
        str = str.replaceAll("[^a-zA-Z0-9]", "").toLowerCase();
        
        // 文字列を前後から比較して回文か判定
        int left = 0;
        int right = str.length() - 1;
        while (left < right) {
            if (str.charAt(left) != str.charAt(right)) {
                return false;
            }
            left++;
            right--;
        }
        return true;
    }

    // staticメソッド - 与えられた文字列を逆さまにするメソッド
    public static String reverseString(String str) {
        // 文字列を逆順にして新しい文字列を生成
        StringBuilder reversed = new StringBuilder();
        for (int i = str.length() - 1; i >= 0; i--) {
            reversed.append(str.charAt(i));
        }
        return reversed.toString();
    }

    // staticメソッド - 与えられた文字列内で指定された文字が出現する回数を数えるメソッド
    public static int countOccurrences(String str, char target) {
        // 文字列内で指定された文字が出現する回数をカウント
        int count = 0;
        for (char ch : str.toCharArray()) {
            if (ch == target) {
                count++;
            }
        }
        return count;
    }

    public static void main(String[] args) {
        // テスト
        String palindromeTest = "A man, a plan, a canal, Panama!";
        System.out.println("Is \"" + palindromeTest + "\" a palindrome? " + isPalindrome(palindromeTest));

        String reverseTest = "Hello, World!";
        System.out.println("Reversed \"" + reverseTest + "\": " + reverseString(reverseTest));

        String countTest = "Programming is fun!";
        char targetChar = 'g';
        System.out.println("Occurrences of '" + targetChar + "' in \"" + countTest + "\": " + countOccurrences(countTest, targetChar));
    }
}

この解答例では、StringUtilsクラスに3つの静的メソッドが含まれています。それぞれが回文判定、文字列逆転、文字の出現回数のカウントを行います。mainメソッドではこれらのメソッドをテストしています。

「012 staticメンバ」問題集リスト

🎯 実習で理解を深めよう

この内容についてJavaDrillで実際に手を動かして学習できます

]]>
https://minner.asia/archives/2792/feed 0
012 staticメンバ(staticメソッド) 004 問題 https://minner.asia/archives/2790 https://minner.asia/archives/2790#respond Sun, 26 Nov 2023 01:52:24 +0000 http://localhost/?p=2790

問題

文字列処理を行うJavaのユーティリティクラスを作成してください。このクラスには、以下のstaticメソッドが含まれます。

public class StringUtils {
    // TODO: staticメソッド - 与えられた文字列が回文かどうかを判定するメソッド

    // TODO: staticメソッド - 与えられた文字列を逆さまにするメソッド

    // TODO: staticメソッド - 与えられた文字列内で指定された文字が出現する回数を数えるメソッド
}

これらのstaticメソッドを実装し、クラスを使用して異なる文字列に対して動作をテストしてみてください。

ヒント

  1. isPalindromeメソッド:
    • 回文は前から読んでも後ろから読んでも同じ言葉や文です。
    • isPalindromeメソッド内で、与えられた文字列が回文かどうかを判定するロジックを実装します。
  2. reverseStringメソッド:
    • 文字列を逆さまにするメソッドです。
    • reverseStringメソッド内で、与えられた文字列を逆さまにするロジックを実装します。
  3. countOccurrencesメソッド:
    • 与えられた文字列内で指定された文字が出現する回数を数えるメソッドです。
    • countOccurrencesメソッド内で、指定された文字が文字列内で何回出現するかを数えるロジックを実装します。

これらのヒントを元に、StringUtilsクラスを実装してみてください。

→解答例

「012 staticメンバ」問題集リスト

🎯 実習で理解を深めよう

この内容についてJavaDrillで実際に手を動かして学習できます

]]>
https://minner.asia/archives/2790/feed 0
012 staticメンバ(staticメソッド) 003 解答例 https://minner.asia/archives/2784 https://minner.asia/archives/2784#respond Sun, 26 Nov 2023 01:44:58 +0000 http://localhost/?p=2784
public class MathUtils {
    // staticメソッド - 与えられた数が素数かどうかを判定するメソッド
    public static boolean isPrime(int number) {
        if (number <= 1) {
            return false;
        }
        for (int i = 2; i <= Math.sqrt(number); i++) {
            if (number % i == 0) {
                return false;
            }
        }
        return true;
    }

    // staticメソッド - 与えられた数の階乗を計算するメソッド
    public static int factorial(int number) {
        if (number == 0 || number == 1) {
            return 1;
        }
        return number * factorial(number - 1);
    }

    // staticメソッド - 与えられた数がフィボナッチ数列に含まれるかどうかを判定するメソッド
    public static boolean isInFibonacciSequence(int number) {
        if (number < 0) {
            return false;
        }
        int a = 0, b = 1;
        while (a <= number) {
            if (a == number) {
                return true;
            }
            int temp = a + b;
            a = b;
            b = temp;
        }
        return false;
    }
}

この解答例では、MathUtilsクラスに3つのstaticメソッドを実装しました。それぞれが素数判定、階乗計算、およびフィボナッチ数列の判定を行います。これらのメソッドを使用して異なる数値に対して動作をテストしてみてください。

参考:SimpleDataFormatクラス

staticメソッド

staticメソッドは、Javaプログラミング言語においてクラスレベルで定義されるメソッドであり、特定のインスタンスに紐付かない形で呼び出されます。以下に、staticメソッドに関する主な特徴と解説を示します。

  1. インスタンス不要:
    • staticメソッドは特定のインスタンスに紐付かないため、クラスのインスタンスを生成せずに呼び出せます。
    • 例: ClassName.staticMethod();
  2. クラスメソッド:
    • staticメソッドは通常、クラス自体に属するクラスメソッドとして宣言されます。
    • インスタンスメソッドとは異なり、オブジェクトの生成なしにクラス名を使用して直接アクセスできます。
  3. インスタンス変数にアクセスできない:
    • staticメソッド内では、同じクラス内のstaticメソッドやstatic変数にはアクセスできますが、通常のインスタンス変数やメソッドにはアクセスできません。
    • thisキーワードを使用できません。
  4. 非staticメンバにアクセスできない:
    • staticメソッド内では、thisを使って自分自身のインスタンスを参照することはできません。
    • thisはインスタンスメソッド内でのみ有効です。
  5. メモリ効率:
    • staticメソッドはオブジェクトの生成なしに呼び出せるため、インスタンスに依存しない処理や、共通の処理を提供するのに適しています。
  6. クラスロード時に初期化:
    • staticメソッドやstatic変数はクラスがロードされる際に初期化されます。
    • クラスが初めて使われる瞬間に1回だけ初期化され、その後は再初期化されません。
  7. static import:
    • staticメソッドはimport static文を使用して、クラス名を省略して直接メソッドを呼び出すことができます。

以下は、staticメソッドの例です。

public class ExampleClass {
    // staticメソッド
    public static void staticMethod() {
        System.out.println("This is a static method.");
    }

    // クラスメソッドからstaticメソッドの呼び出し
    public static void main(String[] args) {
        staticMethod();  // 直接クラス名を使用してstaticメソッドを呼び出す
        ExampleClass.staticMethod();  // 同じ結果を得るためにクラス名を指定しても可
    }
}

staticメソッドは、特定のオブジェクトの状態に依存せず、共通の処理を提供する際に有用です。

staticメソッドの応用:ユーティリティクラス

staticメソッドの応用の一例として、ユーティリティクラスが挙げられます。ユーティリティクラスは、共通の機能や処理を提供するためのクラスであり、その中でstaticメソッドが頻繁に使用されます。

以下は、ユーティリティクラスの例として、日付操作に関するDateUtilsクラスを考えてみましょう。

import java.text.SimpleDateFormat;
import java.util.Date;

public class DateUtils {
    // インスタンス化を防ぐためにprivateなコンストラクタを持つ(ユーティリティクラスの慣習)
    private DateUtils() {
        // インスタンス生成を防ぐ
    }

    // staticメソッド - 現在の日付を指定されたフォーマットで取得する
    public static String getCurrentDate(String format) {
        SimpleDateFormat sdf = new SimpleDateFormat(format);
        return sdf.format(new Date());
    }

    // staticメソッド - 2つの日付の差を日単位で取得する
    public static long getDaysDifference(Date date1, Date date2) {
        long difference = date2.getTime() - date1.getTime();
        return difference / (1000 * 60 * 60 * 24);
    }
}

このDateUtilsクラスは、インスタンスを生成せずに利用できるようにstaticメソッドを提供しています。具体的な使い方は以下の通りです。

public class Main {
    public static void main(String[] args) {
        // staticメソッドを使用して現在の日付を取得
        String currentDate = DateUtils.getCurrentDate("yyyy-MM-dd HH:mm:ss");
        System.out.println("Current Date: " + currentDate);

        // staticメソッドを使用して2つの日付の差を取得
        Date date1 = new Date();
        Date date2 = new Date(System.currentTimeMillis() + (1000 * 60 * 60 * 24 * 5)); // 5日後の日付
        long daysDifference = DateUtils.getDaysDifference(date1, date2);
        System.out.println("Days Difference: " + daysDifference);
    }
}

この例では、DateUtilsクラスがユーティリティメソッドを提供し、これらのメソッドを利用することで、日付に関する一般的な処理を実現しています。ユーティリティクラスは一般的にstaticメソッドを多く含むため、staticメソッドの応用として非常に一般的です。

「012 staticメンバ」問題集リスト

🎯 実習で理解を深めよう

この内容についてJavaDrillで実際に手を動かして学習できます

]]>
https://minner.asia/archives/2784/feed 0
012 staticメンバ(staticメソッド) 003 問題 https://minner.asia/archives/2781 https://minner.asia/archives/2781#respond Sun, 26 Nov 2023 01:39:12 +0000 http://localhost/?p=2781

問題

数学的な演算を提供するJavaのユーティリティクラスを作成してください。このクラスには、以下のstaticメソッドが含まれます。

public class MathUtils {
    // TODO: staticメソッド - 与えられた数が素数かどうかを判定するメソッド

    // TODO: staticメソッド - 与えられた数の階乗を計算するメソッド

    // TODO: staticメソッド - 与えられた数がフィボナッチ数列に含まれるかどうかを判定するメソッド
}

これらのstaticメソッドを実装し、クラスを使用して異なる数値に対して動作をテストしてみてください。

ヒント

  1. 素数判定メソッド:
    • 素数は1とその数自体以外に約数を持たない数です。
    • 2からその数の平方根までの範囲の数で割り切れるかどうかを調べることで、素数かどうかを判定できます。
  2. 階乗計算メソッド:
    • 階乗はその数から1までの全ての正整数を掛けたものです。
    • 例えば、5の階乗は5 × 4 × 3 × 2 × 1です。
  3. フィボナッチ数判定メソッド:
    • フィボナッチ数列は前の2つの数の和が次の数になる数列です。
    • 例えば、0, 1, 1, 2, 3, 5, 8, 13, …と続きます。
    • 与えられた数がフィボナッチ数列に含まれるかどうかを判定するには、その数が平方根からなるべく近い整数でフィボナッチ数列の数に近づくかどうかを調べます。

→解答例

「012 staticメンバ」問題集リスト

🎯 実習で理解を深めよう

この内容についてJavaDrillで実際に手を動かして学習できます

]]>
https://minner.asia/archives/2781/feed 0
012 staticメンバ(static変数) 002 解答例 https://minner.asia/archives/2774 https://minner.asia/archives/2774#respond Sun, 26 Nov 2023 01:32:22 +0000 http://localhost/?p=2774
public class Countdown {
    // static変数 - カウントダウンの初期値を表す変数
    private static int initialValue;

    // インスタンス変数 - カウントダウンの現在の値を表す変数
    private int currentValue;

    // コンストラクタ - インスタンス変数の初期化
    public Countdown() {
        // カウントダウンの初期値を代入し、現在の値を初期化
        this.currentValue = initialValue;
    }

    // インスタンスメソッド - カウントダウンを実行するメソッド
    public void performCountdown() {
        if (currentValue > 0) {
            currentValue--;
            System.out.println("Countdown: " + currentValue);
        } else {
            System.out.println("Countdown reached zero.");
        }
    }

    // クラスメソッド - カウントダウンの初期値を設定するメソッド
    public static void setInitialValue(int value) {
        initialValue = value;
    }

    // クラスメソッド - カウントダウンの初期値を取得するメソッド
    public static int getInitialValue() {
        return initialValue;
    }

    public static void main(String[] args) {
        // テスト
        Countdown.setInitialValue(5);

        Countdown counter1 = new Countdown();
        counter1.performCountdown();
        counter1.performCountdown();

        Countdown counter2 = new Countdown();
        counter2.performCountdown();
    }
}

このクラスを使って、mainメソッド内でテストが行われています。setInitialValueメソッドで初期値を設定し、各インスタンスでperformCountdownメソッドを呼び出すことで、正しくカウントダウンが行われることを確認できます。

「012 staticメンバ」問題集リスト

🎯 実習で理解を深めよう

この内容についてJavaDrillで実際に手を動かして学習できます

]]>
https://minner.asia/archives/2774/feed 0
012 staticメンバ(static変数) 002 問題 https://minner.asia/archives/2772 https://minner.asia/archives/2772#respond Sun, 26 Nov 2023 01:30:26 +0000 http://localhost/?p=2772

問題

カウントダウンを表すJavaクラスを作成してください。このクラスには、カウントダウンの初期値を保持するstatic変数と、カウントダウンを実行するインスタンスメソッドが含まれます。

public class Countdown {
    // TODO: static変数 - カウントダウンの初期値を表す変数

    // TODO: インスタンス変数 - カウントダウンの現在の値を表す変数

    // TODO: コンストラクタ - インスタンス変数の初期化

    // TODO: インスタンスメソッド - カウントダウンを実行するメソッド
}

このクラスを使用して、異なるインスタンスでカウントダウンを実行し、正しく初期値から減少していくことを確認してください。

ヒント

  1. Countdownクラスには、static変数 initialValue と、インスタンス変数 currentValue を用意します。これらの変数は、それぞれカウントダウンの初期値と、現在のカウントダウンの値を表します。
  2. コンストラクタ内で、initialValue を currentValue に代入して初期化します。これにより、インスタンスごとに初期値が保持されます。
  3. インスタンスメソッドを作成し、そのメソッド内で currentValue をデクリメントするような処理を組み込みます。これがカウントダウンの動作です。
  4. クラス全体で共有される初期値(initialValue)と、各インスタンスごとの現在の値(currentValue)を区別できるようにします。

これらのヒントを元に、Countdownクラスを実装してみてください。

→解答例

「012 staticメンバ」問題集リスト

🎯 実習で理解を深めよう

この内容についてJavaDrillで実際に手を動かして学習できます

]]>
https://minner.asia/archives/2772/feed 0
012 staticメンバ(static変数) 001 解答例 https://minner.asia/archives/2767 https://minner.asia/archives/2767#respond Sun, 26 Nov 2023 01:26:38 +0000 http://localhost/?p=2767
public class SimpleCounter {
    // static変数 - カウントされた回数を表す変数
    private static int totalCount = 0;

    // インスタンス変数 - インスタンスごとのカウントを表す変数
    private int instanceCount;

    // コンストラクタ - インスタンス変数の初期化
    public SimpleCounter() {
        // 新しいインスタンスが生成されるたびにtotalCountを増やし、instanceCountを初期化
        totalCount++;
        instanceCount = 0;
    }

    // インスタンスメソッド - 新しいインスタンスが生成されるたびにカウントを増やすメソッド
    public void incrementInstanceCount() {
        // インスタンスごとのカウントを増やす
        instanceCount++;
    }

    // クラスメソッド - カウントされた回数を取得するメソッド
    public static int getTotalCount() {
        return totalCount;
    }

    // インスタンスメソッド - インスタンスごとのカウントを取得するメソッド
    public int getInstanceCount() {
        return instanceCount;
    }

    public static void main(String[] args) {
        // テスト
        SimpleCounter counter1 = new SimpleCounter();
        counter1.incrementInstanceCount();

        SimpleCounter counter2 = new SimpleCounter();
        counter2.incrementInstanceCount();
        counter2.incrementInstanceCount();

        System.out.println("Total Count: " + SimpleCounter.getTotalCount()); // 2
        System.out.println("Counter 1 Instance Count: " + counter1.getInstanceCount()); // 1
        System.out.println("Counter 2 Instance Count: " + counter2.getInstanceCount()); // 2
    }
}

このクラスを使って、mainメソッド内でテストが行われています。各インスタンスが生成されるたびにtotalCountが増え、incrementInstanceCountメソッドが呼ばれるとinstanceCountが増えることが確認できます。

static変数

「static変数」は、Javaにおいてクラスレベルでの変数のことを指します。これは、特定のインスタンスに紐づかず、クラス自体に関連付けられた変数です。以下は、static変数に関する主な特徴と解説です。

  1. クラスレベルの変数:
    • static変数は、クラス全体に1つだけ存在し、全てのインスタンスで共有されます。
    • インスタンスを生成せずにクラス名を使ってアクセスできます。
  2. クラスがロードされるタイミングで初期化:
    • static変数は、クラスがロードされる際に初期化されます。
    • クラスが初めて使われる瞬間に1回だけ初期化され、その後は再初期化されません。
  3. 静的メンバとして宣言:
    • static変数は通常、static修飾子を使用してクラス内で宣言されます。
    • 例: private static int totalCount;
  4. インスタンスを介さずにアクセス:
    • static変数は特定のインスタンスに紐づかないため、インスタンスを生成せずにクラス名を使って直接アクセスできます。
    • 例: ClassName.staticVariable;
  5. 共有データの保存:
    • 複数のインスタンスが同じデータを共有する必要がある場合、static変数を使用することで効果的にデータを共有できます。
  6. 静的メソッドとの組み合わせ:
    • static変数は通常、同じくstaticメソッドと組み合わせて使用され、クラス全体で共有されるデータや機能を提供します。

以下は、簡単な例です。

public class ExampleClass {
    // static変数
    private static int instanceCount = 0;

    // コンストラクタ
    public ExampleClass() {
        instanceCount++;
    }

    // 静的メソッドでstatic変数にアクセス
    public static int getInstanceCount() {
        return instanceCount;
    }
}

この例では、instanceCountはstatic変数として宣言されており、ExampleClassの全てのインスタンスで共有されます。

private変数の応用:定数クラス

private変数を使用して定数を管理するクラスを作成することは、プログラム内で共通の値を効果的に管理する手段の一つです。このアプローチは、定数クラス(Constantsクラス)として知られています。定数クラスには、private変数を使用して定数を宣言し、それに対するアクセスメソッドを提供します。

以下に、private変数を使用した定数クラスの例を示します。

public class Constants {
    // private変数 - 定数を宣言
    private static final int MAX_RETRY_COUNT = 3;
    private static final String DEFAULT_USERNAME = "guest";
    private static final double PI = 3.141592653589793;

    // privateコンストラクタ - インスタンス化を防ぐ
    private Constants() {
        // インスタンス生成を防ぐ
    }

    // アクセスメソッド - MAX_RETRY_COUNTにアクセスするメソッド
    public static int getMaxRetryCount() {
        return MAX_RETRY_COUNT;
    }

    // アクセスメソッド - DEFAULT_USERNAMEにアクセスするメソッド
    public static String getDefaultUsername() {
        return DEFAULT_USERNAME;
    }

    // アクセスメソッド - PIにアクセスするメソッド
    public static double getPI() {
        return PI;
    }
}

このConstantsクラスでは、private変数として3つの定数を宣言しています。これらの変数はstatic修飾子を使用してクラスレベルのものにしています。また、privateコンストラクタを持っているため、このクラスのインスタンス化を防ぎ、常にstaticメソッドを介してアクセスします。

アクセスメソッドを通じて外部からこれらの定数にアクセスできるため、他のクラスからこれらの定数を使いたい場合、クラス内のロジックを知る必要はなく、簡単に値を取得できます。

この定数クラスのパターンは、プロジェクト全体で共通の設定や定数を効果的に管理する際に利用されます。

「012 staticメンバ」問題集リスト

🎯 実習で理解を深めよう

この内容についてJavaDrillで実際に手を動かして学習できます

]]>
https://minner.asia/archives/2767/feed 0
012 staticメンバ(static変数) 001 問題 https://minner.asia/archives/2764 https://minner.asia/archives/2764#respond Sun, 26 Nov 2023 01:20:12 +0000 http://localhost/?p=2764

問題

シンプルなカウンターを表すJavaクラスを作成してください。このクラスには、カウントされた回数を保持するstatic変数と、新しいインスタンスが生成されるたびにカウントを増やすインスタンスメソッドが含まれます。

public class SimpleCounter {
    // TODO: static変数 - カウントされた回数を表す変数

    // TODO: インスタンス変数 - インスタンスごとのカウントを表す変数

    // TODO: コンストラクタ - インスタンス変数の初期化

    // TODO: インスタンスメソッド - 新しいインスタンスが生成されるたびにカウントを増やすメソッド
}

このクラスを使用して、異なるインスタンスが生成されるたびに正しくカウントが増加することを確認してください。

ヒント

  1. SimpleCounterクラスには、static変数 totalCount と、インスタンス変数 instanceCount を用意します。これらの変数は、それぞれクラス全体で共有されるカウントと、各インスタンスごとのカウントを表します。
  2. コンストラクタ内で、新しいインスタンスが生成されるたびに totalCount を増やし、instanceCount を初期化します。
  3. インスタンスメソッド incrementInstanceCount を作成し、このメソッドが呼ばれると instanceCount を増やします。
  4. クラスメソッド getTotalCount を作成し、このメソッドを通じて totalCount を取得できるようにします。

これらのヒントを元に、クラスを実装してみてください。

→解答例

「012 staticメンバ」問題集リスト

🎯 実習で理解を深めよう

この内容についてJavaDrillで実際に手を動かして学習できます

]]>
https://minner.asia/archives/2764/feed 0