個人開発途中経過

This commit is contained in:
2026-09-18 14:54:27 +09:00
parent 58bfb36bd2
commit 1a87cca5b7
5 changed files with 158 additions and 0 deletions

1
.gitignore vendored
View File

@@ -24,3 +24,4 @@
hs_err_pid* hs_err_pid*
replay_pid* replay_pid*
/build/

View File

@@ -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() {
}
}

33
src/main/java/Main.java Normal file
View File

@@ -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("");
}
}

32
src/main/java/Ticket.java Normal file
View File

@@ -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 + "円");
}
}

View File

@@ -0,0 +1,29 @@
import java.util.ArrayList;
import java.util.List;
public class TicketManager {
// 可変長の配列作成
private List<BaseTicket> 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;
}
}