1. 예외처리 개요예외(Exception)는 프로그램 실행 중 발생하는 비정상적인 상황을 의미하며, 이를 처리하지 않으면 프로그램이 비정상적으로 종료될 수 있다. 오류(Error)는 시스템적인 문제로, 개발자가 해결하기 어렵지만, 예외(Exception)는 개발자가 예측하고 처리할 수 있는 문제이다. 2. 예외 클래스의 종류 Throwable: 예외와 오류의 최상위 클래스.Exception: 예외의 최상위 클래스.Checked Exception: 컴파일 시 반드시 처리해야 하는 예외.Unchecked Exception: 런타임 시 발생하는 예외로, 컴파일 시 처리가 강제되지 않는다. 2.1 주요 예외 클래스ArithmeticException: 0으로 나누는 경우 발생.ArrayIndexOutOfBou..
Back-end/Java
냉장고 식재료 관리 프로그램 개요이 프로그램은 냉장고 정리를 목적으로 한 콘솔 관리 프로그램으로, 자바의 컬렉션을 활용하여 냉장고 안의 식재료를 관리하는 구조로 구현됐다. 주로 물품의 추가, 삭제, 조회 기능을 포함하며, 사용자가 냉장고에 있는 재료들을 쉽게 관리할 수 있도록 한다. 취지냉장고에 들어있는 식재료를 효율적으로 관리하기 위한 프로그램으로, 사용자가 콘솔에서 물품을 등록하고 제거하는 등의 작업을 할 수 있도록 한다. 프로그램의 주요 목적은 냉장고 재고 관리를 쉽게 할 수 있도록 하는 것이다. 주요 코드 설명1. 아이템 클래스냉장고에 들어갈 아이템(식재료)의 이름, 수량, 유통기한을 관리public class Item { private String name; private int ..
1. 컬렉션 개요컬렉션은 데이터를 효율적으로 관리하고 처리하기 위한 클래스들의 집합이다. 자바에서는 이러한 컬렉션을 다룰 수 있는 다양한 인터페이스와 클래스들을 제공하며, 이를 컬렉션 프레임워크라고 한다. 대표적인 인터페이스로는 List, Set, Queue, 그리고 Map이 있다. 컬렉션 프레임워크는 일관된 API와 메소드들로 구성되어 있어 유지보수와 재사용성이 뛰어나다. 2. List 인터페이스List는 순서가 있는 데이터 집합을 관리하며, 중복된 데이터를 허용한다. 주요 구현체로는 ArrayList, LinkedList, Vector 등이 있다.ArrayList: 동적 배열로 데이터를 관리하며, 데이터의 접근 속도가 빠르다. 하지만 삽입과 삭제가 빈번할 경우 성능이 떨어질 수 있다.LinkedLi..
1. 제네릭스(Generics)란? 제네릭스는 데이터 타입을 일반화하여, 하나의 클래스나 메소드가 여러 데이터 타입을 처리할 수 있게 하는 기능이다. 제네릭 타입(T, E, K, V 등)을 사용하여 클래스나 메소드를 선언하고, 사용할 때 원하는 데이터 타입으로 변환한다. 제네릭 클래스 예시)public class GenericTest { private T value; public T getValue() { return value; } public void setValue(T value) { this.value = value; }} 위 예시에서 T는 제네릭 타입으로, 해당 클래스는 다양한 데이터 타입(Integer, String 등)으로 변환되어 사용할 ..
1. Object 클래스Object는 자바의 모든 클래스의 최상위 부모 클래스이다. 모든 자바 클래스는 Object 클래스를 상속받으며, Object 클래스에서 제공하는 메소드를 오버라딩하여 사용할 수 있다. 주요 메소드equals(Object obj): 두 객체가 같은지 여부를 비교.hashCode(): 객체의 해시 코드를 반환.toString(): 객체의 정보를 문자열로 반환.toString() 오버라이딩 예시)public class Book { private int number; private String title; @Override public String toString() { return "Book [number=" + number + ", title=" ..
과제 조건스터디 그룹 내에서 2~3인으로 팀원을 나누어 하나의 다형성 게임을 만들어 주세요. 필수 조건상속, 다형성 개념 활용하기요구 사항 문서화 하기제출 내용문서화 된 요구 사항GitHub Repository에 코드 제출하여 저장소 링크 과제 개요🐌달팽이 레이스 game rules주사위의 랜덤한 수만큼 달팽이가 이동하는 게임이, 한 명의 플레이어와 두 컴퓨터가 대결한다.red, green, blue 달팽이는 각각 고유한 스킬을 가지며, 선택하기 전 스킬을 미리 알 수 없다.각 스킬은 주사위 6이 나오는 순간 발동한다.맵의 길이는 1~30이며, 먼저 도착하는 달팽이가 이기는 게임이다.game process시작 시 red, green, blue 중 한 마리의 달팽이를 선택한다. (스캐너로 입력값을 받는다..

💡 다형성 개요다형성(Polymorphism)은 하나의 객체가 여러 타입을 가질 수 있는 성질을 의미한다. 주로 상속 관계에서, 부모 클래스 타입으로 자식 클래스를 다룰 수 있어 코드의 유연성과 확장성을 높이는 역할을 한다. 객체 지향 프로그래밍의 3대 특징 중 하나로, 다양한 상황에서 같은 메소드 호출이 각기 다른 방식으로 동작하게 된다. 다형성의 장점• 여러 타입의 객체를 하나의 부모 타입으로 관리 가능• 코드의 유지보수성 및 확장성 증가• 코드 중복 최소화Car[] cars = new Car[3];cars[0] = new Sonata();cars[1] = new Avante();cars[2] = new Morning();for (Car car : cars) { car.move(); // ..

💡 상속 개요상속(Inheritance)은 부모 클래스의 멤버(필드와 메소드)를 자식 클래스가 물려받아 사용하는 것을 말한다. 상속을 통해 코드를 재사용하고, 클래스 간의 계층 관계를 형성하여 다형성을 지원할 수 있다. 자바는 단일 상속만 지원하며, 하나의 부모 클래스만 가질 수 있다.public class Child extends Parent { // 자식 클래스에서 부모 클래스의 멤버 사용 가능} - 상속의 키워드 IS-A 관계: 자식 클래스는 부모 클래스의 일종이다. 이를 통해 클래스 간의 상속 관계를 설명할 수 있다. 예: Circle is a Shape (원은 하나의 모양이다.)super: 부모 클래스의 멤버에 접근할 때 사용하는 키워드로, 생성자 호출 시에도 사용된다.public C..