자바에서 변수가 적용될 수 있는 인스턴스, 메서드, 멤버, 블록, 클래스 변수의 개념과 사용 예시를 알아보고자 한다.
1. 인스턴스 변수 (Instance Variable)
- 정의: 객체가 생성될 때마다 각 객체가 별도로 가지는 변수
- 적용 대상: 클래스의 멤버 변수 중 하나로, 객체를 통해 접근
- 생명 주기: 해당 인스턴스(객체)가 메모리에서 해제될 때까지 유지
- 특징:
- 인스턴스(객체)마다 별도의 값을 가짐.
new
예약어를 사용하여 인스턴스를 생성한 후 접근할 수 있음.
인스턴스 변수 사용 예시
class Person {
// 인스턴스 변수: 각 객체마다 별도로 생성됨
String name;
int age;
}
public class Main {
public static void main(String[] args) {
Person p1 = new Person();
p1.name = "kimgoat"; // 객체 Person을 통해 Person이 가지는 변수 name에 접근
p1.age = 13; // 객체 Person을 통해 Person이 가지는 변수 age에 접근
Person p2 = new Person();
p2.name = "kimbob";
p2.age = 20;
System.out.println(p1.name + ", " + p1.age); // kimgoat, 13
System.out.println(p2.name + ", " + p2.age); // kimbob, 20
}
}
2. 클래스 변수 (Class Variable)
- 정의: 모든 객체가 공유하는 변수
- 적용 대상:
static
키워드를 사용한 변수. 인스턴스 없이 클래스명으로 접근 - 생명 주기: 프로그램이 시작되어 해당 클래스가 로드될 때부터 종료될 때까지 유지
- 특징:
- 모든 객체가 같은 값을 공유
- 인스턴스를 생성하지 않아도 클래스명으로 바로 접근 가능 (`Counter.count`).
- 메모리에 한 번만 로드됨.
클래스 변수 사용 예시
class Counter {
// 클래스 변수: 모든 객체가 공유
static int count = 0;
public Counter() {
count++; // 객체가 생성될 때마다 증가
}
}
public class Main {
public static void main(String[] args) {
new Counter(); // count = 1
new Counter(); // count = 2
System.out.println(Counter.count); // 출력: 2
}
}
3. 멤버 변수 (Member Variable)
- 정의: 클래스의 구성 요소(필드)로 선언된 변수
- 적용 대상: 인스턴스 변수와 클래스 변수 모두 멤버 변수
- 특징:
- 클래스 안에 선언된 모든 변수는 멤버 변수
- 인스턴스 변수와 클래스 변수로 구분
- 클래스 외부에서는 객체를 통해서 또는 클래스명으로 접근
4. 지역 변수 (Local Variable)
- 정의: 메서드나 생성자, 블록 내에서 선언된 변수로, 해당 영역이 끝나면 사라짐
- 적용 대상: 메서드 내, 생성자 내, 또는 제어문(블록) 안에서 사용되는 변수
- 생명 주기: 변수가 선언된 블록이 종료되면 메모리에서 해제
- 특징:
- 선언된 블록을 벗어나면 접근 불가
- 초기화 없이 사용하면 컴파일 오류가 발생
지역 변수 사용 예시
public class Main {
public static void main(String[] args) {
int x = 10; // 지역 변수: 메서드 내에서만 유효
if (x > 5) {
int y = 20; // 제어문 블록 내의 지역 변수
System.out.println("y: " + y);
}
// System.out.println(y); // 오류: y는 블록 밖에서 사용 불가
}
}
5. 매개변수 (Parameter)
- 정의: 메서드나 생성자에 입력값을 전달받기 위한 변수
- 적용 대상: 메서드 호출 시 전달된 값을 받아 처리
- 생명 주기: 해당 메서드가 실행될 동안만 유지
- 특징:
- 메서드나 생성자에 전달된 입력값을 임시로 저장
- 호출 시마다 새로운 값을 전달받음
매개변수 사용 예시
public class Calculator {
public int add(int a, int b) { // a, b는 매개변수
return a + b;
}
}
public class Main {
public static void main(String[] args) {
Calculator calc = new Calculator();
int result = calc.add(3, 4); // 3과 4를 매개변수로 전달
System.out.println(result); // 출력: 7
}
}
6. 블록 변수 (Block Variable)
- 정의: 제어문(
if
,for
,while
등) 또는 중괄호 블록 내에서만 사용되는 변수 - 적용 대상: 특정 블록 내부에서만 유효
- 특징:
- 해당 블록이 종료되면 변수는 메모리에서 해제
- 주로 반복문, 조건문 안에서 사용됨
블록 변수 사용 예시
public class Main {
public static void main(String[] args) {
for (int i = 0; i < 3; i++) { // i는 블록 변수
System.out.println("i: " + i);
}
// System.out.println(i); // 오류: i는 블록 밖에서 사용 불가
}
}
'🗣️ Programming Language > Java' 카테고리의 다른 글
[Java] 자바 변수와 관련된 주요 키워드 정리 (0) | 2024.10.19 |
---|---|
[Java] ArrayList 구현 - get(), add(), remove(), toString() (0) | 2024.01.06 |
[Java] Class - Scanner(스캐너) (0) | 2024.01.05 |
[Java] 조건문 - 삼항 연산자(ternary operator) (0) | 2024.01.04 |