2021-07-06 강의록_람다식2

MIN.DI·2021년 7월 6일
0

강의록

목록 보기
28/54

람다식 강의록 1

익명구현객체 오버라이딩 메소드 블록에서든, 람다식의 중괄호 블록에서든
클로저(생명주기가 다른 두 변수간에, 생명주기가 긴 쪽에서 생명주기가 짧은 변수를 사용하려는 현상) 현상 발생
--> final 상수 만들어 해결함
클로저

클래스블록 안에 선언된 또다른 클래스를 중첩클래스라고 한다.
중첩클래스는 바깥쪽 클래스에서만 쓸 목적으로 클래스 안쪽에 집어 넣음.
이렇게 할 바에는 바깥 클래스블록의 바깥에 선언하면 좋은데,
바깥쪽 클래스 전용으로 쓸 클래스를 내부 클래스(중첩 클래스)로 선언함.

this

익명객체에서 this는 자기 자신의 메모리주소를 가지고있지 않다.
이 람다식의 코드블록을 가지고있는 클래스의 주소를 가짐.


중첩된 클래스의 타입 레퍼런스는 위와 같음.
(바깥쪽 클래스명 $ 중첩클래스명)
람다식 코드가 들어있는 클래스의 객체(인스턴스)를 가리킴.

따라서 inner에 접근하려면 this를 사용함.

바깥클래스의 멤버에 접근하려면, 바깥 클래스.this.메소드 로 접근한다.

함수적 인터페이스


var 타입

지역변수 타입은 var타입으로 선언 가능하다.
이 경우 컴파일러가 자동으로 타입추론해서 변수타입을 결정함.
단, 개발자 입장에서도 타입추론을 해야하므로 부담이 있음.

지역변수, 필드, 매개변수 등 혼합해서 사용할 때,
지역변수만 구분해서 사용하는 의미로 var 로 사용하면 편함.

profile
내가 보려고 쓰는 블로그

0개의 댓글

관련 채용 정보