세로형
Recent Posts
Recent Comments
Link
04-19 00:01
«   2024/04   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
Archives
Today
Total
관리 메뉴

꿈 많은 사람의 이야기

자바 정적 멤버, static 본문

java

자바 정적 멤버, static

이수진의 블로그 2017. 8. 10. 08:47

정적(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
자바 메소드  (0) 2017.08.10
자바 생성자  (0) 2017.08.10
자바 객체, 객체 지향 프로그래밍  (0) 2017.08.10
Comments