Notice
Recent Posts
Recent Comments
Link
03-08 11:56
꿈 많은 사람의 이야기
자바 정적 멤버, static 본문
반응형
정적(static)이란 '고정'의 의미를 갖고 있다. 정적 멤버는 클래스에 고정된 멤버로서 객체를 생성하지 않고 사용할 수 있는 필드와 메소드를 말한다.
1 2 3 4 5 6 7 8 | class A { static int num = 1; static void amt() { } } class B { A.num; A.amt(); } |
위 static으로 작성 해놓은 변수와 메소드가 정적 멤버이다.
정적 필드와 정적 메소드는 클래스에 고정된 멤버이므로 클래스 로더가 클래스(바이트 코드)를 로딩해서 메소드 메모리 영역에 적재할 때 클래스별로 관리된다. 따라서 클래스의 로딩이 끝나면 바로 사용할 수 있다.
이것에 대한 접근은 클래스.필드; 클래스.메소드( 매개값) 으로 호출할 수 있다.
여기서 가장 중요한 특징은
인스턴스 필드는 생성자에서 초기화되지만, 정적 필드는 객체 생성 없이도 사용해야 하므로 생성자에서 초기화 작업을 할 수 없다. 생성자는 객체 생성 시에만 실행되기 때문이다.
그렇다면 정적 필드를 위한 초기화 작업은 어디에서 해야 하나??
이것을 위해서 정적 블록을 제공한다
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | class A { static int num = 1; static void amt() { } static { num = 2; } } |
위와 같이 static { } 으로 하는 곳이 정적 블록이며 정적 필드를 초기화 할 수 있다.
반응형
'java' 카테고리의 다른 글
자바 import (0) | 2017.08.14 |
---|---|
자바 싱글톤 (0) | 2017.08.14 |
자바 정적 멤버, static (0) | 2017.08.10 |
자바 메소드 (0) | 2017.08.10 |
자바 생성자 (0) | 2017.08.10 |
자바 객체, 객체 지향 프로그래밍 (0) | 2017.08.10 |
0 Comments