코드스테이츠 17일차

안형준·2022년 5월 18일
0

코드스테이츠

목록 보기
17/32
post-thumbnail

1차 학습목표

내부 클래스의 개념을 이해하고 유형에 따른 선언 위치를 구분할 수 있다.
내부 클래스를 정의하고 사용할 수 있다.

👻내부 클래스(Inner Class)
내부 클래스(Inner Class)는 클래스 내에 선언된 클래스이다.
외부 클래스와 내부 클래스가 서로 연관되어 있을 때 사용하는데, 이로 인해 내부, 외부 클래스의 멤버끼리 쉽게 접근 할 수 있고 코드의 복잡성을 줄일 수 있다.

인스턴스 내부 클래스는 외부 클래스를 생성한 이후에 사용해야 하는데, 내부 클래스가 외부 클래스 생성과 무관하게 정적 변수를 사용하려면 정적 내부 클래스를 선언하면 된다.
정적 내부 클래스는 인스턴스 내부와 같이 클래스의 멤버 변수 위치에 정의하며 static 예약어를 사용한다.

지역 내부 클래스
지역 내부 클래스는 클래스의 멤버가 아닌 메서드 내에서 정의되는 클래스이다.
지역 변수처럼 정의된 메서드 내부에서만 사용가능 하므로 일반적으로 선언 후 바로 객체를 생성해서 사용한다.

익명 내부 클래스
익명 내부 클래스는 이름을 알 수 없는 내부 클래스를 의미한다.
클래스의 선언과 객체 생성을 동시에 하기 때문에 하나의 객체만을 생성할 수 있으며 일회용이다.
👻내부클래스의 종류, 특징, 선언
내부 클래스 : 클래스 안의 클래스
- 장점 : 
1) 내부 클래스에서 외부 클래스의 멤버들을 쉽게 접근할 수 있다.
2) 코드의 복잡성을 줄일 수 있다(Encapsulation)
 -> 내부 클래스는 외부 클래스가 만들어진 이후에 생성가능

내부 클래스의 종류, 특징 :
- 내부 클래스의 종류는 변수의 선언위치에 따른 종류(iv, cv, lv)와 같다.

👻내부클래스의 제어자와 접근성
인스턴스 멤버 -> static 멤버 O
static 멤버 -> 인스턴스 멤버 x

- 내부 클래스 접근 : 
1) 외부 클래스의 private 멤버도 접근 가능
2) static 클래스는 외부 클래스 인스턴스 멤버에 접근 가능
3) 외부 클래스의 lv는 final이 붙은 변수만 접근 가능(내부 클래스의 객체가 지역변수보다 더 오래 존재 가능하기 때문)
* 인스턴스의 멤버와 같이 생각하자


👻익명 클래스
익명 클래스 : 정의와 생성을 동시에 하는 클래스 (이름이 없으니 1회용)
익명 클래스의 사용 : new 조상클래스/구현인터페이스 이름( ){     }

오늘은 Collection Framework와 관련된 알고리즘 문제풀이와 내부 클래스(Inner Class)에 대한 개념을 학습했다.
저번 제어문 알고리즘 문제를 풀 때는 너무 어려워 답답한 마음이 많았었기에 이번에는 그런 일을 겪고싶지 않아 최대한 강의를 병행하며, 개념 학습을 충분히 한 후에 문제를 풀었다.
물론 다 풀지는 못했지만 스스로도 많은 문제들을 풀었고, 강사님들이 해설을 해주실 때 왜 그렇게 동작이 되는지에 대한 이해가 돼 재밌었다.
앞으로도 알고리즘 문제풀이를 계속 해서 코드와 친해지고자 하는 마음이 커졌다. 이렇게 점점 재미를 더 붙여나가다 보면 언젠가 큰 성장을 한 개발자가 될 수 있을 것이라고 믿는다.
오늘도 정말 고생했고 내일도 파이팅!

profile
개발 공부

0개의 댓글