자바 의 static 역할

3192 단어 자바
자바 의 static 역할
때때로 당신 은 이러한 종류의 구성원 을 정의 하여 그 사용 을 그 어떠한 대상 에 도 완전히 독립 시 키 기 를 원 합 니 다.일반적으로 클래스 구성원 은 클래스 의 대상 을 통 해 방문 해 야 하지만, 이러한 구성원 을 만 들 수 있 습 니 다. 특정한 실례 를 인용 하지 않 고 스스로 사용 할 수 있 습 니 다.구성원 의 성명 앞 에 키워드 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

좋은 웹페이지 즐겨찾기