Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
- 티스토리챌린지
- thinking differently
- StringTokenizer
- Steve Jobs
- Computer Science
- MySQL
- Spring Framework
- 관계형 데이터베이스
- java.lang 패키지
- 코딩테스트
- 자바의 정석(기초편)
- 백준
- BFS
- Spring
- 소프티어
- Python
- Java script
- JavaScript
- 알고리즘
- nextInt
- Java
- softeer
- 오블완
- Programming
- 프로그래머스
- 해시
- SQL
- programmers
- 반복문
- 영어원서
Archives
- Today
- Total
도라에몽 개발자
내부클래스(inner class) 본문
내부클래스(inner class)
- 정의
- 클래스 안의 클래스
- 객체 생성 없이 내부 클래스에서 외부 클래스의 멤버에 접근할 수 있음. - 내부 클래스의 장점
- 내부 클래스에서 외부 클래스의 멤버들에 쉽게 접근할 수 있음.
- 코드의 복잡성을 줄일 수 있음. (캡슐화) - 내부 클래스의 종류 및 특징
- 내부 클래스의 종류와 유효범위(scope)는 변수와 동일함.
- 인스턴스(instance) 내부 클래스, 스태틱(static) 내부 클래스, 지역(local) 내부 클래스, 익명(anonymous) 내부 클래스
class Outer {
private class InstanceInner {} // 인스턴스 내부 클래스
protected static class StaticInner {} // 스태틱 내부 클래스
void myMethod() {
class LocalInner {} // 지역 내부 클래스
}
}
- 내부 클래스의 제어자와 접근성
- 내부 클래스의 제어자는 변수에 사용 가능한 제어자와 동일함.
- private, protected, public, (default)
- 인스턴스 멤버는 인스턴스 멤버에 직접 접근 가능함.
- 스태틱 멤버는 스태틱 멤버에 직접 접근 가능함.
- 스태틱 멤버는 인스턴스 멤버에 직접 접근 불가능함. (객체 생성 후 접근 가능)
- 내부 클래스에서 외부 클래스의 private 변수에 직접 접근 가능함.
- 내부 클래스에서 외부 클래스의 final이 붙은 변수(상수)에만 직접 접근 가능함.
- 참고로 JDK 1.8 부터는 지역변수의 경우에 값이 바뀌지 않았다면, 해당 지역변수는 상수로 간주됨.
→ 하지만, 혼선을 야기할 수 있기 때문에 final 붙여서 상수임을 표현하는 것을 권장함.
'LANGUAGE > Java' 카테고리의 다른 글
java.lang 패키지 및 유용한 클래스 (2) | 2023.11.20 |
---|---|
예외처리(Exception) (0) | 2023.11.16 |
익명 클래스(Anonymous Clas) (0) | 2023.11.15 |
java.lang 패키지 및 유용한 클래스 (1) | 2023.10.18 |
객체지향 프로그래밍(Object Oriented Programming; OOP) (0) | 2023.10.16 |