JAVA

[JAVA] 자바 기초 III

최선을 다하는 2022. 7. 22. 23:45

Chap 17 인터페이스와 추상클래스

- 인터페이스

    - interface [인터페이스 이름] { [추상메소드 선언]}

        - 추상 메소드 : 메소드의 몸체가 비어 있는 메소드

    - 인터페이스를 대상으로는 인스턴스의 생성이 불가능 하고 상속만 가능.

    - 인터페이스를 상속하는 행위는 '구현' 이라 한다 //  [클래스 이름] implements [인터페이스 이름] 

 

- 인터페이스 문법 구성

    - 인터페이스 메소드

        - 모든 인터페이스 메소드는 public 으로 선언된 것으로 간주한다.

    - 인터페이스 변수

        - 반드시 선언과 동시에 값으로 초기화 해야한다.

        - 모든 변수는 public, static, final이 선언된 것으로 간주한다.

    - 인터페이스를 구현하는 클래스는 모든 추상 메소드를 구현해야한다.

 

- 인터페이스의 활용

    - 인터페이스 상속

       - 만약 인터페이스에 추가할 것이 있어 추가한다면 해당 인터페이스를 구현한 모든 클래스를 수정해야한다.

       - 기존에 새로운 기능을 추가하려면 인터페이스 상속을 이용하여 새로운 인터페이스를 생성한다.

 

       - 이를 통해 기존에 제작 및 배포가 되어 사용 중인 드라이버를 수정할 필요가 없게 된다.

    - 디폴트 인터페이스

        - default 를 추가하여 기존의 인터페이스에 영향이 없게 한다.

        - 상속을 한다면 인터페이스의 수가 늘어나지만 이것은 기존의 인터페이스에 추가하는 것

    - 마커 인터페이스

        - 대게 아무것도 없는 인터페이스로 instance of 와 같이 사용하여 구현을 통해 클래스의 표식이 된다.

    - 번외) 추상 클래스

        - 하나 이상의 추상 메소드 (abstract)를 갖는 클래스

        - 추상 클래스는 인터페이스와 유사하나 클래스이다.

        - 추상 클래스를 대상으로 인스턴스 생성도 불가능 하며 다른 클래스에 의해서 추상 메소드가 구현(상속)되어야하며 extends 를 활용하여 상속받아야한다.

 

Chap 18 예외처리

- try ~ catch 문

    - try 영역의 실행 중간에 예외 상황이 만들어지고 이로 인해 가상 머신이 Exception 인스턴스를 생성하면, 이 인스턴스는 메소드를 호출하듯 catch 구문의 매개변수에 전달된다.

    - 이렇게 try 구문으로 묶인 작업들은 서로 관련이 있는 작업들이다.

    - 여러 catch 문이 올수도 있으며 '|' 연산을 통해 catch 문을 활용할 수도 있다.

    - try 구문 안에 있는 코드는 밖에 있는 코드에 비해 실행속도가 느리므로 과도한 예외처리는 심각한 성능저하로 이어질 수 있으니 유의하여 사용하여야한다.

    - 모든 예외 클래스는 Throwable을 상속하므로 catch(Throwable e)를 활용할 수도 있다.

        - 하지만 Throwable 로 try catch 문을 사용하지 않는 것이 좋다. 실제로 코드가 잘못된 부분일 수도 있기 때문이다.

- 예외 클래스의 구분

    - Throwable class

        - Error class

        - Exception Class

            - RuntimeException class (Arithmetic, ClassCast, IndexOutOfBounds,...)

    - Error class 의 경우 처리할 수 있는 예외가 아니므로 예외처리를 하지 않고 프로그램을 종료시켜 원인을 파악한다.

    - RuntimeException class 의 경우 대부분 프로그래머가 대부분 예외처리를 하지 않는다. 코드가 잘못된 부분이기 때문이다.

    - Exception을 상속하는 예외 클래스의 처리

        - [메소드 이름 ] throws [예외 클래스 이름] : 예외가 메소드 내에서 발생한 경우 메소드를 호출한 영역으로 예외의 처리를 전달한다는 뜻이다.

        - Exception을 상속하는 예외의 발생에 대해서는 t~c 문 혹은 throws 선언을 통해서 예외를 처리해야한다.

    - 프로그래머가 정의하는 예외

        -extends Exception을 활용하여 프로그래머가 예외를 설정할 수도 있다.

 

- finally

    -try catch에 이어 finally 가 추가되면 try 영역에 진입시 catch 문의 실행여부와 상관 없이 작동한다.

- try-with-resource

    - try( [resource] ){} 의 형식으로 사용되며 종료의 과정을 필요로 하는 리소스를 생성할수 있다.

'JAVA' 카테고리의 다른 글

[JAVA] 자바 기초 IV  (0) 2022.07.23
[JAVA] 자바 기초 II  (0) 2022.07.20
[JAVA] 자바 기초 I  (0) 2022.07.16