Java [키오스크 Challenge Lv1]
·
java
📌 TIL: Java 키오스크 프로젝트 – Challenge 단계 Cart 기능 개선💡 오늘 배운 것오늘은 Java로 구현한 키오스크 프로젝트에서 장바구니(Cart) 기능을 개선했다.객체 지향적으로 Cart와 CartItem을 분리하여 관리하고, 주문 확인/취소 기능을 Kiosk 클래스 내에서 완성했다.특히 NullPointerException, 출력 포맷 개선, 클래스 간 협력 방식에 대해 배울 수 있었다.📁 작업한 클래스 목록CartCartItemKioskMenu, MenuItem, Main 등🔨 주요 변경 사항 및 문제 해결✅ 1. Cart와 CartItem 분리 및 기능 분담CartItem 클래스에 MenuItem과 수량 정보를 포함하여 장바구니 항목 하나를 객체로 표현Cart 클래스는 L..
Java (Lv1~ Lv4 키오스크 완성)
·
java
TIL - Java Kiosk Project (Lv1~Lv4) 📅 날짜: 2025-04-28 ✅ 오늘 한 일 - Java 키오스크 Lv1~Lv4 기능 완성했습니다.- 객체 분리 (`MenuItem`, `Menu`, `Kiosk`) - 캡슐화 적용 → 모든 필드 `private` 선언, 접근은 `getter`/`setter`로 관리하였습니다.- 사용자 입력을 통한 메뉴 선택 기능 구현하였습니다.📌 배운 점 - 캡슐화(encapsulation)의 중요성: - 외부 클래스가 내부 데이터를 직접 수정하는 것을 막을 수 있습니다. - 유지보수성과 안정성 향상을 하였습니다.- List 구조의 활용 : - 메인 메뉴와 서브 메뉴 구성 시 매우 유용합니다.- **메서드 분리의 이점**: - showMe..
Java - 키오스크 Lv4
·
java
Mainpackage Kiosk.Lv4;import java.util.ArrayList;import java.util.List;public class Main { public static void main(String[] args) { List burgerItems = new ArrayList(); burgerItems.add(new MenuItem("ShackBurger", 6.9, "토마토, 양상추, 쉑소스가 토핑된 치즈버거")); burgerItems.add(new MenuItem("SmokeBurger", 8.9, "베이컨, 체리 페퍼에 쉑소스가 토핑된 치즈버거")); burgerItems.add(new MenuItem("CheeseBurge..
Java 키오스크 Lv1, Lv2
·
java
package Kiosk.Lv2;import Kiosk.Menu;import java.util.Scanner;import java.util.List;import java.util.ArrayList;public class Main { public static void main(String[] args) { MenuItem item1 = new MenuItem("ShackBurger", 6.9, "토마토, 양상추, 쉑소스가 토핑된 치즈버거" ); MenuItem item2 = new MenuItem("SmokeBurger", 8.9, "베이컨, 체리 페퍼에 쉑소스가 토핑된 치즈버거"); MenuItem item3 = new MenuItem("CheeseBurger"..
Java(절차 지향 프로그래밍) 복습 및 추가
·
java
절차 지향 프로그래밍 vs 객체 지향 프로그래밍프로그래밍 방식은 크게 절차 지향 프로그래밍과 객체 지향 프로그래밍으로 나눌 수 있다.절자 지향 프로그래밍절차 지향 프로그래밍은 이름 그대로 절차를 지향한다. 쉽게 이야기해서 실행 순서를 중요하게 생각하는 방식이다.절차 지향 프로그래밍은 프로그램의 흐름을 순차적으로 따르며 처리하는 방식이다. 즉, "어떻게"를 중심으로 프로그래밍한다. 객체 지향 프로그래밍객체 지향 프로그래밍은 이름 그대로 객체를 지향한다. 쉽게 이야기해서 객체를 중요하게 생각하는 방식이다.객체 지향 프로그래밍은 실제 세계의 사물이나 사건을 객체로 보고, 이러한 객체들 간의 상호작용을 중심으로 프로그래밍하는 방식이다. 즉, "무엇을" 중심으로 프로그래밍 한다. 둘의 중요한 차이절차 지향은 데이..
Java (클래스와 데이터) 복습 및 추가 학습 내용
·
java
2025.04.15 - [java] - 자바 (클래스, 객체 등) 자바 (클래스, 객체 등)클래스란?객체를 만들 때 필요한 설계도입니다.객체란 실제로 존재하는 것을 말합니다.클래스가 준비되어있다면 여러개의 객체를 만들 수 있습니다.클래스 구조는 1. 속성, 2. 생성자, 3. 기능 세kiiin.tistory.com클래스가 필요한 이유는 ?배열을 사용하여 프로그래밍을 하고 추후 내용을 수정하기 위해서는 매우 조심해서 작업을 해야하며 각 요소를 정확하게 찾아야 한다는 불편한 점이 있다. 이러한 점을 클래스로 보완할 수 있다.클래스에서 정의한 변수들을 멤버 변수, 또는 필드라고 한다.- 멤버 변수 : 이 변수들은 특정 클래스에 소속된 멤버이기 때문에 이렇게 부른다- 필드(Field) : 데이터 항목을 가리키는..
Java 계산기 Lv3
·
java
package Lv3;import java.util.InputMismatchException;import java.util.Scanner;public class Main { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); ArithmeticCalculator calculator = new ArithmeticCalculator(); System.out.println("명령어를 입력해주세요 (go, exit, delete, list, filter):"); while (true) { try { String in..
Java - 예외(Exception)와 예외처리(try-catch)
·
java
목차1. 예외2. 예외 발생 예제3. 예외 구조와 종류4. 예외 전파5. 실습 과제1. 예외1) 예외란 ? : 예외는 프로그램 실행 중 예상하지 못한 상황이 발생하는 것을 의미합니다.→ 커피 쏟기, 대표적인 산술 예외 : 10 / 0(0으로 나누기)2) 의도적으로 예외를 발생시킬 때는 throw 키워드를 통해 발동시킵니다.3) 예외를 처리하지 않으면 프로그램이 중단될 수 있습니다.4) 그래서 예외처리(try-catch)를 통해 프로그램이 안정적으로 실행되게 할 수 있습니다. 2. 예외 발생 예제1) 의도하지 않은 예외 아래 코드에서 10 / 0 연산을 수행하면서 ArithmeticException(산술예외)가 발생합니다.0 으로 나누는 연산은 허용되지 않음으로 프로그램이 비정상적으로 종료됩니다.예외를 ..