-
JAVA - 접근제어자 연습문제JAVA 2024. 1. 4. 21:07728x90
문제. 1 - 최대 카운터와 캡슐화
MaxCounter 클래스를 만들기
이 클래스는 최대값을 지정하고 최대값까지만 값이 증가하는 기능을 제공한다.
- int count : 내부에서 사용하는 숫자. 초기값은0
- int max : 최대값. 생성자를 통해 입력.
- increament() : 숫자를 하나 증가.
- getCount() : 지금까지 증가한 값을 반환
- 접근 제어자를 사용해서 데이터를 캡슐화하기
- 해당 클래스는 다른 패키지에서도 사용할 수 있어야 한다.
package access.ex; public class MaxCounter { private int count; private int max; public MaxCounter(int max) { this.max = max; } public void increment() { if (count >= max) { System.out.println("최대값을 초과할 수 없습니다."); } else { count++; } } public int getCount() { return count; } }
public class CountMain { public static void main(String[] args) { MaxCounter counter = new MaxCounter(3); counter.increment(); counter.increment(); counter.increment(); counter.increment(); int count = counter.getCount(); System.out.println(count); } }
문제. 2 - 쇼핑 카드
ShoppingCartMain 코드가 작동하도록 Item, ShoppingCart 클래스를 완성하기.
- 접근 제어자를 사용해서 데이터를 캡슐화 하기.
- 해당 클래스는 다른 패키지에서도 사용할 수 있어야 함.
- 장바구니에 상품을 최대 10개만 담을 수 있다.
- 10개 초과 등록시 : "장바구니가 가득 찼습니다." 출력
public class ShppingCartMain { public static void main(String[] args) { ShppingCart cart = new ShppingCart(); Item item1 = new Item("마늘", 2000, 2); Item item2 = new Item("상추", 3000, 4); cart.addItem(item1); cart.addItem(item2); cart.displayItems(); } }
여기서 Item 클래스를 짜는 건 쉬웠는데, 혼동 되는게 고른 물건의 가격을 구하는 코드였는데 ProductCart에 넣고 싶었는데 생각해보니 속성과 기능은 한 곳에 있는 게 좋기 때문에, 속성이 있는 Item에서 진행하였다.
public class Item { private String name; private int price; private int quantity; public Item(String name, int price, int quantity) { this.name = name; this.price = price; this.quantity = quantity; } public String getName() { return name; } public int getTotalPrice() { return price * quantity; } }
ShppingCart 클래스 부분에선 addItem 부분에서 순간 배열을 생각하지 못해 어떻게 추가해야 하지?? 고민을 좀 했었던 거 같다.
public class ShppingCart { private Item[] items = new Item[10]; private int itemCount; public void addItem(Item item) { if (itemCount >= items.length) { System.out.println("장바구니가 가득 찼습니다."); return; } else { items[itemCount++] = item; } } private int calculateTotalPrice() { int totalPrice = 0; for (int i = 0; i < itemCount; i++) { totalPrice += items[i].getTotalPrice(); } return totalPrice; } public void displayItems() { System.out.println("장바구니 상품 출력"); for (int i = 0; i < itemCount; i++) { System.out.println("상품명 : " + items[i].getName() + ", 합계 : " + items[i].getTotalPrice() + "원"); } System.out.println("전체 가격 합 : " + calculateTotalPrice() + "원"); } }
'JAVA' 카테고리의 다른 글
JAVA - 자바 메모리 구조와 static - 연습문제 (0) 2024.01.06 JAVA - 자바 메모리 구조와 static (1) 2024.01.06 JAVA - 접근 제어자 (1) 2024.01.04 JAVA - 패키지 (0) 2024.01.04 JAVA - 생성자 + 연습 문제 (2) 2024.01.03