Ex1RefMainV1 질문
[질문 내용]
안녕하세요, 영상에서 영한님이 "메서드를 전달"하라고 하시기에 다음과 같이 풀어봤는데, 영한님 풀이와는 접근 방법이 조금 다른 것 같아 문의드립니다.
제가 봤을 때는 영한님 풀이의 경우 "메서드를 전달"한다는 느낌보다는 "메서드를 구현해놓은 인스턴스를 전달"한다는 느낌으로 받아들여져서 질문드립니다.
다음과 같이 풀이해도 익명 클래스의 목적에 부합하는 풀이일까요?
추가로 강의록에 "그런데 지금까지 학습한 내용으로는 메서드를 전달할 수 있는 방법이 없다."라고 언급되었는데 이는 결국 "(아직 학습하지 않았지만) 메서드를 전달할 수 있는 방법이 존재한다."라고 해석되고, 이에 해당하는 방법이 아래 풀이와 같은 방법인지 궁금합니다.
// my solution-2
package nested.anonymous.ex;
import nested.local.Process;
import java.util.Random;
public class Ex1RefMainSOL2 {
public void process(Process process) {
System.out.println("프로그램 시작");
process.run();
System.out.println("프로그램 종료");
}
public static void main(String[] args) {
Ex1RefMainSOL2 main = new Ex1RefMainSOL2();
main.process(new Process() {
int randomValue = new Random().nextInt(6) + 1;
@Override
public void run() {
System.out.println("주사위 = " + randomValue);
}
});
main.process(new Process() {
@Override
public void run() {
for (int i = 1; i <= 3; i++) {
System.out.println("i = " + i);
}
}
});
}
}
답변 1
0
다음 영상 보니 바로 이에 대한 풀이가 있어서 혹시 저와 같은 의문 가지실 분들을 위해 댓글 남깁니다.
다음 강의인 익명 클래스 활용3의 Ex1RefMainV4 문제(영상 3분 부분)를 확인하시면 됩니다.
0
++
위 코드도 "메서드만 전달"한 것은 아님.
"인스턴스를 넘긴 것이지만, 그 참조가 남아있지 않게 넘긴 것"뿐임.
"메서드만 전달"하는 방식은 다음 강의의 lambda 부분(영상 5분 40초) 참고
문제와 풀이
0
23
1
섹션 2 퀴즈 9번
0
31
2
강의노트 내용이 이해가 되지 않아서 문의드립니다.
0
47
1
중급1편, 래퍼클래스 문제와풀이2 로또제너레이터 질문
0
67
1
setVlaue질문
0
92
3
안녕하세요 코딩테스트와 병행하고 싶어서 질문드립니다.
0
92
1
findValue의 파라메터까지 래퍼클래스 배열인 이유가 있을까요?
0
74
1
아래 글처럼 toString() 강의부터 화면이 안보여요
0
99
2
TemporalAdjusters의 lastDayOfNextMonth(), lastDayOfNextYear() 메서드 지원 안함
0
84
2
오타 제보도 되나요?
0
90
2
지역 클래스 예제3 지역변수 질문
0
69
2
래퍼클래스 박싱 출력
0
60
1
자바 equals() 메소드에 대한 물리적 동일성, 논리적 동등성 질문
0
105
3
강의록 오타 제보
0
69
2
자바의 기본 클래스들에 관하여
0
70
1
실무에서 중첩(내부) 클래스 사용하나요?
0
79
1
지역 클래스 - 지역 변수 캡처3
0
55
1
12:30 의 newClassGrade 질문이 있습니다.
0
57
1
날짜와 시간 문제풀이가 막히는데
0
100
2
내부 클래스의 바깥 클래스 참조
0
68
1
스트링 풀, new String()
0
105
3
정적 중첩 클래스 사용 이유
0
97
1
status.getCode() 대신 status.code 사용
1
81
1
메서드의 지역변수명과 내부클래스의 멤버메서드에서의 지역변수명의 중복관련
0
75
1





