쫑쫑이의 블로그

열거형(Enum)과 제네릭, 예외처리 본문

공부/JAVA

열거형(Enum)과 제네릭, 예외처리

쫑쫑2 2022. 9. 14. 01:32

열거형은 관련있는 내용들을 모아 상수로 선언하는 자바 문법 요소이다
0부터 차례대로 자동으로 인덱싱된다

switch문 안에서 열거형을 사용할 수 있다

enum Weeks { SUNDAY, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY }

 

 

제네릭이란 변수 타입을 정하지않고 일반화하여 정의한 후 

인스턴스를 선언할 때 매개변수에 타입을 적어 사용하는 자바 문법 요소이다

클래스 선언 시 클래스 뒤에 <> 사이에 타입 매개변수를 적어 사용한다
ex) <T>, <K, V> 등

제네릭 클래스에서는 클래스 변수를 사용할 수 없다
그 이유는 클래스 변수는 인스턴스를 생성하지 않고 호출할 수 있기 때문에
타입이 정해지지않은 변수를 호출해야하는 경우가 생길 수 있기 때문이다
* 제네릭 메서드는 static 키워드를 사용할 수 있다

제네릭 클래스의 범위를 제한하는 방법
<T extends A>
타입 매개변수 T는 A(클래스) 또는 A의 하위 클래스로 제한한다

클래스 외에 인터페이스(B)를 추가할 때는 <T extends A & B> 와 같이 
클래스 뒤에 &와 인터페이스를 적는다


와일드카드 '?' 는 제네릭으로 선언된 클래스를 파라미터로 받을 때
파라미터의 범위를 제한하기 위해 사용한다


와일드카드로 범위를 제한하는 방법은 2가지가 있다
Class_A<? extends A> class_A
파라미터는 A(클래스) 또는 A의 하위 클래스로 제한한다
Class_A<? super A> class_A
파라미터는 A 또는 A의 상위 클래스로 제한한다

 

 

예외 처리는 프로그램이 비정상적으로 종료되는 것을 막고 

지정된 코드를 실행하는 것이다

컴파일 에러는 단순 문법적 오류이며, 기본적으로 IDE가 알려준다
런타임 에러는 실행했을 때 나타나는 오류로 개발자가 의도하지 않았는데
빠뜨리거나 실수 또는 고려하지 않아 발생한 오류이다

try - catch 문을 사용하여 예외처리를 하는데
try 안에 오류가 발생할 수 있는 코드를 적고
catch문의 파라미터로 받는 오류가 발생하면 
catch문 안에 있는 코드를 실행한다
finally를 선택적으로 작성가능한데 앞의 작업들이 끝나면 항상 실행한다


예외전가 throw / throws
throw 키워드를 통해 오류를 강제로 발생시킬 수 있다
throws를 메서드 뒤에 발생할 수 있는 에러와 함께 적고
메서드 내에서 에러가 발생하면 메서드가 실행된 곳으로
예외 처리 책임을 전가한다
try 안에 적어서 catch에서 예외 처리하게끔함