코드 분석
public class Test {
private int a = 0;
private static int count = 0;
public int getA() { return a; }
public static int getCount() { return count; }
public static void test() {
int sum = 0;
sum = a; // (가)
sum += count; // (나)
System.out.println(getA()); // (다)
System.out.println(getCount()); // (라)
}
}
컴파일 오류가 발생하는 부분: (가) sum = a;
이유:
a
는 인스턴스 변수(private int a
)로, 객체를 생성해야 접근할 수 있습니다.- 하지만
test()
메서드는 정적 메서드(static
)로 선언되어 있어 인스턴스 없이 클래스 수준에서 호출됩니다. - 정적 메서드에서는 인스턴스 변수나 메서드에 직접 접근할 수 없습니다.
a
에 접근하려면Test
객체를 먼저 생성하고 그 객체를 통해 접근해야 합니다.
나머지 코드 분석
- (나)
sum += count;
count
는static
변수이므로 정적 메서드test()
에서 문제없이 접근 가능합니다. 오류 없음. - (다)
System.out.println(getA());
getA()
는 인스턴스 메서드입니다. 정적 메서드test()
에서 호출하려면Test
객체를 생성한 후 해당 객체로getA()
를 호출해야 합니다. 따라서 여기에서도 컴파일 오류가 발생합니다. - (라)
System.out.println(getCount());
getCount()
는 정적 메서드(static
)이므로test()
에서 문제없이 호출 가능합니다. 오류 없음.
오류 수정 방법
test()
메서드에서 a
와 getA()
를 사용하려면 Test
객체를 생성해야 합니다. 수정된 코드는 다음과 같습니다:
public class Test {
private int a = 0;
private static int count = 0;
public int getA() { return a; }
public static int getCount() { return count; }
public static void test() {
Test obj = new Test(); // 객체 생성
int sum = 0;
sum = obj.a; // (가) 객체를 통해 접근
sum += count; // (나)
System.out.println(obj.getA()); // (다) 객체를 통해 호출
System.out.println(getCount()); // (라)
}
}
질문: 컴파일 오류 없이 실행될 때 (가) ~ (라) 중에서 참조 오류가 발생하지 않는 부분은?
- (가):
sum = a
→ 컴파일 오류 (인스턴스 변수a
를 정적 메서드에서 직접 접근). - (나):
sum += count
→ 정상.count
는static
변수이므로 참조 오류 없음. - (다):
System.out.println(getA())
→ 컴파일 오류 (인스턴스 메서드getA()
를 정적 메서드에서 직접 호출). - (라):
System.out.println(getCount())
→ 정상.getCount()
는static
메서드이므로 참조 오류 없음.
답: (나), (라)
따라서 정답은 ② 나, 라입니다.
다만, 아마도 하나의 코드라인이 컴파일 오류면 전체가 컴파일이 안되므로 이의제기가 들어가서 모두 정답처리가 된 문제로 보입니다.
추가 설명
- Java에서
static
메서드나 변수는 클래스 수준에서 동작하며, 객체 생성 없이 접근 가능합니다. - 반면, 인스턴스 변수나 메서드는 특정 객체에 속하므로 객체를 생성한 후에만 접근할 수 있습니다.
- 위 코드에서
a
와getA()
를 사용하려면Test
객체를 생성해야 하며, 그렇지 않으면 컴파일 오류가 발생합니다.
'정보시스템감리사 > 기출문제_21년_22회' 카테고리의 다른 글
37_요구사항 도출 기법 (1) | 2025.04.17 |
---|---|
36_응집도(cohesion)_구분하기 (0) | 2025.04.17 |
25_정보시스템감리원 윤리 가이드 (0) | 2025.04.16 |
23_행정기관 및 공공기관 정보시스템 구축·운영 지침2 (0) | 2025.04.16 |
22_행정기관 및 공공기관 정보시스템 구축.운영지침 (0) | 2025.04.16 |