카테고리 없음

[JAVA] 221-17

codecodekode 2024. 10. 19. 13:34

다음 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);
  }
}

실행 과정

  1. 인스턴스 생성 및 변수 초기화
    • A m = new A();로 A 클래스의 인스턴스를 생성합니다.
    • m.a = 100;으로 m.a를 100으로 초기화합니다.
  2. func1 호출
    • func1(m);을 호출합니다.
    • m.a *= 10;으로 m.a의 값을 10배로 증가시킵니다.
    • 현재 m.a는 1000이 됩니다.
  3. m.b에 값 할당
    • m.b = m.a;로 m.b에 현재 m.a의 값을 할당합니다.
    • 현재 m.b는 1000입니다.
  4. func2 호출
    • func2(m);을 호출합니다.
    • m.a += m.b;로 m.a에 m.b를 더합니다.
    • 즉, m.a = m.a + m.b;로 계산하면:
      • m.a = 1000 + 1000 → m.a = 2000.
  5. 출력
    • System.out.printf("%d", m.a);에서 현재 m.a의 값인 2000이 출력됩니다.