- Box 클래스
class Box<T> //T도 String,int처럼 자료형이다.
메인절의 <>속에 있는 Integer처럼 위의 T로 올라가 자료형을 T에서 Integer로 바꾼다.
b1.set 괄호속 10은 int 정수이기 때문에 stack영역인 int가 heap영역인 Integer로 간다. 즉, auto-boxing이다. 기본 타입이 wrapper클래스 변환된다
밑의 b1.get();은 Integer이므로 다시 int에 들어가는 auto-unboxing이 된다.
- Exception
try - catch문을 통해 에러가 나와도 감추는 예외 처리를 할 수 있다.
try {
조건문
}
catch (Exception e) {
System.out.println(e.toString());
}
finally {
출력문}
try 내에 조건에 맞지 않으면 오류가 발생할 것이다. 발생한 에러를 catch가 확인하여 Exception이 처리한 e결과로 나타낸다. toString은 에러가 어디서 발생했는 지 보여준다.
toString외에도
e.printStackTrace();는 기존의 에러문구를 다시 볼 수 있다.
catch (Exception e)는 catch문 중에서도 가장 마지막에 나와야 하며
finally는 상관없이 무조건 실행되며 catch문 이후로 마지막에 나와야 한다.
- 문자 입력 에러
문자를 입력받아 조건에 따라 출력하는 프로그램을 코딩할 수 있다. 아래의 예시와 함께 살펴보자.
length를 통해 문자 길이(글자 수)를 확인할 수 있다.
해당 메소드줄에 'throws Exception' 적어줘야 오류가 발생하지 않는다.
- + boolean 사용
boolean의 초기값은 false이다.
charAt은 글자 하나하나를 비교해가며 확인할 수 있다. 따라서 i를 통해 첫 글자부터 마지막 글자까지 비교한다.
if문의 경우, 아스키값으로 비교할 수도 있지만 알파벳으로 입력해도 가능하다.(아스키값 다 외울 수가..ㅎㅎ..)
if 조건에 맞다면 true이지만
맞지 않다면 false를 주어 마지막에 false인 값에 에러를 나타나게 한다.
이제 다른 클래스의 메인절에서
스캐너를 통해 사용자에게 문자를 입력받고
MyAuthExcept는 위에 조건을 주었던 메소드의 클래스이다. (현 메인절 클래스와 다른 클래스).
try-catch문을 통해 try내에서
사용자 문자 입력과
위의 조건이 담긴 메소드 및 출력을 써준다.
catch문에선 toString을 통해 에러 발생 시 어디서 시작됐는 지 확인하도록 작성해준다.
이를 통해 문자에 조건을 주어 사용자에게 값을 입력받을 수 있다.
'개발 교육 TIL > back-end' 카테고리의 다른 글
[Java] Stream-문자/파일 내보내고/받기 (0) | 2022.01.13 |
---|---|
[Java] Thread- 단일/다중스레드, 작성법, 우선순위 (0) | 2022.01.11 |
[Java] ListIterator, Map<key,value>, Stack, Queue (0) | 2022.01.09 |
[Java] 내부클래스, Collection Framework, Iterator, Vector (0) | 2022.01.07 |
[Java] 형변환, upcast, 인터페이스 (0) | 2022.01.06 |