13章4

TANIAOKA, Akihiro - May 21 - - Dev Community

Javaプログラムは2つのクラス、TrashCacheTrashを定義しています。これらのクラスはリスト管理の基本的な操作を実装しており、CacheTrashTrashを拡張しています。以下にコードにコメントを追加して説明します。

import java.util.ArrayList;
import java.util.List;

// Trashクラスは文字列のリストを管理する基本クラス
public class Trash {
    // 文字列のリスト
    List<String> list = new ArrayList<>();

    // コンストラクタ:新しい文字列をリストに追加する
    protected Trash(String val) {
        add(val);
    }

    // 文字列がリストに存在するかどうかを常にtrueで返す
    public boolean test(String val) {
        return true;
    }

    // 文字列をリストから削除する
    public void delete(String val) {
        list.remove(val);
    }

    // 文字列をリストに追加する
    public final void add(String val) {
        list.add(val);
    }
}

// CacheTrashクラスはTrashクラスを拡張し、削除された文字列を一時的に保存する
public class CacheTrash extends Trash {
    // 削除された文字列を一時的に保存する変数
    private String tmp = null;

    // コンストラクタ:親クラスのコンストラクタをnullで呼び出す
    public CacheTrash() {
        super(null);
    }

    // 文字列がリストに存在するかどうかをチェックする
    public boolean test(String val) {
        return list.contains(val);
    }

    // 文字列を削除し、一時変数に保存する
    public void delete(String val) {
        this.tmp = val;
    }

    // 一時変数に保存された文字列を親クラスのdeleteメソッドでリストから削除する
    public void flush() {
        super.delete(tmp);
    }
}
Enter fullscreen mode Exit fullscreen mode

クラス Trash

  • list: 文字列のリストを保持する。
  • Trash(String val): コンストラクタで与えられた文字列をリストに追加する。
  • test(String val): 文字列が存在するかをチェックするメソッド(常にtrueを返す)。
  • delete(String val): 文字列をリストから削除する。
  • add(String val): 文字列をリストに追加する。

クラス CacheTrash

  • tmp: 一時的に削除された文字列を保持するための変数。
  • CacheTrash(): コンストラクタで親クラスのコンストラクタをnullで呼び出す。
  • test(String val): 文字列がリストに存在するかをチェックする(list.contains(val)を使用)。
  • delete(String val): 文字列を一時変数に保存する(リストからは削除しない)。
  • flush(): 一時変数に保存された文字列を親クラスのdeleteメソッドでリストから削除する。

このプログラムは基本的なリスト操作を行うクラスと、それを拡張して一時的に削除された文字列を保持するクラスを示しています。

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .