diff --git a/.gitignore b/.gitignore index 9154f4c..bee9d6a 100644 --- a/.gitignore +++ b/.gitignore @@ -24,3 +24,4 @@ hs_err_pid* replay_pid* +/build/ diff --git a/src/main/java/BaseTicket.java b/src/main/java/BaseTicket.java new file mode 100644 index 0000000..2fb37ed --- /dev/null +++ b/src/main/java/BaseTicket.java @@ -0,0 +1,63 @@ + +public class BaseTicket { + + // カプセル化 + private String eventName; + private String ticketId; + private String eventData; + + // 初期化 + public BaseTicket(String ticketId, String eventName, String eventData) { + this.eventName = eventName; + this.ticketId = ticketId; + this.eventData = eventData; + } + + public String getEventName() { + return eventName; + } + + public void setEventName(String eventName) { + this.eventName = eventName; + // Nullチェックと空白チェック + if (eventName == null || eventName.strip().isEmpty()) { + System.out.println("イベント名が空のため設定できませんでした"); + return; + } + } + + public String getTicketId() { + return ticketId; + } + + public void setTicketId(String ticketId) { + this.ticketId = ticketId; + if (ticketId == null || ticketId.strip().isEmpty()) { + System.out.println("チケットIDが空のため設定できませんでした"); + return; + } + } + + public String getEventData() { + return eventData; + } + + public void setEventData(String eventData) { + this.eventData = eventData; + if (eventData == null || eventData.strip().isEmpty()) { + System.out.println("開催日が空のため設定できませんでした"); + return; + } + } + + public void showBaseInfo() { + System.out.println("チケットID:" + ticketId); + System.out.println("イベント名:" + eventName); + System.out.println("開催日:" + eventData); + } + + public void showInfo() { + + } + +} diff --git a/src/main/java/Main.java b/src/main/java/Main.java new file mode 100644 index 0000000..3b4734f --- /dev/null +++ b/src/main/java/Main.java @@ -0,0 +1,33 @@ + +public class Main { + public static void main(String[] args) { + // インスタンス化 + TicketManager manager = new TicketManager(); + + manager.addTicket(new Ticket("001", "ROCK IN JAPAN 2026", "2026-09-12", 16000)); + manager.addTicket(new Ticket("002", "ROCK IN JAPAN 2026", "2026-09-13", 16000)); + manager.addTicket(new Ticket("003", "ROCK IN JAPAN 2026", "2026-09-19", 16000)); + manager.addTicket(new Ticket("004", "ROCK IN JAPAN 2026", "2026-09-20", 16000)); + manager.addTicket(new Ticket("005", "ROCK IN JAPAN 2026", "2026-09-21", 16000)); + + manager.showAllTockets(); + System.out.println(); + + System.out.println("=== 日付ごとの予約仕分け結果 ==="); + System.out.println("2026-09-12 (1日目) の予約件数:" + manager.GetCountByDate("2026-09-12") + "件"); + System.out.println("2026-09-13 (2日目) の予約件数:" + manager.GetCountByDate("2026-09-13") + "件"); + System.out.println("2026-09-19 (3日目) の予約件数:" + manager.GetCountByDate("2026-09-19") + "件"); + System.out.println("2026-09-20 (4日目) の予約件数:" + manager.GetCountByDate("2026-09-20") + "件"); + System.out.println("2026-09-21 (5日目) の予約件数:" + manager.GetCountByDate("2026-09-21") + "件"); + + System.out.println(); + System.out.println("現在の予約件数合計:" + Ticket.getReservedCount() + "件"); + System.out.println(); + + + // テスト + System.out.println("テスト"); + Ticket sample = new Ticket("T999", "テストイベント", "2026-09-22", 16000); + sample.setEventName(""); + } +} \ No newline at end of file diff --git a/src/main/java/Ticket.java b/src/main/java/Ticket.java new file mode 100644 index 0000000..c16d6fd --- /dev/null +++ b/src/main/java/Ticket.java @@ -0,0 +1,32 @@ + +// 継承 +public class Ticket extends BaseTicket { + private int price; + // Ticketクラスで共有する変数 + private static int reservedCount = 0; + + public static int getReservedCount() { + return reservedCount; + } + + public Ticket(String ticketId, String eventName, String eventData, int price) { + // BaseTicketのコンストラクタを動かすため + super(ticketId, eventName, eventData); + this.price = price; + // チケットが追加されるたびに予約件数をカウントアップ + reservedCount++; + } + + public int getPrice() { + return price; + } + + // BaseTicketのshowInfoに上書き + @Override + public void showInfo() { + showBaseInfo(); + System.out.println("価格:" + price + "円"); + + } + +} diff --git a/src/main/java/TicketManager.java b/src/main/java/TicketManager.java new file mode 100644 index 0000000..27d0e50 --- /dev/null +++ b/src/main/java/TicketManager.java @@ -0,0 +1,29 @@ +import java.util.ArrayList; +import java.util.List; + +public class TicketManager { + // 可変長の配列作成 + private List tickets = new ArrayList<>(); + + // ポリモーフィズム + public void addTicket(BaseTicket ticket) { + tickets.add(ticket); + } + + public void showAllTockets() { + // for-each文 + for (BaseTicket ticket : tickets) { + ticket.showInfo(); + } + } + // 日付ごとの仕分け + public int GetCountByDate(String targetDate) { + int count = 0; + for (BaseTicket ticket : tickets) { + if (ticket.getEventData().equals(targetDate)) { + count++; + } + } + return count; + } +}