これまでに学んできたJavaの基礎やオブジェクト指向の概念を応用し、実際にJavaプロジェクトを作成していきます。小規模なアプリケーションを構築することで、理論と実践の橋渡しをし、学んだ内容をより深く理解できるようにします。また、コードの書き方やリファクタリング(コードの整理・最適化)の重要性も学び、実践的なコーディングスキルを磨いていきます。
ここでは、基本的なタスク管理アプリケーションを開発します。このアプリケーションは、タスクを追加、表示、完了の設定ができる機能を持ちます。シンプルな構成ですが、オブジェクト指向のクラス設計や、基本的なデータ構造の活用を理解するには十分な規模です。
タスク管理アプリケーションの設計において、最初にクラス構造を考えます。以下のようなクラスを作成し、必要な機能を各クラスに分担します。
Taskクラスは、アプリケーションの中心となる「タスク」を表現します。タスクの名前や説明、タスクが完了しているかどうかの状態などをプロパティとして持たせます。以下のようにクラスの設計を行います。
public class Task {
private String name; // タスク名
private String description; // タスクの説明
private boolean isCompleted; // タスクの状態
// コンストラクタ
public Task(String name, String description) {
this.name = name;
this.description = description;
this.isCompleted = false;
}
// タスク名を取得
public String getName() {
return name;
}
// タスクの説明を取得
public String getDescription() {
return description;
}
// タスクが完了しているかどうかの状態を取得
public boolean isCompleted() {
return isCompleted;
}
// タスクの状態を完了にするメソッド
public void completeTask() {
this.isCompleted = true;
}
// タスクの詳細を表示するメソッド
public String displayTask() {
String status = isCompleted ? "完了" : "未完了";
return name + ": " + description + " [" + status + "]";
}
}
設計のポイント:
isCompleted = false
)とします。completeTask()
)を使い、タスクの状態を変更します。displayTask()
)で、タスク名・説明・状態を見やすい形式で出力します。TaskManagerクラスは、タスクのリストを管理します。リストにタスクを追加、削除、表示、完了済みにする機能を提供します。
import java.util.ArrayList;
import java.util.List;
public class TaskManager {
private List<Task> tasks;
// コンストラクタ
public TaskManager() {
this.tasks = new ArrayList<>();
}
// タスクを追加するメソッド
public void addTask(Task task) {
tasks.add(task);
System.out.println("タスクが追加されました: " + task.getName());
}
// タスクを表示するメソッド
public void displayTasks() {
System.out.println("=== タスク一覧 ===");
for (Task task : tasks) {
System.out.println(task.displayTask());
}
}
// 特定のタスクを完了済みにするメソッド
public void completeTask(String taskName) {
for (Task task : tasks) {
if (task.getName().equals(taskName)) {
task.completeTask();
System.out.println("タスクが完了しました: " + task.getName());
return;
}
}
System.out.println("タスクが見つかりませんでした: " + taskName);
}
// 特定のタスクを削除するメソッド
public void removeTask(String taskName) {
tasks.removeIf(task -> task.getName().equals(taskName));
System.out.println("タスクが削除されました: " + taskName);
}
}
設計のポイント:
tasks
としてList<Task>
を利用。タスクの追加・削除・更新が容易になります。これらのクラスが完成したら、実際にアプリケーションを動作させるためのメインクラスを作成します。ここでは、ユーザーからの入力に応じてタスクを管理するシンプルなコンソールアプリケーションを作ります。
import java.util.Scanner;
public class TaskManagerApp {
public static void main(String[] args) {
TaskManager taskManager = new TaskManager();
Scanner scanner = new Scanner(System.in);
boolean running = true;
while (running) {
System.out.println("\n=== タスク管理アプリケーション ===");
System.out.println("1: タスク追加");
System.out.println("2: タスク一覧表示");
System.out.println("3: タスク完了");
System.out.println("4: タスク削除");
System.out.println("5: 終了");
System.out.print("選択してください: ");
int choice = scanner.nextInt();
scanner.nextLine(); // 改行文字を消費
switch (choice) {
case 1:
System.out.print("タスク名: ");
String name = scanner.nextLine();
System.out.print("タスクの説明: ");
String description = scanner.nextLine();
Task task = new Task(name, description);
taskManager.addTask(task);
break;
case 2:
taskManager.displayTasks();
break;
case 3:
System.out.print("完了するタスク名: ");
String taskName = scanner.nextLine();
taskManager.completeTask(taskName);
break;
case 4:
System.out.print("削除するタスク名: ");
taskName = scanner.nextLine();
taskManager.removeTask(taskName);
break;
case 5:
running = false;
System.out.println("アプリケーションを終了します。");
break;
default:
System.out.println("無効な入力です。もう一度試してください。");
}
}
scanner.close();
}
}
completeTask
やremoveTask
の処理をさらに細かく分割して見通しをよくすることができます。リファクタリングにより、コードはより読みやすく保守しやすいものになり、アプリケーションの品質も向上します。
簡単なタスク管理アプリケーションを通じて、Javaの基礎的なプログラミング知識を実践的に応用しました。クラス設計やリファクタリングの重要性も体験することで、プログラミングの品質向上に役立つスキルが身につきました。
プログラミングを始めたいと思っているそこのあなた、独学よりもプログラミングスクールが断然おすすめです!理由は簡単、続けやすさです。
独学でプログラミングを続けるのは、実はかなりハードルが高いんです。データによると、なんと87.5%もの学習者が途中で挫折しているとか。一方、各プログラミングスクールが公表しているデータによると、受講生の約95%が最後までやり抜いているとのこと。数字を見れば一目瞭然、プログラミングスクールの方が圧倒的に続けやすいんです。
プログラミングスクールには有料と無料のタイプがありますが、その違いは次の通りです:
どちらが自分に合っているか、よく考えて選ぶのが大事です。
プログラミング初心者でも学びやすいと評判の『FREEKS』、その特徴は以下の通り:
なんと、月会費のみで全カリキュラムが受け放題!Java、PHP、HTML/CSS、JavaScriptなど、多彩なプログラミング言語が学べるんです。しかも、AIが質問に自動で答えてくれるシステムも導入済み。
カリキュラムを終了した後には、Freeks経由で未経験者でも取り組める副業案件の受注が可能。実務を通じてスキルを磨き、市場価値の高いエンジニアへの道が開けます。
独学で悩むくらいなら、まずはプログラミングスクールをチェックしてみるのもアリかもしれませんよ!
↓ ↓ こちらをクリック ↓ ↓