JAVA/포스팅

자바 객체 변수 종류

짜집퍼박사(짜박) 2023. 11. 6. 12:44

자바에서 객체 변수는 객체를 참조하고 해당 객체에 접근하는 데 사용되는 변수입니다. 객체 변수는 다양한 종류가 있으며, 다음은 자바에서 사용되는 주요 객체 변수의 종류에 대한 설명입니다.

 

1. 인스턴스 변수 (Instance Variables)

- 인스턴스 변수는 객체(인스턴스)마다 별도로 존재하며, 해당 객체의 상태를 나타내는 속성을 저장합니다.
- 클래스 내부에 선언되지만 메서드 외부에 위치하며, 객체를 생성할 때 메모리에 할당됩니다.
- 인스턴스 변수는 객체의 상태를 유지하고 객체 간에 데이터 공유가 아니라 객체마다 고유한 값을 가집니다.

public class Car {
    String model;   // 인스턴스 변수
    int maxSpeed;   // 인스턴스 변수
}

 

2. 클래스 변수 (Class Variables 또는 Static Variables)

- 클래스 변수는 클래스 내의 모든 객체에 대해 동일한 값을 공유하며, 클래스 수준의 속성을 나타냅니다.
- static 키워드로 선언되며, 클래스가 로드될 때 메모리에 할당되어 객체를 생성하지 않아도 사용할 수 있습니다.
- 클래스 변수는 객체 간에 데이터를 공유하며 변경 사항은 모든 객체에 영향을 미칩니다.

public class Student {
    static int studentCount; // 클래스 변수
    String name;            // 인스턴스 변수
}

 

3. 지역 변수 (Local Variables)

- 지역 변수는 메서드 내에서 선언되며 해당 메서드 내에서만 사용할 수 있는 변수입니다.
- 메서드가 실행될 때 생성되고 메서드 실행이 완료되면 소멸합니다.
- 지역 변수는 메서드 내의 임시 데이터를 저장하는 데 사용됩니다.

public void printInfo() {
    int age = 25; // 지역 변수
    System.out.println("나이: " + age);
}

 

4. 매개변수 (Parameters)

- 메서드의 매개변수는 해당 메서드에 전달된 인수를 저장하는 데 사용되는 변수입니다.
- 메서드 호출 시 전달된 값을 메서드 내에서 활용할 수 있습니다.
- 매개변수도 지역 변수의 일종이며 메서드 내에서만 유효합니다.

public void calculateSum(int num1, int num2) { // num1, num2는 매개변수
    int sum = num1 + num2; // 지역 변수
}

 

5. 인스턴스 변수와 클래스 변수의 차이

- 인스턴스 변수는 객체마다 다른 값을 가지며, 객체의 상태를 나타냅니다.
- 클래스 변수는 모든 객체가 공유하는 값을 가지며, 클래스 수준의 데이터를 나타냅니다.
- 인스턴스 변수는 객체 생성 시 초기화되지만 클래스 변수는 클래스가 로드될 때 초기화됩니다.

 

각 객체 변수 유형은 다른 목적을 가지며 다른 범위와 생명주기를 갖습니다. 올바른 변수 유형을 선택하고 사용하여 프로그램의 데이터 관리를 효율적으로 수행할 수 있습니다.

 

With ChatGPT