• Home
  • About
    • ming photo

      ming

      studying

    • Learn More
    • Twitter
    • Facebook
    • Instagram
    • Github
    • Steam
  • Archive
    • All Posts
    • All Tags
    • All categories
  • categories
    • HTML+CSS+JavaScript
    • JAVA
    • Algorithm
    • DB
    • JSP
    • 정보처리기사
    • Spring
    • Thymeleaf
    • 기술면접
  • Projects

JAVA-중첩 클래스,중첩 인터페이스, 익명 클래스

17 Feb 2021

🔷 중첩 클래스 (nested class)

❗ 중첩 클래스 : 클래스 내부에 선언한 클래스 => 상속관계(is-z) X ,멤버관계(has-a) 관계이다

- 두 클래스의 멤버들을 서로 쉽게 접근하게 하고, 외부에는 불필요한 관계 클래스를 감춘다
- 코드 복잡성을 줄인다 ![내부클래스종류와특징](https://user-images.githubusercontent.com/65608960/108168970-72ebd780-713b-11eb-977a-228854772432.JPG)
  • 멤버 클래스 : 클래스의 멤버로서 선언되는 중첩 클래스 => 컴파일하면 A(바깥) $ B(멤버).class 바이트 코드 파일 생성
    • 인스턴스 멤버 클래스 : A 객체를 생성해야만 사용할 수 있는 B클래스
    • 정적 멤버 클래스 : statuc 붙은 클래스 => A클래스로 바로 접근할 수 있는 B클래스
  • 로컬 클래스 : 메소드 내부에서 선언되는 중첩 클래스 => 컴파일 하면 A(바깥) $1 B(로컬).class 바이트 코드 파일 생성
    • method()가 실행할 때만 사용할 수 있는 B클래스 클래스이름

🔷 중첩 인터페이스 (nested interface)

❗ 중첩 인터페이스 : 클래스 내부에 선언된 인터페이스

- 해당 클래스와 긴밀한 관계를 갖는 구현 클래스를 만들기 위해 사용한다
  • 인스턴스 멤버 클래스 : static 키워드 없이 중첩 선언된 클래스 =? 인스턴스 필드,메솓만 선언 가능 정적 필드,메소드는 선언할 수 없다

🔷 익명 클래스

❗ 익명 클래스 : 이름이 없는 일회용 클래스,정의와 생성을 동시에한다, 어떤 클래스를 상속하거나 인터페이스를 구현해야 한다

익명클래스

익명클래스예제



Share Tweet +1