ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 30. Review
    개발자 수업/Java 2021. 10. 25. 18:14

    1. 중첩 클래스(nested class)
        1) 클래스 안에 또 다른 클래스가 정의되는 것
        2) 특정 클래스를 자신의 클래스 내부적인 용도로만 사용
        3) 멤버로 존재하는 inner 클래스 : 객체를 생성해야만 사용할 수 있는 형태
        4) static inner 클래스 : outer 클래스 객체를 생성하지 않아도 inner 클래스에 접근 가능
        5) 메서드 지역(local) 안에 존재하는 inner 클래스 
            - 로컬 변수처럼 인식
            - 메서드 호출될 때 생성되며 메서드가 종료될 때 삭제됨
        6) 익명 클래스
            - 이름이 없는 클래스로 단 한 번 임시적으로 사용하는 클래스로 유용
            - 인터페이스, 클래스 모두 익명 클래스로 객체를 생성할 수 있음
            - 인터페이스 구현 없이 생성과 동시에 오버라이드 가능
            - 익명 클래스 내부에서는 멤버 변수를 참조할 수 있음

    2. 예외 클래스 
        1) Exception 클래스 
            - RuntimeException => try / catch 문을 사용하여 예외를 처리
        2) String getMessage() : 해당 throwable 객체에 대한 자세한 내용을 문자열로 반환
           void printStackTeace() : 해당 throwable 객체와 표준 오류 스트림의 스택 내용 출력
                                    디버깅 용도. 배포 시에는 삭제 처리해야 함
        3) 자주 발생하는 예외들
            - ArrayIndexOutOfBoundsException (배열에 잘못된 인덱스를 사용하여 접근할 경우)
            - NullPointerException (null 객체의 인스턴스 메서드를 호출하는 경우)
            - ArithmeticException (정수를 0으로 나누는 등 연산 수행을 할 수 없는 경우)
            - ClassCastException (수행할 수 없는 타입 변환이 진행될 경우)
        4) 예외 처리 
            try {
                //예외 발생 가능성 있는 코드
            } catch (Exception e1) {
                e1 예외가 발생할 경우
            } catch (Exception e2) {
                e2 예외가 발생할 경우
            } finally {
                //예외 발생 여부와 상관없이 무조건 실행
            }

    3. 다형성(polymorphism)
        1) 다형성 목적
        - 여러 형의 객체에 동일한 코드 사용 목적
        - 매개변수로 식별 (오버로딩)
        - 가까운 재정의된 메소드 선택 (오버라이딩)
        2) 오버로딩(overloading)
            - 매개변수를 다르게 구성할 수 있음
                - 매개변수의 개수, 타입(자료형), 순서를 달리해서 구성
            - 메소드 이름이 같아야 함
            - 같은 클래스 내부의 메서드에 적용됨
            - 정적 다형성(static polymorphism)의 예로 볼 수 있음
            - 오버로딩이 되지 않는 것 : 리턴 타입, 매개변수 이름

    4. 하위 클래스 메서드의 선택
        1) 하위 클래스로부터 만들어진 객체
            - is-a 관계에 의해 부모클래스 자료형 사용 가능
                Cat cat = new Cat();
                Animal animal = new Cat();  //상위 타입 참조 변수 사용
            - 상위 클래스 타입의 참조변수로 하위 클래스의 인스턴스를 참조할 수 있는 것
            - 상속 관계에 있는 클래스에서만 가능
            - 상위 타입 참조변수 사용 시 하위 클래스의 고유의 기능은 사용할 수 없음

    5. 캐스팅
        1) 업 캐스팅
            Animal animal = null;
            Cat cat = new Cat();
            animal = cat;       //up-casting
            animal.hunt();
        2) 다운 캐스팅
            Cat cat = null;
            cat = (Cat)animal;  //down-casting
            cat.sound();

    6. final 키워드
        1) final 속성 변수 ==> 상수 (상수 선언 시 초기화를 해야 함, 변경 불가)
        2) final 메소드 => 오버라이딩 불가
        3) final 클래스 => 상속 불가능

    '개발자 수업 > Java' 카테고리의 다른 글

    문제 1 - Chap13 / kr.co.ezenac.review02  (0) 2021.10.26
    31. 멀티스레드2  (0) 2021.10.25
    29. 멀티스레드  (0) 2021.10.22
    28. IO입출력  (0) 2021.10.20
    27. 예외처리  (0) 2021.10.20

    댓글