다음 Java 코드에서 컴파일 오류가 발생하는 표시 하나를 쓰시오. 다른 문장은 독립적으로 문법과 타입이 올바르다고 가정한다.
class Sample {
int value = 7;
static int shared = 3;
static int calculate() {
int local = shared; // ㉠
return value * local; // ㉡
}
int read() {
return value + shared; // ㉢
}
}모범답안
㉡
풀이와 판단 근거
calculate는 static 메서드이므로 Sample 객체가 없는 상태에서도 호출될 수 있다. static 필드 shared와 지역 변수 local은 사용할 수 있지만 인스턴스 필드 value를 객체 참조 없이 직접 읽을 수 없다.
따라서 `return value * local`인 ㉡에서 컴파일 오류가 발생한다. 인스턴스 메서드 read에서는 value와 shared를 모두 읽을 수 있다.
자주 틀리는 지점
- static 필드 shared를 읽는 ㉠을 오류로 선택함
- 인스턴스 메서드에서 static 필드를 읽을 수 없다고 보고 ㉢을 선택함
- local이 static 변수가 아니라는 이유로 calculate에서 사용할 수 없다고 봄
자동 판정 방식
한글·영문 동의어와 문항별 필수 개념을 확인하며, 정답 단어가 부정되거나 반대 개념과 함께 쓰이면 자동 정답으로 확정하지 않습니다. 부분점수는 ITPASSLAB의 학습용 예상 점수입니다.