20.12.08

민주·2021년 1월 17일
  1. Interface와 abstract class의 사용이유
    - 인터페이스와 추상화는 전체적인 규격을 만들어 주기 때문에 공통화 작업을 할 때 많이 사용한다.
    - 완벽한 한 몸 일때는 결합도가 높기 때문에 인터페이스나 추상화를 활용하면 결합도를 감소시킨다
    - 결합도가 낮다는건 다른걸로 대체 가능하다는 것이다.
    - 인터페이스나 추상화로 규격만 맞춰준다면 코드간에 호환성을 높일 수 있다.

    - 인터페이스를 사용하지 않은 경우
    - 공통적으로 들어가는 메서드들이 있는데 하나하나 만들어줘야하는 어려움
    - 기존에 있는 클래스 말고 다른 클래스가 들어간다고 했을때도 하나하나 또 만들어야 하는 어려움이 있다.

    - 인터페이스를 사용하는 경우
    - 해당 인터페이스를 구현받기만 하면 그 안에 있는 메서드 활용 가능

  2. 예외와 에러의 차이

    • 에러(error) : 프로그래밍을 아예 잘못한것( 물통에 구멍이 난 것 )
    • 예외(exception) : 사용자가 a처럼 사용해야하는데 b처럼 사용하는 경우( 물통에 밥을 지으려고 하는 경우)
    1. 예외의 종류
    • Exception(일반예외) : 실행하기 전에 알려줌
    • Runtime Exception(실행예외) : 실행해야 알려줌

      ○ classCastExceptiong ( 개 - > 포유류 - > 고양이 할려고했을때 생긴 예외 )
  3. try - catch
    - 문제 발생시 스스로 해결한다.

    - 12 ~16( try ) : 문제가 발생할 수도 있는 코드
    - 14 ~ 15 : data1과 data2를 정수형으로 바꿔준다
    - 17 ~ 18( catch ) : 문제 발생시 처리하는 영역 , 문제가 없다면 실행 안됨
    - 19 ( finally ) : 문제 발생 여부에 관계없이 실행하는 영역
    - 출력값 :
    -
    - data2는 문자열 이기 때문에 15에서 숫자 변환시 문자가 포함 되어 있으므로 NumverFormatException이 발생했다.

  4. multi catch
    - 여러예외 발생시 각 예외마다 다른 처리를 해주고 싶은 경우

    - 14 : ArrayIndexOutOfBoundsException 발생
    - 16 : NumberFormatException 발생
    - 출력 값 :
    -
    ○ ArrayIndexOutOfBoundsException와 NumberFormatException이 둘다 발생 했지만 try에서 문제가 발생되면 바로 catch로 넘어가기 때문에 더 먼저 실행된 ArrayIndexOutOfBoundsException발생만 잡아 처리되었다.
    ○ 다른 문제도 있나 확인하려면 예외가 발생한 코드를 주석 처리 해줘야한다.

  5. OR exception
    - multi catch와 다르게 예외에 상관없이 똑같이 처리할 때 사용 한다.

  6. Exception 다형성

    - 모든 예외는 Exception안에 들어가기 때문에 다형성을 이용할 수 있다.

  7. throws
    - 예외가 발생한 일을 시킨 메서드에게 처리를 전가한다

    - 계속 위로 올라가면서 처리를 전가하는 것이다
    - 전가하다가 결국 try-catch를 하는 곳에서 끝난다.


    - class Sub 10 method2()에서 문제 발생 -> 시킨 method1()에게 전가
    -> main()에게 전가 -> main에서도 처리를 안하면 JVM에게 전가

  8. 강제 예외 발생
    - 정리한것만 알아두면 됨

    - throw : 강제로 예외를 발생시키는 키워드이다
    - 11 : 강제로 일반예외 발생
    - 12 : 강제로 실행예외 발생
    - 13 : 강제로 Reserved예외 발생

    - e : 에러메시지를 간단히 보여주는기능
    - 16 : 예외에 대한 자세한 정보를 보여준다

  9. 문자열을 만드는 방법

    - char[]의 배열로 나타내는게 String이다
    - String은 클래스이다

  10. 문자열 활용

    - String 생성자 오버로드 : 같은 이름으로 여러개의 생성자가 있다.


profile
개발이좋아요

0개의 댓글