정적 변수 Java

정적은 다음과 같습니다.

  1. 정적 변수
  2. 정적 메서드
  3. 정적 코드 블록.

먼저 정적 변수와 정적 메서드를 살펴보겠습니다.

정적 변수 란 무엇입니까? Java?

정적 변수 Java 클래스에 속하며 실행 시작 시 한 번만 초기화되는 변수입니다. 객체(인스턴스)가 아닌 클래스에 속하는 변수입니다. 정적 변수는 실행 시작 시 한 번만 초기화됩니다. 이러한 변수는 인스턴스 변수를 초기화하기 전에 먼저 초기화됩니다.

  • 클래스의 모든 인스턴스가 공유할 단일 복사본
  • 정적 변수는 클래스 이름으로 직접 액세스할 수 있으며 객체가 필요하지 않습니다.

구문 :

<class-name>.<variable-name>

정적 방법이란 무엇입니까? Java?

정적 메소드 Java 객체가 아닌 클래스에 속하는 메서드입니다. 정적 메서드는 정적 데이터에만 액세스할 수 있습니다. 객체(인스턴스)에 속하지 않고 클래스에 속해 있는 메소드입니다. 정적 메서드는 정적 데이터에만 액세스할 수 있습니다. 비정적 데이터(인스턴스 변수).

  • 정적 메서드는 다른 정적 메서드만 호출할 수 있으며 해당 메서드에서 비정적 메서드를 호출할 수는 없습니다.
  • 정적 메소드는 클래스 이름으로 직접 액세스할 수 있으며 객체가 필요하지 않습니다.
  • 정적 메소드는 어쨌든 "this" 또는 "super" 키워드를 참조할 수 없습니다.

구문 :

<class-name>.<method-name>

참고 : main 메소드는 인스턴스화가 발생하기 전에 애플리케이션을 실행하기 위해 액세스할 수 있어야 하므로 정적입니다.

몇 가지 연습을 통해 정적 키워드의 뉘앙스를 배우자!

예: 정적 변수 및 메서드를 호출하는 방법

단계 1) 다음 코드를 편집기에 복사하세요.

public class Demo{
   public static void main(String args[]){
     Student s1 = new Student();
     s1.showData();
     Student s2 = new Student();
     s2.showData();
     //Student.b++;
     //s1.showData();
  }
}

class Student {
int a; //initialized to zero
static int b; //initialized to zero only when class is loaded not for each object created.

  Student(){
   //Constructor incrementing static variable b
   b++;
  }

   public void showData(){
      System.out.println("Value of a = "+a);
      System.out.println("Value of b = "+b);
   }
//public static void increment(){
//a++;
//}

}

단계 2) 코드를 저장하고 컴파일하십시오. 다음과 같이 코드를 실행합니다. 자바 데모.

단계 3) 예상 출력은 아래에 표시됩니다.


Java 정적 메서드 및 변수

다음 다이어그램은 참조 변수와 객체가 어떻게 생성되는지, 그리고 다양한 인스턴스에서 정적 변수에 어떻게 액세스하는지 보여줍니다.


Java 정적 메서드 및 변수

단계 4) 다음 구문을 사용하여 클래스 외부에서 정적 변수에 액세스할 수 있습니다. 클래스이름.변수_이름. 7번과 8번 줄의 주석을 해제하세요. 저장, 컴파일 및 실행. 출력을 관찰합니다.

Value of a = 0
Value of b = 1
Value of a = 0
Value of b = 2
Value of a = 0
Value of b = 3

단계 5) 25,26행의 주석 처리를 해제합니다. 저장, 컴파일 및 실행.

	 error: non-static variable a cannot be referenced from a static context a++; 

단계 6) 오류 = ? 인스턴스 변수 “에 접근할 수 없기 때문입니다.a"Java 정적 클래스 메소드에서"증가".

정적 블록이란 무엇입니까? Java?

The 정적 블록 은 내부의 명령문 블록입니다. Java 클래스가 처음 로드될 때 실행될 클래스 JVM. 에이 정적 블록은 정적 데이터 멤버를 초기화하는 데 도움이 됩니다., 생성자가 인스턴스 멤버를 초기화하는 데 도움이 되는 것과 같습니다.

class Test{
 static {
 //Code goes here
 }
}

다음 프로그램은 Java 정적 블록의 예입니다.

예: 정적 블록에 액세스하는 방법

public class Demo {
 static int a;
 static int b;
 static {
    a = 10;
    b = 20;
 }
 public static void main(String args[]) {

  System.out.println("Value of a = " + a);
  System.out.println("Value of b = " + b);

 	}
}

다음과 같은 프로그램 출력이 나옵니다.

Value of a = 10
Value of b = 20

이 게시물을 요약하면 다음과 같습니다.