코딩하는 도로시

코딩 교육, 코딩 과학, 코딩 동화, 코딩 게임 등등! 아이부터 어른까지 모두 가능한 코딩! 함께 해보아요~~

개발메모장

Static, Final 멤버

dorosy 2014. 12. 18. 16:57

1. Static

 

-  객체 소속인 일반 필드들과는 달리, static 멤버 변수는 클래스 소속의 변수로, 객체들이 공유한다.

                 즉, 한 클래스의 객체를 10번 호출해도 스태틱 멤버 변수는 단 하나밖에 생성되지 않는다. 

            따라서 어느 객체가 이 스태틱 변수를 호출하던 그 변수는 똑같은 변수이므로 결과값은 값다.

 

- 스태틱 멤버 변수는 생성자에서 초기화하면 안된다.

   1) 필드를 만들면서 바로 초기화 하거나

   2) 정적초기화 영역 (static initializer) 에서 초기화 해야 한다.

 

 

ex>

class Test4{
 static int cnt = 0; // 초기화 방법 1 : 필드 만들면서 바로 초기화
 static{//정적 초기화 영역 (static initializer)
  cnt = 0;// 초기화 방법 2
 }
 void printCnt(){
  System.out.println(cnt);
 }
 public Test4(){// 생성자 : 일반 필드 초기화
  cnt++;// 정적 필드는 생성자에서 초기화 하면 안된다.
 }
}

 

 

*  final

- final  상수는 생성자에서 초기화가 가능하다.

 

ex>

final int a; // 초기화 가능한 상수(객체마다)

static final  int b = 10; // 초기화 불가능.

'개발메모장' 카테고리의 다른 글

lombok 2  (0) 2014.12.18
JAVA 상속, 오버라이딩  (0) 2014.12.18
JAVA 클래스 구현2  (0) 2014.12.18
ArrayList 예제  (0) 2014.12.18
JAVA 클래스 구현  (0) 2014.12.18