IT 개발/Java
[Java] 자바 - static 변수 및 static 메소드의 이해 (특징 및 사용법)
KADOSHOLY
2022. 6. 28. 03:28
반응형
자바 - static 변수 및 static 메소드의 이해 (특징 및 사용법)
자바에서 멤버변수(필드) 및 멤버함수(메소드) 앞에 static 키워드가 붙어 있는 변수나 메소드들이 있습니다. 이를 static 변수 및 static 메소드 라고하며, 일반적인 인스턴스 변수들과는 달리 프로그램 로딩시에 static영역의 메모리에 올라가기 때문에 객체 생성없이 사용할 수 있습니다. 보통 프로그램 전반에 걸친 전역변수나 공용으로 사용해야 할 변수를 필요로 할 때 사용되는 static 변수 및 메소드에 대해 알아보도록 하겠습니다.
목차
- static 변수 및 static 메소드 특징
- static 변수 및 static 메소드 사용목적
- 사용방법 및 예제
1. static 변수 및 static 메소드 특징
- 클래스가 메모리에 로드될때, 스태틱(static) 메모리 영역에 생성됩니다.
- 인스턴스를 생성하지 않고도 사용할 수 있습니다.
- 동일 클래스의 모든 인스턴스에서 공유하여 사용됩니다.
- 클래스당 하나만 생성되며, 클래스 멤버라고도 부릅니다.
- static 메소드 안에서는 static 멤버들만 사용할수 있고, 인스턴스 멤버는 사용할 수 없습니다.
2. static 변수 및 static 메소드 사용목적
- 모든 클래스에서 호출 가능한 전역변수나 전역함수를 만들기 위해 사용
- static 멤버는 클래스당 하나만 생성되어 클래스의 인스턴스 사이에서 공유됨으로 공유멤버가 필요할 때 사용
3. 사용방법 및 예제
static 멤버는 클래스이름.static멤버이름 형식으로 사용하면 됩니다.
1) Book 클래스 정의
public class Book {
static int price = 1000; // static 변수
public static void showPrice() { // static 메소드
System.out.println("가격:" + price);
}
}
2) Static멤버 사용
public class HelloWorld {
public static void main(String[] args) {
Book.price = 2000; // 객체 생성없이 클래스명으로 바로 사용
Book.showPrice(); // 객체 생성없이 클래스명으로 바로 사용
Book b1 = new Book(); // 객체 생성후 사용
b1.price = 4000; // 인스턴스 이름으로도 사용가능하나 클래스명으로 사용을 추천함
b1.showPrice(); // 인스턴스 이름으로도 사용가능하나 클래스명으로 사용을 추천함
}
}
3) 실행결과
가격:2000
가격:4000
반응형