학습 목표
- 내부 클래스의 개념
- 내부 클래스 특징과 장점
- 내부 클래스 분류 기준과 종류
- 내부 클래스의 종류에 따른 유효 범위와 접근성
내부 클래스
>의미
: 클래스 내에 선언된 클래스
: 개발자의 편의를 위해 연관있는 클래스를 엮은 것임.
>특징 및 장점
: 코드의 단순화를 꾀할 수 있음.
: 캡슐화에 유용함.
: 외부 클래스의 멤버들에 쉽게 접근할 수 있음.
: 심지어 외부 클래스의 private 멤버에도 접근이 가능함.
//private 접근 제어자: 같은 클래스 내에서만 접근 가능
>내부 클래스의 종류
- 인스턴스 내부 클래스
- 정적 내부 클래스
- 지역 내부 클래스
- 익명 내부 클래스(생략)
//변수를 인스턴스 변수, 클래스 변수, 지역 변수로 구분하는 것과 비슷
>instance inner class
: 클래스 메서드처럼 클래스 내부에 작성하면 됨.
: 외부 클래스에 의존적임.
: 외부 클래스 변수로 참조변수를 만들고, 외부 클래스 생성자에 내부 클래스 인스턴스 생성 코드를 넣어야함.
: 외부 클래스에 의존적인만큼 외부 클래스에 대한 접근성이 좋음.
>static inner class
: static 변수랑 같은 개념
: 외부 클래스에 대해 비교적으로 독립적임.
: main같은 다른 클래스에서는 외부 클래스에 포인트 연산자( . )를 이용하여 접근할 수 있음.
: 다른 클래스에서 내부 클래스의 인스턴스를 생성하기 위해서 Outer.inner 형식으로 접근해야함.
>local inner class
: 지역 변수랑 같은 개녕
: 메서느 내부에 정의되고, 메서드 내부에서만 사용됨.
//무조건적으로 사용할 필요가 있는 문법은 아닌 것 같음.
//이런게 있다 정도로만 알아두자!
//안 써봐서 그런걸 수 있지만, 사실 이걸 쓰는게 편하고 가독성이 좋을지는 모르겠음.
'코드스테이츠_국비교육 > [Section1]' 카테고리의 다른 글
13_객체지향 프로그래밍 심화(캡슐화)_22.09.06 (0) | 2022.09.06 |
---|---|
13_객체지향 프로그래밍 심화(상속)_22.09.06 (2) | 2022.09.06 |
12_객체지향 프로그래밍 기초2(생성자)_22.09.05 (0) | 2022.09.04 |
11_객체지향 프로그래밍 기초_22.09.02 (0) | 2022.09.02 |
10_배열_22.09.01 (0) | 2022.09.02 |