자바 의 static 역할
3192 단어 자바
때때로 당신 은 이러한 종류의 구성원 을 정의 하여 그 사용 을 그 어떠한 대상 에 도 완전히 독립 시 키 기 를 원 합 니 다.일반적으로 클래스 구성원 은 클래스 의 대상 을 통 해 방문 해 야 하지만, 이러한 구성원 을 만 들 수 있 습 니 다. 특정한 실례 를 인용 하지 않 고 스스로 사용 할 수 있 습 니 다.구성원 의 성명 앞 에 키워드 static (정적) 을 추가 하면 이러한 구성원 을 만 들 수 있 습 니 다.만약 한 구성원 이 static 로 성명 된다 면, 그것 은 클래스 의 모든 대상 이 생 성 되 기 전에 접근 할 수 있 으 며, 어떠한 대상 도 인용 할 필요 가 없다.방법 과 변 수 를 모두 static 로 설명 할 수 있 습 니 다.static 멤버 들 의 가장 흔 한 예 는 main () 이다.프로그램 이 실 행 될 때 main () 을 호출 해 야 하기 때문에 static 로 밝 혀 졌 습 니 다.
static 로 설 명 된 변 수 는 실질 적 으로 전역 변수 입 니 다.대상 을 설명 할 때 static 변 수 를 복사 하지 않 고 모든 인 스 턴 스 변 수 는 같은 static 변 수 를 공유 합 니 다.static 로 성명 하 는 방법 은 다음 과 같은 몇 가지 제한 이 있 습 니 다.그것들 은 static 데이터 에 만 접근 할 수 있 습 니 다.이 는 this 나 슈퍼 를 어떤 방식 으로 도 인용 할 수 없습니다.계산 을 통 해 static 변 수 를 초기 화 할 필요 가 있다 면 static 블록 을 설명 할 수 있 습 니 다. Static 블록 은 이 클래스 가 불 러 올 때 만 실 행 됩 니 다.다음 예 에 표 시 된 클래스 는 static 방법, 일부 static 변수, 그리고 static 초기 화 블록 이 있 습 니 다.
package test;
class UseStatic {
static int a = 3;
static int b;
static void meth(int x) {
System.out.println("x = " + x);
System.out.println("a = " + a);
System.out.println("b = " + b);
}
static {
System.out.println("Static block initialized.");
b = a * 4;
}
public static void main(String args[]) {
meth(42);
}
}
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 는 클래스 밖에서 접근 합 니 다.
package test;
class StaticDemo {
static int a = 42;
static int b = 99;
static void callme() {
System.out.println("a = " + a);
}
}
class StaticByName {
public static void main(String args[]) {
StaticDemo.callme();
System.out.println("b = " + StaticDemo.b);
}
}
다음은 이 프로그램의 출력 입 니 다:
a = 42 b = 99
static 구성원 은 클 라 스 가 만 든 인 스 턴 스 에 접근 할 수 없습니다.
static 수식 을 넣 지 않 은 멤버 가 대상 멤버 라면 각 대상 의 소유 다.
static 수식 을 추가 한 구성원 은 클래스 구성원 으로 하나의 클래스 에서 직접 호출 하여 모든 대상 에 게 공유 할 수 있 습 니 다.
http://www.yuanma.org/data/2007/0213/article_2300.htm
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Is Eclipse IDE dying?In 2014 the Eclipse IDE is the leading development environment for Java with a market share of approximately 65%. but ac...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.