package JinsuStudy.Static;
public class StaticExample {
// Static 변수 (정적 변수)
// 1.static 키워드를 사용하여 선언된 변수는 정적 변수입니다. 정적 변수는 클래스에 속하며, 모든 객체가 공유하는 변수입니다.
// 2.정적 변수는 객체의 생성과 상관없이 사용할 수 있으며, 클래스의 인스턴스에 종속되지 않습니다.
static int staticVariable = 10;
public static void main(String[] args) {
System.out.println(StaticExample.staticVariable); // 정적 변수 사용
}
// Static 메서드 (정적 메서드):
// static 키워드를 사용하여 선언된 메서드는 정적 메서드입니다. 정적 메서드는 클래스 수준에서 호출되며, 인스턴스를 생성하지 않고 사용할 수 있습니다.
// 주로 유틸리티 메서드나 헬퍼 메서드로 활용됩니다.
static void staticMethod(){
System.out.println("This is a static method");
}
public static void main(String[] args) {
StaticExample.staticMethod(); // 정적 메서드 호출
}
static {
System.out.println("This is a static block");
}
//Static 블록 (정적 블록):
//static 키워드로 선언된 정적 블록은 클래스가 로딩될 때 실행되는 블록입니다. 주로 정적 변수의 초기화나 정적 메서드 호출 시 사용됩니다.
public static void main(String[] args) {
// 정적 블록은 클래스가 로딩될 때 실행됨.
}
// Static 클래스 (정적 클래스):
// static 키워드가 클래스 앞에 사용되면 클래스를 정적 클래스로 만듭니다. 정적 클래스는 외부에서 인스턴스화할 수 없고, 정적 멤버만 포함할 수 있습니다.
static class StaticNestedClass{
static int nestdVariable = 5;
}
public static void main(String[] args) {
System.out.println(StaticNestedClass.nestdVariable);
}