
Java
package day4;
public class Item {
int no;
String category;
String name;
String maker;
int price;
Item() {}
Item(int no, String category, String name, String maker, int price) {
this.no = no;
this.category = category;
this.name = name;
this.maker = maker;
this.price = price;
}
}
package day4;
import java.util.Scanner;
public class ItemApp {
public static void main(String[] args) {
final int PRINT_ALL_ITEMS = 1;
final int PRINT_ITEMS_BY_CATEGORY = 2;
final int PRINT_ITEM_BY_NAME = 3;
final int PRINT_ITEMS_BY_PRICE = 4;
final int PRINT_ITEM_DETAIL = 5;
final int INSERT_ITEM = 6;
final int DELETE_ITEM = 7;
final int EXIT = 0;
Scanner sc = new Scanner(System.in);
ItemService service = new ItemService();
while (true) {
System.out.println("==================================================================");
System.out.println("1.전체 2.카테고리 3.이름 4.가격");
System.out.println("5.번호 6.등록 7.삭제 0.종료");
System.out.println("==================================================================");
System.out.print("메뉴번호를 선택하세요 : ");
int menuNo = sc.nextInt();
if (menuNo == PRINT_ALL_ITEMS) {
System.out.println("[모든 상품정보 출력]");
service.printAllItems();
} else if (menuNo == PRINT_ITEMS_BY_CATEGORY) {
System.out.println("[카테고리 상세정보 출력]");
System.out.print("카테고리를 입력하세요 : ");
String category = sc.next();
service.printItemsByCategory(category);
} else if (menuNo == PRINT_ITEM_BY_NAME) {
System.out.println("[상품명 상세정보 출력]");
System.out.print("상품명 입력하세요 : ");
String itemName = sc.next();
service.printItemsByName(itemName);
} else if (menuNo == PRINT_ITEMS_BY_PRICE) {
System.out.println("[가격범위 상세정보 출력]");
System.out.print("최소가격 : ");
int minPrice = sc.nextInt();
System.out.print("최대가격 : ");
int maxPrice = sc.nextInt();
service.printItemsByPrice(minPrice, maxPrice);
} else if (menuNo == PRINT_ITEM_DETAIL) {
System.out.println("[상품상세 조회]");
System.out.print("상품번호를 입력하세요 : ");
int itemNo = sc.nextInt();
service.printItemDetail(itemNo);
} else if (menuNo == INSERT_ITEM) {
System.out.println("[상품정보 등록]");
System.out.print("상품번호를 입력하세요 : ");
int no = sc.nextInt();
System.out.print("카테고리를 입력하세요 : ");
String category = sc.next();
System.out.print("상품명을 입력하세요 : ");
String name = sc.next();
System.out.print("제조사를 입력하세요 : ");
String maker = sc.next();
System.out.print("가격을 입력하세요 : ");
int price = sc.nextInt();
Item item = new Item(no, category, name, maker, price);
service.insertItem(item);
} else if (menuNo == DELETE_ITEM) {
System.out.println("[상품정보 삭제]");
System.out.print("삭제할 상품번호를 입력하세요 : ");
int no = sc.nextInt();
service.deleteItem(no);
} else if (menuNo == EXIT){
System.out.println("[프로그램 종료]");
break;
}
System.out.println();
System.out.println();
}
sc.close();
}
}
package day4;
public class ItemService {
Item[] items = new Item[100];
int position = 0;
ItemService() {
items[position++] = new Item(101, "노트북", "맥북", "애플", 1900000);
items[position++] = new Item(102, "노트북", "맥북에어", "애플", 1200000);
items[position++] = new Item(103, "노트북", "맥북프로", "애플", 2500000);
items[position++] = new Item(104, "노트북", "LG그램", "LG", 2000000);
items[position++] = new Item(105, "노트북", "소니바이오", "소니", 1400000);
items[position++] = new Item(106, "노트북", "씽크패드", "레노버", 2800000);
items[position++] = new Item(107, "스마트폰", "iphone12", "애플", 1400000);
items[position++] = new Item(108, "스마트폰", "iphoneSE", "애플", 600000);
items[position++] = new Item(109, "스마트폰", "갤럭시S20", "삼성", 1300000);
items[position++] = new Item(110, "워치", "애플워치", "애플", 500000);
items[position++] = new Item(111, "워치", "갤럭시워치", "삼성", 450000);
items[position++] = new Item(112, "워치", "가민945", "가민", 750000);
}
void printAllItems() {
System.out.println("=== 전체 상품 정보 ==============================");
System.out.printf("%-5s \t %5s \t %s \n", "상품번호", "상품이름", "가격");
for (Item item : items) {
if (item == null) {
break;
}
System.out.printf("%-5d \t \t %5s \t %-8d \n", item.no, item.name, item.price);
}
System.out.println("=================================================");
}
void printItemsByCategory(String category) {
boolean isExist = false;
System.out.println("====" + category +" 아이템 목록==================");
for (Item item : items) {
if (item == null) {
break;
}
if (item.category.equals(category)) {
isExist = true;
System.out.println(item.no + "\t" + item.name + "\t" + item.price);
}
}
if (!isExist) {
System.out.println("["+ category+"]에 해당하는 상품이 존재하지 않습니다");
}
System.out.println("===========================================");
}
void printItemsByName(String name) {
boolean isExist = false;
for (Item item : items) {
if (item == null) {
break;
}
if ((item.name).contains(name)) {
isExist = true;
System.out.println(item.no + "\t" + item.name + "\t" + item.price);
}
}
if (!isExist) {
System.out.println("["+ name +"]에 해당하는 상품이 존재하지 않습니다");
}
System.out.println("===========================================");
}
void printItemsByPrice(int minPrice, int maxPrice) {
boolean isExist = false;
for (Item item : items) {
if (item == null) {
break;
}
if (minPrice <= item.price && maxPrice >= item.price) {
isExist = true;
System.out.println(item.no + "\t" + item.name + "\t" + item.price);
}
}
if (!isExist) {
System.out.println(minPrice + "~" + maxPrice + "에 해당하는 상품이 존재하지 않습니다");
}
System.out.println("===========================================");
}
void printItemDetail(int no) {
Item foundItem = null;
for (Item item : items) {
if (item == null) {
break;
}
if (no == item.no) {
foundItem = item;
break;
}
}
System.out.println("=== 상품 상세 정보 =================");
if (foundItem == null) {
System.out.println("["+ no +"] 해당 번호가 존재하지 않습니다.");
} else {
System.out.println("상품번호 : " + foundItem.no);
System.out.println("카테고리 : " + foundItem.category);
System.out.println("상품이름 : " + foundItem.name);
System.out.println("제조회사 : " + foundItem.maker);
System.out.println("상품가격 : " + foundItem.price);
}
System.out.println("====================================");
}
void insertItem(Item item) {
items[position++] = item;
System.out.println("### 새로운 상품이 등록되었습니다.");
}
void deleteItem(int no) {
int foundItemIndex = -1;
int index = 0;
for (Item item : items) {
if (item == null) {
break;
}
if (item.no == no) {
foundItemIndex = index;
break;
}
index++;
}
if (foundItemIndex == -1) {
System.out.println("상품번호 [" + no + "]에 해당하는 아이템은 존재하지 않습니다");
return;
}
int lastItemSavedIndex = position - 1;
if (foundItemIndex == lastItemSavedIndex) {
items[foundItemIndex] = null;
position--;
} else {
items[foundItemIndex] = null;
items[foundItemIndex] = items[lastItemSavedIndex];
items[lastItemSavedIndex] = null;
position--;
}
}
}

Getter 와 Setter
package day5;
public class Book {
private int no;
private String title;
private String writer;
private String publisher;
private int price;
private boolean isSoldOut;
private double discountRate;
private Event event;
private Gift gift;
public Book() {}
public Book(int no, String title, String writer, String publisher, int price, boolean isSoldOut,
double discountRate) {
super();
this.no = no;
this.title = title;
this.writer = writer;
this.publisher = publisher;
this.price = price;
this.isSoldOut = isSoldOut;
this.discountRate = discountRate;
}
public int getNo() {
return no;
}
public void setNo(int no) {
this.no = no;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public String getWriter() {
return writer;
}
public void setWriter(String writer) {
this.writer = writer;
}
public String getPublisher() {
return publisher;
}
public void setPublisher(String publisher) {
this.publisher = publisher;
}
public int getPrice() {
return price;
}
public void setPrice(int price) {
this.price = price;
}
public boolean isSoldOut() {
return isSoldOut;
}
public void setSoldOut(boolean isSoldOut) {
this.isSoldOut = isSoldOut;
}
public double getDiscountRate() {
return discountRate;
}
public void setDiscountRate(double discountRate) {
this.discountRate = discountRate;
}
public Event getEvent() {
return event;
}
public void setEvent(Event event) {
this.event = event;
}
public Gift getGift() {
return gift;
}
public void setGift(Gift gift) {
this.gift = gift;
}
}
package day5;
public class BookApp2 {
public static void main(String[] args) {
Book book1 = new Book(100, "자바의 정석", "남궁성", "도우출판사", 35000, false, 0.15);
Event event1 = new Event("동영상강의 특가", "구매고객에게 저자의 동영상 강의를 제공합니다.", "4월1일", "4월 15일", false);
Gift gift1 = new Gift("책받침", 500);
book1.setEvent(event1);
book1.setGift(gift1);
Event e = book1.getEvent();
System.out.println(e.getDescription());
System.out.println(book1.getEvent().getDescription());
if (book1.getEvent().getTitle().contains("할인")) {
System.out.println("할인 이벤트 진행중입니다.");
} else {
System.out.println("현재 할인 이벤트는 진행하지 않습니다.");
}
}
}