Java에서 정확히 "정적"키워드는 무엇입니까?

7725 단어 codenewbiestaticjava
우리 중 많은 사람들이 여전히 static이라는 키워드와 혼동합니다. 이제 정적 키워드가 어떻게 사용되는지 논의할 것입니다. 그리고 재작성에서 많은 코드를 저장하는 데 어떻게 도움이 될까요?

다음 코드를 보세요.

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 .



    즐거운 코딩하세요 :)

    좋은 웹페이지 즐겨찾기