다음 Java 코드의 출력 결과를 작성하시오.
class A {
int a;
int b;
}
public class Main {
static void func1(A m) {
m.a *= 10;
}
static void func2(A m) {
m.a += m.b;
}
public static void main(String args[]){
A m = new A();
m.a = 100;
func1(m);
m.b = m.a;
func2(m);
System.out.printf("%d", m.a);
}
}
실행 과정
- 인스턴스 생성 및 변수 초기화
- A m = new A();로 A 클래스의 인스턴스를 생성합니다.
- m.a = 100;으로 m.a를 100으로 초기화합니다.
- func1 호출
- func1(m);을 호출합니다.
- m.a *= 10;으로 m.a의 값을 10배로 증가시킵니다.
- 현재 m.a는 1000이 됩니다.
- m.b에 값 할당
- m.b = m.a;로 m.b에 현재 m.a의 값을 할당합니다.
- 현재 m.b는 1000입니다.
- func2 호출
- func2(m);을 호출합니다.
- m.a += m.b;로 m.a에 m.b를 더합니다.
- 즉, m.a = m.a + m.b;로 계산하면:
- m.a = 1000 + 1000 → m.a = 2000.
- 출력
- System.out.printf("%d", m.a);에서 현재 m.a의 값인 2000이 출력됩니다.