코드스테이츠_국비교육/[Section1]

12_객체지향 프로그래밍 기초2(이너 클래스)_22.09.05

생각없이 해도 생각보다 좋다. 2022. 9. 5. 09:52

학습 목표

  • 내부 클래스의 개념
  • 내부 클래스 특징과 장점
  • 내부 클래스 분류 기준과 종류
  • 내부 클래스의 종류에 따른 유효 범위와 접근성


내부 클래스

>의미

: 클래스 내에 선언된 클래스

: 개발자의 편의를 위해 연관있는 클래스를 엮은 것임.

 

>특징 및 장점

: 코드의 단순화를 꾀할 수 있음.

: 캡슐화에 유용함.

: 외부 클래스의 멤버들에 쉽게 접근할 수 있음.

: 심지어 외부 클래스의 private 멤버에도 접근이 가능함.

//private 접근 제어자: 같은 클래스 내에서만 접근 가능

 

>내부 클래스의 종류

  • 인스턴스 내부 클래스
  • 정적 내부 클래스
  • 지역 내부 클래스
  • 익명 내부 클래스(생략)

//변수를 인스턴스 변수, 클래스 변수, 지역 변수로 구분하는 것과 비슷

 

>instance inner class

: 클래스 메서드처럼 클래스 내부에 작성하면 됨.

: 외부 클래스에 의존적임.

: 외부 클래스 변수로 참조변수를 만들고, 외부 클래스 생성자에 내부 클래스 인스턴스 생성 코드를 넣어야함.

: 외부 클래스에 의존적인만큼 외부 클래스에 대한 접근성이 좋음.

 

>static inner class

: static 변수랑 같은 개념

: 외부 클래스에 대해 비교적으로 독립적임.

: main같은 다른 클래스에서는 외부 클래스에 포인트 연산자( . )를 이용하여 접근할 수 있음.

: 다른 클래스에서 내부 클래스의 인스턴스를 생성하기 위해서 Outer.inner 형식으로 접근해야함.


>local inner class

: 지역 변수랑 같은 개녕

: 메서느 내부에 정의되고, 메서드 내부에서만 사용됨.

 

 

//무조건적으로 사용할 필요가 있는 문법은 아닌 것 같음.

//이런게 있다 정도로만 알아두자!

//안 써봐서 그런걸 수 있지만, 사실 이걸 쓰는게 편하고 가독성이 좋을지는 모르겠음.