일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- 보험금 지급거절
- 코드스테이츠 백엔드 후기
- 백내장
- 코드스테이츠 합격 후기
- 금감원
- 금감원 백내장 민원
- 자바
- 금융감독원 민원신청
- Spring
- codestates 국비지원 1기 합격 후기
- 코드스테이츠 합격
- Java
- 에이치엘비
- 해시
- 겜스고
- 코드스테이츠 부트캠프
- 백내장 금감원
- CodeState 후기
- 메서드
- 코드 스테이츠 백엔드 교육과정
- 코드스테이츠 백엔드 교육과정
- 백내장 다초점렌즈 삽입술
- 코드스테이츠 부트캠프 합격 후기
- Code States 백엔드 합격 후기
- Gamsgo
- 코테 합격후기
- 백준 알고리즘
- 코드스테이츠 백엔드 부트캠프 합격
- 금융감독원
- HLB
Archives
- Today
- Total
개발하는 동그리
[Java] 내부 클래스(Inner class) 본문
반응형
종류 | 선언 위치 | 사용 가능한 변수 |
인스턴스 내부 클래스 | 외부 클래스의 멤버 변수 위치 | 외부 인스턴스 변수, 외부 전역 변수 |
정적 내부 클래스 | 외부 클래스의 멤버 변수 위치 | 외부 전역변수 |
지역 내부 클래스 | 외부 클래스의 메서드나, 초기화 블럭 | 외부 인스턴스 변수, 외부 전역 변수 |
익명 내부 클래스 | 클래스 선언과 동시에 객체 생성 (1회성) | 외부 인스턴스 변수, 외부 전역 변수 |
인스턴스 내부 클래스 ex). class InnerClass
- 인스턴스 내부 클래스는 객체 내부에 멤버의 형태로 존재한다.
- 외부 클래스의 (cv, iv) 멤버 모두 내부 클래스에서 사용 가능하다
- 인스턴스 내부 클래스는 외부 클래스를 생성한 이후에 사용해야 한다.
(따라서 클래스 생성과 상관없이 사용하는 정적 변수, 정적 메서드는 인스턴스 내부 클래스에서 선언 불가능)
정적 내부 클래스 ex). static class StaticInnerClass
- 외부 클래스의 생성과 무관하게 정적 변수를 사용하려면 정적 내부 클래스 선언하면 된다.
- 외부의 static 정적 멤버만 내부클래스에서 호출할 수 있다.
지역 내부 클래스 ex). Class LocalInClass
- 메서드 내에서 정의되는 클래스
- 지역 변수처럼 메서드 내에서만 활용이 가능하므로, 메서드 내에서 선언 후 바로 객체를 생성해서 사용
- (메서드 호출 시에만 로딩되므로) 정적 클래스로 지정 할 수 없다.
익명 내부 클래스
- 이름을 알 수 없는 내부 클래스
- 클래스의 선언과 객체 생성을 동시에 한다. 따라서 하나의 객체만을 생성할 수 있고, 1회용이다.
- 익명이라는 점을 빼면 지역 내부 클래스와 유사하다
- 지역내부 클래스를 1회성으로 사용한다면, 익명 내부 클래스가 더 간결하다.
반응형
'IT 정보 > Java' 카테고리의 다른 글
[Java] Collection Framwork (Map편) (26) | 2022.05.18 |
---|---|
[Java] Collection Framwork (List편) (8) | 2022.05.18 |
[Java] Iterator 인터페이스 (40) | 2022.05.16 |
[Java]컬렉션 프레임워크 Comparator & Comparable (15) | 2022.05.16 |
[Java]컬렉션(Collection Framework) (10) | 2022.05.16 |