본문 바로가기
Web/Java

Java(30) - review4

by SeleniumBindingProtein 2022. 1. 28.
728x90
반응형

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

2. 예외 클래스 
    1) Exception 클래스 
        - RuntimeException => try / catch 문을 사용하여 예외를 처리 
    2) String getMessage() : 해당 throwable 객체에 대한 자세한 내용을 문자열로 반환
       void printStackTrace() : 해당 throwable 객체와 표준 오류 스트림의 스택 내용 출력
                                디버깅 용도. 배포시에는 삭제 처리해줘 함.
    3) 자주 발생되는 예외들
        - ArrayIndexOutOfBoundsException (배열에 잘못된 인덱스를 사용하여 접근할 경우)
        - NollPointerException (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 클래스 => 상속 불가능 

728x90
반응형

'Web > Java' 카테고리의 다른 글

Java(32) - WebSocket  (0) 2022.02.09
Java(31) - 멀티스레드2  (0) 2022.01.28
Java(28) - IO입출력  (0) 2022.01.28
Java(27) - 예외처리  (0) 2022.01.28
Java(26) - Stream  (0) 2022.01.28

댓글