Java에서 정확히 "정적"키워드는 무엇입니까?
7725 단어 codenewbiestaticjava
다음 코드를 보세요.
public class staticDemo{
public static void main(String args[]){
System.out.println("Hello world!"); //prints "Hello world"
}
}
"Hello world"가 기본 프로그램 맞죠?.자바 배우기 시작하는 방법입니다. 메인 메소드에 키워드
static
가 있다는 것을 눈치채셨나요? 이 정적은 무엇을합니까?static
메서드에서 main()
키워드를 사용하면 객체의 인스턴스 없이 main()
메서드를 호출할 수 있습니다. 즉, 클래스 이름을 사용하여 static
메서드를 호출할 수 있습니다.다른 예를 들어 보겠습니다.
class A{
static void show(){
System.out.println("static method in class A");
}
}
public class staticDemo{
public static void main(String args[]){
A.show() // prints "static method in class A"
}
}
자바의 정적 변수
static
변수는 선언된 클래스의 모든 인스턴스에 적용 가능한 변수입니다. 변수가 static
인 경우 해당 값은 모든 인스턴스에 대해 동일합니다. 인스턴스 중 하나가 정적 변수 값을 변경하면 다른 모든 인스턴스에도 반영됩니다.다음 코드를 고려하십시오 -
class A{
static int i;
}
public class staticDemo{
public static void main(String args[]){
A obj1= new A();
A obj2 =new A();
A obj3 =new A();
obj3.i=10;
System.out.println(obj1.i); // 10
}
}
참고 -
static
변수는 비정적 메서드에서 액세스할 수 있습니다. 그러나 비정적 변수는 static
메서드에서 액세스할 수 없습니다. 왜 그럴까요? 비정적 변수는 인스턴스가 변수를 호출해야 하기 때문에 여러 객체를 만들어 비정적 변수에 다른 값을 할당할 수 있습니다. 따라서 컴파일러가 내가 액세스해야 하는 값 인스턴스 값을 이해하는 데 모호함이 있습니다.## 자바의 정적 블록 -
static
블록은 정적 변수를 초기화하는 데 사용됩니다. static
블록은 클래스가 메모리에 로드될 때, 즉 한 번만 실행됩니다.class A{
static int i;
static{
i=9;
System.out.println("static block in A");
}
}
public class staticDemo{
static{
System.out.println("static block in main");
}
public static void main(String args[]){
System.out.println(A.i);
System.out.println("static in main");
}
}
항상 정적 블록이 먼저 실행됩니다. 정적 블록이 실행된 다음
main()
메서드가 실행됩니다. main()
메서드에는 A.i
클래스가 메모리에 로드되고 메모리가 로드되면 정적 블록이 실행되고 i
값이 인쇄되고 마침내 "기본에서 정적"이 인쇄됩니다.// output of above code
static block in main
static block in A
9
static in main
요약
static
블록은 생성자와 메서드보다 먼저 실행됩니다. static
있는 경우 코드의 순서대로 블록이 실행됩니다. static
메서드에서 액세스할 수 없습니다. 읽어주셔서 감사합니다!
static
에 대해 배웠기를 바랍니다. 잘못된 부분이 있으면 알려주세요 :)Let's get connect on .
즐거운 코딩하세요 :)
Reference
이 문제에 관하여(Java에서 정확히 "정적"키워드는 무엇입니까?), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/saitejaballa/what-exactly-static-keyword-is-in-java-1lnj텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)