본문 바로가기
CSE/CP1 이론

CP1_07.객체지향 프로그래밍_Advanced_내부 클래스

by 0/0 2024. 6. 17.
1. Basics 클래스, 객체, 변수, 메서드 // 생성자, 초기화
2. Advanced 상속, 오버라이딩 // package, import, modifiers, 다형성 // 추상클래스, interface, 내부클래스
10. 내부 클래스(Inner Class) 1. 내부 클래스
2. 내부 클래스의 종류와 특징
3. 내부 클래스의 선언
4. 내부 클래스의 제어자와 접근성
5. 익명 클래스

 

10.1 내부 클래스

  • 클래스 내에 선언된 클래스
  • 한 클래스를 다른 클래스의 내부 클래스로 선언하면
    -두 클래스의 멤버들 간에 서로 쉽게 접근할 수 있음
    -외부에는 불필요한 클래스를 감춤, 코드의 복잡성을 줄임
  • 특정 클래스 내에서만 주로 사용되는 클래스를 내부 클래스로 선언

내부 클래스

 

10.2 내부 클래스의 종류와 특징

  • 내부 클래스의 종류
    변수의 선언 위치에 따른 변수의 종류와 동일(유효범위, 성질)

    -스태틱 클래스: 외부 클래스의 멤버변수 선언위치에 선언하며, 외부 클래스의 static 멤버처럼 다루어짐.
    주로 외부 클래스의 static 멤버, 특히 static 메서드에서 사용될 목적으로 선언됨.

    -익명 클래스: 클래스의 선언과 객체의 생성을 동시에 하는 이름없는 클래스(일회용)

10.3 내부 클래스의 선언_다시

:내부 클래스의 선언 위치에 따라 같은 선언위치의 변수와 동일한 유효범위와 접근성을 가짐

내부 클래스의 선언

10.4

종류1)static 내부 클래스_다시

static 내부 클래스

종류2) Instance 내부 클래스

종류4) 익명 클래스 

익명 클래스

+익명 클래스 참고 예

익명 클래스 참고 예

 

10.5 내부 클래스의 제어자와 접근성_다시

  • Instance/instance 내부 클래스에서 외부 클래스의 인스턴스 변수, static 변수 모두 사용 가능*private 일지라도!

내부 클래스의 제어자와 접근성

  • 지역 클래스는 외부 클래스의 인스턴스 멤버와 static 멤버를 모두 사용힐 수 있음
     -추가로 지역 클래스가 포함된 메서드에 정의된 final 지역변수(상수)도 사용 가능 (private일지라도)\
    -주의*상수 외의 일반 지역변수는 원칙적으로 접근 안 됨
    *하지만 java가 자동으로 final 붙여줌(java 8~)

int IV;가 자동으로 final int Iv; 가 되므로 Iv++; 같은 식을 넣으면 비로소 오류남