Home > 2024 > Java > ☕️[Java] 변수와 초기화

☕️[Java] 변수와 초기화
Java Programming Language

변수와 초기화

변수의 종류

  • 멤버 변수(필드): 클래스에 선언.
  • 지역 변수: 메서드에 선언, 매개변수도 지역 변수의 한 종류입니다.

멤버 변수, 필드 예시

public class Student {
    String name;
    int age;
    int grade;
}
  • name, age, grade 는 멤버 변수입니다.

지역 변수 예시

public class ClassStart3 {
    public static void main(String[] args) {
        Student student1;
        student1 = new Student();
        Student student2 = new Student();
    }
}
  • student1, student2는 지역 변수입니다.
public class MethodChange1 {

  public static void main(String[] args) {
    int a = 10;
    System.out.println("메서드 호출 전: a = " + a);
    changePrimitive(a);
    System.out.println("메서드 호출 후: a = " + a);
  }

  static void changePrimitive(int x) {
   x = 20;
  }
}
  • a, x(매개변수, Parameter)는 지역변수입니다.
  • 지역 변수는 이름 그대로 “특정 지역에서만 사용되는 변수라는 뜻입니다.”
    • 예를 들어서 변수 xchangePrimitive() 메서드의 블록에서만 사용됩니다.
      • changePrimitive() 메서드가 끝나면 제거됩니다.
      • a 변수도 마찬가지입니다. main() 메서드가 끝나면 제거됩니다.

변수의 값 초기화

  • 멤버 변수: 자동 초기화.
    • 인스턴스의 멤버 변수는 인스턴스를 생성할 때 자동으로 초기화됩니다.
    • 숫자(int) = 0, boolean = false, 참조형 = null(null 값은 참조할 대상이 없다는 뜻으로 사용됩니다.)
    • 개발자가 초기값을 직접 지정할 수 있습니다.
  • 지역 변수: 수동 초기화.
    • 지역 변수는 항상 직접 초기화해야 합니다.

“멤버 변수의 초기화를 살펴봅시다”
InitData

package ref;

public class InitData {
    int value1; // 초기화 하지 않음
    int value2 = 10; // 10으로 초기화
}
  • value1은 초기값을 지정하지 않았고, value2는 초기값을 10으로 지정했습니다.

InitMain

package ref;

public class initMain {

  public static void main(String[] args) {
    InitData data = new InitData();
    System.out.println("value1 = " + data.value1);
    System.out.println("value2 = " + data.value2);
  }
}

실행 결과

value1 = 0
value2 = 10
  • value1은 초기값을 지정하지 않았지만 멤버 변수는 자동으로 초기화 됩니다.
    • 숫자는 0으로 초기화됩니다.
  • value210으로 초기값을 지정해두었기 때문에 객체를 생성할 때 10으로 초기화됩니다.