728x90
728x90
static
static 은 메서드 혹은 변수에 붙여 사용할 수 있는데 이를 클래스에서 유용하게 사용할 수 있습니다. 만약 클래스 안의 멤버에 static이 붙으면 그 멤버는 클래스의 객체를 선언하지 않고 바로 콜해서 사용할 수 있습니다.
import java.io.*;
class Main {
public static void main(String[] args) {
ClassExample.mInt = 3;
ClassExample.Print();
ClassExample c = new ClassExample();
c.mInt = 20;
c.Print();
}
}
class ClassExample {
public static int mInt;
public static void Print() {
System.out.println( mInt );
}
}
위 코드는 ClassExample 클래스의 변수 mInt와 Print 메서드에 static을 붙인 뒤 main 메서드에서 사용한 예제입니다.
- 5번째와 6번째 줄을 보면 static이 붙은 mInt 변수와 Print 메서드를 객체 선언 없이 직접 사용한 것을 볼 수 있습니다. 이는 객체에 메모리를 할당하지 않고 사용할 수 있는 것처럼 보이지만, 사실 static이 붙은 멤버들은 프로그램이 시작될 때 우선 메모리에 할당되기 때문에 new를 통한 객체 초기화가 필요 없는 것입니다.
- 예시의 8번째 줄부터 나오는 소스코드처럼 new를 사용하여 객체를 만들고 그 객체를 통해 멤버들을 제어하셔도 됩니다.
main 메서드에 static이 붙어야 하는 이유는 main 메서드가 프로그램이 처음 시작되는 메서드이기 때문입니다. main 메서드보다 빨리 실행될 수 있는 코드가 없기 때문에 static을 사용하지 않으면 main 메서드의 메모리를 할당해줄 부분이 존재하지 않습니다. 때문에 프로그램 시작과 함께 main 메소드의 메모리를 할당해야 합니다.
static을 사용할 때 클래스 내에서 static 을 사용하는 메서드는 멤버변수 사용 시 static 멤버변수만 사용 가능하다는 점을 주의하시기 바랍니다.
728x90
728x90
'비전공자의 개발과 친해지기 > 클래스와 객체' 카테고리의 다른 글
[JAVA : 클래스와 객체]7. 오버라이딩 (0) | 2022.06.10 |
---|---|
[JAVA : 클래스와 객체]6. 상속 (0) | 2022.06.08 |
[JAVA : 클래스와 객체]4. 접근제한자 (0) | 2022.04.18 |
[JAVA : 클래스와 객체]3. 생성자(constructor) (1) | 2022.04.14 |
[JAVA : 클래스와 객체]2. 멤버 (0) | 2022.04.13 |