Static 변수 및 방법 사용 방법

4782 단어 super성명어떻게
때때로 클래스 구성원을 정의해서 그 클래스의 사용이 그 어떤 대상과도 완전히 독립되게 하기를 원한다.일반적인 경우, 클래스 구성원은 클래스의 대상을 통해 접근해야 하지만, 특정한 실례를 인용하지 않고, 이러한 구성원을 만들 수 있다.구성원의 성명 앞에 키워드static(정적)를 붙이면 이런 구성원을 만들 수 있습니다.구성원이static로 성명되면, 클래스의 모든 대상이 만들어지기 전에 접근할 수 있으며, 대상을 인용할 필요가 없습니다.너는 방법과 변수를 모두static로 성명할 수 있다.static 구성원의 가장 흔한 예는main()이다.프로그램이 실행되기 시작할 때main () 을 호출해야 하기 때문에static로 성명됩니다.static로 성명된 변수는 실질적으로 전역 변수이다.하나의 대상을 설명할 때,static 변수의 복사가 발생하지 않고, 이 종류의 모든 실례 변수는 같은static 변수를 공용합니다.static로 성명하는 방법은 다음과 같은 몇 가지 제한이 있다.그것들은 다른 static 방법만 호출할 수 있다.2. 그것들은 static 데이터에만 접근할 수 있다.이것들은this나 슈퍼를 어떤 방식으로도 인용할 수 없습니다. (키워드 슈퍼는 계승과 관련이 있습니다.)만약 계산을 통해 static 변수를 초기화할 필요가 있다면, static 블록을 설명할 수 있습니다. Static 블록은 이 클래스가 불러올 때만 실행됩니다.다음 예에서는 클래스에 static 방법, 일부 static 변수, 그리고 static 초기화 블록이 표시됩니다.

  
  
  
  
  1. // Demonstrate static variables,methods,and blocks.   
  2. class UseStatic {  
  3. static int a = 3;   
  4. static int b;   
  5. static void meth(int x) {   
  6. System.out.println("x = " + x);   
  7. System.out.println("a = " + a);   
  8. System.out.println("b = " + b);   
  9. }static {   
  10. System.out.println("Static block initialized.");   
  11. b = a * 4;   
  12. }   
  13. public static void main(String args[]) {   
  14. meth(42);   
  15. }  

UseStatic 클래스가 로드되면 모든 static 문이 실행됩니다.우선, a는 3으로 설정되었고, 다음에static 블록이 실행되고, 마지막으로 b는 a*4 또는 12로 초기화됩니다.그리고main(),main(),meth()를 호출하여 42의 값을 x에 전달합니다.3개의 println () 문장은 두 개의static 변수 a와 b, 그리고 국부 변수 x를 인용한다.주의:static 방법에서 어떤 실례 변수를 인용하는 것은 불법입니다.다음은 프로그램의 출력입니다. Static block initialized.x = 42 a = 3 b = 12 클래스를 정의하는 외부에서static 방법과 변수는 모든 대상에 독립되어 사용된다.이렇게 하면, 너는 클래스의 이름 뒤에 점호 연산자를 붙이기만 하면 된다.예를 들어, 클래스 밖에서static 방법을 호출하려면, 다음 일반적인 형식을 사용할 수 있습니다:classname.method () 여기,classname는 클래스의 이름입니다. 이 클래스에서static 방법을 정의합니다.대상 인용 변수를 통해 비static 방법을 호출하는 형식과 유사하다는 것을 알 수 있습니다.static 변수는 같은 형식으로 접근할 수 있습니다. 클래스 이름 추가 부호 연산자입니다.이것이 바로 자바가 전역 기능과 전역 변수를 어떻게 실현하는지 제어하는 버전이다.다음은 하나의 예다.main () 에서static 방법callme () 과static 변수 b가 클래스 밖에서 접근합니다.

  
  
  
  
  1. class StaticDemo {  
  2. static int a = 42;   
  3. static int b = 99;   
  4. static void callme() {   
  5. System.out.println("a = " + a);   
  6. }  
  7. } class StaticByName {  
  8. public static void main(String args[]) {   
  9. StaticDemo.callme();   
  10. System.out.println("b = " + StaticDemo.b);   
  11. }  

다음은 이 프로그램의 출력입니다: a = 42 b = 99

좋은 웹페이지 즐겨찾기