내일배움캠프 7기

자바(예외,오류처리)&새싹반 수업(Enum,컬랙션)

suuuki 2024. 10. 21. 20:57

4주차 자바


예외(Exception), 오류처리(error)

 

  • 오류(Error)는 일반적으로 회복이 불가능한 문제입니다.
    • 이는 시스템 레벨에서, 또는 주로 환경적인 이유로 발생합니다.
    • 코드의 문제로 발생하는 경우도 있지만, 일단 발생하는 경우 일반적으로 회복이 불가능합니다.
    • 에러가 발생한 경우 우리는 어떠한 에러로 프로그램이 종료되었는지를 확인하고 대응합니다.
  • 예외(Exception)는 일반적으로 회복이 가능한 문제입니다.
    • 회복이 가능하다는 전제는 우리가 “그 예외가 발생할 수 있다는 것을 인지하고, 대응했을 것입니다”.
    • 현실적으로 코드 레벨에서 할 수 있는 문제 상황에 대한 대응은 “예외 처리”에 속합니다.
  • 컴파일 에러(예외) 📂
    • .java 파일을 .class 파일로 컴파일할 때 발생하는 에러
    • 대부분 여러분이 자바 프로그래밍 언어의 규칙을 지키지 않았기 때문에 발생합니다.
    • 예를 들어 있지 않은 클래스를 호출한다거나, 접근이 불가능한 프로퍼티나 메소드에 접근한다거나 하는 경우에 발생합니다.
    • 컴파일 에러가 발생하는 경우 해결 방법은 문법에 맞게 다시 작성하는 것입니다.
  • 런타임 에러(예외) ❤️‍🔥
    • 우리가 주로 다루게 될 에러(예외)입니다.
    • 문법적인 오류는 아니라서, 컴파일은 잘 되었지만 “프로그램”이 실행 도중 맞닥뜨리게 되는 예외입니다.

새싹반(Enum)


Enum

열거형이란?

  • 정의: Enum은 열거형 데이터 타입, 서로 연관된 상수들의 집합
  • 상수 집합: Enum은 코드에서 의미 있는 이름으로 상수들을 묶어 한정된 값의 법위를 정의 

   ex) 주로 요일, 계절, 방향, 상태 등 한정된 범주의 박 표현할 떄 사용

 

2. Java Enum의 기본 특징

  • 타입 안정성: Enum은 명확한 타입을 제공, 잘못된 값이 사용되는 것을 방지
  • 정해진 상수: 상수를 미리 정의, 허용된 값만을 사용 할 수 있게 함
  • 읽기 쉬운 코드: 코드의 가독성을 높여줌-> 의미를 명확하게 표현할 수 있음
  • 객체로서의 Enum: Enum도 객체, 모든 Enum은 java.long.Enum 클래스를 상속 받으며 내부 필드에서 메서드를 갖을 수 있음

 

3.Enum 선언 방법

 

위 코드의 Weekday는 Enum 타입이고, MONDAY부터 SUNDAY까지 열거된 상수이다

 

4. Enum도 객체이다

Enum은 단순한 상수 이상의 역활을 할 수 있음

각 상수는 독립적인 객체로 간주되며 생성자, 필드, 메서드를 갖을 수 있음

 

5.Enum 사용 방법

 

6.Enum의 메서드 활용

 

 

 

7.Enum에서 메서드 추가하기

 

8.Enum과 switch문

Enum을 사용하는 이유

  • 코드 가독성 향상: 숫자나 문자열을 사용하는 대신, 의미 있는 이름을 사용하여 코드를 명확하게 만듬
  • 타입 안정서이 특정 값들의 집합을 명확히 정의, 코드에서 잘목된 값을 사용할 가능성을 줄임
  • 객체의 확장성: Enum이 객체이므로 필드와메서드를 추가하여 더 복잡한 동작을 구현 할 수 있음
  • 변경용이성: 값의 집합을 한 곳에서 관리하므로 유지보수 및 변경이 용이

컬랙션

가변 배열의 길이가 정해저 있음

 

배열

고정 크기: 배열은 초기화 시 크기가 고정되며, 이후 크기 변경 할 수 없음

동일한 타입: 배열은 동일한 데이터 타입의 요소만 저장 할 수 있음

인덱스 접근: 배열 요소는 인덱스를 사용하여, 빠르게 접근 가능

간단한 구조:  배열은 구조가 간단해서 메모리 효율이 좋고 성승이 빠르다

 

 

[1] JAVA Collection

동적 크기: 컬렉션은 필요에 따라 크기가 자동으로 조정

유연한 데이터 타입: 제네릭을 사용하여 다양한 타입의 데이터를 저장 할 수 있음

다양한 데이터 구조: 다양한 요구사항에 맞는 여러 데이터 구조를 제공

풍부한 메서드 : 데이터 조작을 위한 다양한 메서드 제공(삽입, 삭제, 검색 등)

 

 

[2]각 인터페이스의 특징

자바 컬렉션 프레임워크는 데이터를 저장, 검색, 정렬 등을 위한 다양한 인터페이스와 클래스를 제공하는 API

컬렌션 프레임워크는 데이터를 효과적으로 관리 하기 위한 일관된 방법 제공&다양한 종유릐 컬렉션 사용 할 수 있게 함

 

1.List 인터페이스:

2.Set인터페이스

mylist안에 쓸 수 있는 애들 mylist. ->우즉에는 반환되는값들

커멘드나 컨트롤 버튼 누르면 어케 짜였는지 알 수 있다

 

<실습>

로또 프로그램 만들기

: 1~45 사이 숫자 중, 6개 숫자 출력되는 프로그램 

 

작성한 코드는 오류가 없다 했는데, 자꾸 오류가 떠서 물어보니

import java.util.*;

 

이 부분이 보통 자동으로 들어가는데

삽입 되지 않아서 오류가 뜬 걸 수도 있다는 피드백을 받았다

삽힙하고 나니 정상적으로 프로그램이 진행 되었다