본문 바로가기

JAVA

JAVA(2022.05.12)-익명 클래스,Exception

익명 클래스

 

- 익명 중첩 클래스는 익명 클래스임과 동시에 내부 클래스이다.

- 일시적으로 한번 사용되며 재사용이 불가능하다 

 

why?

- 부모 클래스를 상속받는 자식 클래스를 사용하지 않고도 객체를 생성하여 부모 클래스를 implement 할 수 있다.

 

ex)

    public abstract class Action{
        public abstract void exec();
    }

    //추상클래스 Action을 상속받은 클래스 MyAction

    public class MyAction extends Action{
        public void exec(){
            System.out.println("exec");
        }
    }

    //MyAction을 사용하는 클래스 ActionExam 
    public class ActionExam{
        public static void main(String args[]){
            Action action = new MyAction();
            action.exec();
        }
    }

이 코드를 익명 클래스를 통해 상속받는 자식 클래스 없이 구현할 수 있다 

 

solution

    public abstract class Action{
        public abstract void exec();
    }
    
    public class ActionExam{
        public static void main(String args[]){
            Action action = new Action(){
                public void exec(){
                    System.out.println("exec");
                }
            };
            action.exec();
        }
    }

 

 

Exception

 

-프로그램 실행 중 예기치 못한 예외적인 사건이 발생했을 때, 미리 예측하고 처리하는 방법을 예외처리라고 한다.

 

why?

- 금융회사에서 전산업무를 한다고 상상해보자. 업무 중 프로그램에서 오류가 발생하여 서버가 마비되면 많은 경제적 손실이 발생할 수 있기 때문에 예외를 예측하고 처리해야 손실을 방지할 수 있다. 그래서 예외처리가 필요하다.

 

 

How?

 

try-catch-finally

구조)

try{

.....                   > 수행할 코드. 예외 발생 가능성이 있는 블록

}catch(예외클래스 변수명){

....                    > 예외 처리 블록

}finally{

.......                  > 예외 발생 여부에 상관없이 반드시 실행되는 블록 

}

 

*finally 부분은 생략이 가능하다

*여러가지 예외가 발생한다면 catch부분을 여러개 작성하여도 된다

*예외 클래스에 Exception을 두게 되면 어떤 오류가 발생하든지 하나의 catch불록에서 모든 오류를 처리할 수 있다.

 

 

 

 

 

 

 

 

 

 

 

 

*본 게시물은 프로그래머스<자바입문>강의를 복습하며 작성한 글입니다.