-
java 의 일급 객체란?program_language 및 궁금한것/Java 2022. 2. 10. 19:48
제가 일급객체라는 말을 처음 접한건 자바스크립트에서 였는데 일급객체가 단순 자바스크립트에만 해당하는 개념은 아니더군요. 함수형 프로그래밍에서 1급객체란 말이 많이 언급됩니다.
1급 객체란 무엇일까요?
1급시민(1급 객체)는 위키피디아에서 다음과 같이 정의하고 있습니다.
일급 객체와 이급 객체. ALGOL에서 실수는 표현식에 사용하거나 변수에 할당할 수 있으며, 프로시저에 매개변수로 넘겨질 수 있다. 하지만 프로시저의 경우 프로시저 콜에서 호출 대상 혹은 매개 변수로 등장할 수 있을 뿐이며, 프로시저를 반환하는 프로시저는 없다. 이런 측면에서 ALGOL에서의 프로시저는 이급 시민이다. 언제나 직접 나타나야 하며 변수나 연산식으로 대신 나타낼 수 없기 때문이다.
1급 객체의 충족 조건 세가지가 있습니다.
1. 변수나 데이터에 할당 할 수 있어야 한다.
2. 객체의 인자로 넘길 수 있어야 한다.
3. 객체의 리턴값으로 리턴 할 수 있어야 한다.
JAVA에서는 위의 조건에 해당되지 않습니다. 하지만 java의 Lambda는 메서드가 1개만 존재하는 인터페이스/클래스를 통해, 마치 함수를 전달하는 것처럼 여겨서, 함수를 1급 객체로 취급하지 않는 java의 단점을 어느정도 해결한 것이라 볼수 있습니다.
반응형'program_language 및 궁금한것 > Java' 카테고리의 다른 글
[Java] DateTime Millisecond 반올림하기 (0) 2023.02.08 [java] 박재성님의 리팩토링 후기 (0) 2022.02.09 [JAVA] 특정시간마다 반복 실행 Timer (0) 2022.02.08 [JAVA] Scanner와 Buffered Reader의 차이점 (알고리즘) (0) 2021.08.03 [JAVA] 천단위 콤마 넣기 (0) 2021.04.19