반응형
이것이 자바다 (신용권, 한빛미디어) 연습문제 풀이
...
[6번]
다음 Chatting 클래스는 컴파일 에러가 발생합니다. 원인이 무엇입니까?
...
Chatting.java (오류 안나게 수정함)
package exercise.exercise06;
public class Chatting {
void startChat(String chatId) {
final String nickName = "닉네임";
Chat chat = new Chat() {
@Override
public void start() {
String inputData = "안녕하세요";
String message = String.format("[%s] %s", nickName, inputData);
sendMessage(message);
}
};
chat.start();
}
class Chat{
void start() {}
void sendMessage(String message) {
System.out.println("chat : "+message);
}
}
}
...
ChattingRun.java
package exercise.exercise06;
public class ChattingRun {
public static void main(String[] args) {
Chatting chatting = new Chatting();
chatting.startChat("닉네임1");
}
}
...
해설
* 로컬 메소드에서 선언된 String nickName을 내부 객체에서 사용하면 nickName 은 final 특성을 갖게 된다.
* 그러므로 선언 후에 값을 대입해서 변경시킬 수 없다.
반응형
'컴퓨터 > Java' 카테고리의 다른 글
[Java] List<Map<String, Object>> 을 List<Map<String, String>> 으로 형변환하기 (0) | 2023.02.27 |
---|---|
[Java 공부] 프로그래밍 언어와 Java 의 특징 (2) | 2022.04.03 |
[JAVA] 이것이 자바다 (신용권, 한빛미디어) 6단원 연습문제_5번 풀이 (0) | 2021.11.09 |
[JAVA] 이것이 자바다 (신용권, 한빛미디어) 6단원 연습문제_4번 풀이 (0) | 2021.11.08 |
[JAVA] java 생성자와 메소드_getter, setter(게터세터) (2) | 2021.10.27 |
댓글