Java

24_변수

우오우어아오앙 2016. 9. 20. 22:09
728x90
SMALL


변수


변수가 어디에 선언되어있는지가 중요.

위치에 따라서 변수를 구분한다.


자바의 변수는 ( 클래스 변수, 인스턴스 변수, 지역 변수 ) 이렇게 세 개로 나뉜다.


지역변수 - 멤버 변수를 제외한 변수

클래스 변수 - 멤버 변수 중 static 붙은 변수

인스턴스 변수 - 멤버 변수 중 static 붙지 않은 변수


class Variables {
  int a;                // 인스턴스 변수
  static int b;         // 클래스 변수 ( static 변수, 공유 변수 )


  void method(){
    int c;              // 지역 변수
  }
}


클래스로부터 객체를 만드는 과정을 클래스의 인스턴스화.

어떤 클래스로부터 만들어진 객체를 그 클래스의 인스턴스.


객체는 모든 인스턴스를 대표하는 포괄적인 의미를 갖고 있으며,

인스턴스는 어떤 클래스로부터 만들어진 것인지를 강조하는 보다 구체적인 의미.


      • 인스턴스 변수 (Instance Variable)
        • 클래스 영역 안에 생성
        • 클래스의 인스턴스를 생성할 때 만들어짐
        • 독립적인 공간을 가짐. 즉, 서로 다른 값을 가질 수 있음
        • 고유한 상태를 유지해야 할 경우 인스턴스 변수를 선언

      • 클래스 변수 (Class Variable)
        • 인스턴스 변수 앞에 static이 붙은 변수
        • 모든 인스턴스가 공통된 저장공간(변수)을 공유
        • 한 클래스의 모든 인스턴스들이 같은 값을 가지게 할 경우 클래스 변수로 선언
        • '클래스 이름.클래스변수' 와 같이 사용
        • 변수 앞에 public을 붙이면 전역변수


      • 지역 변수 (Local Valiable)
        • 메서드 안에서만 선언, 사용 가능함
        • for, while 문 등에서 선언된 변수는 모두 지역변수
        • {}를 벗어나면 소멸됨



class Card {
  String kind;     // 무늬  (인스턴스 변수)
  int number;     // 숫자  (인스턴스 변수)
static int width = 100; // 폭 (클래스 변수) static int height = 250; // 높이 (클래스 변수) }


Card 인스턴스는 

무늬(kind)와 숫자(number)가 모두 다르니 인스턴스 변수로 선언.

각 카드의 폭(width)과 높이(height)는 모든 인스턴스가 같은 값을 가지므로 클래스 변수로 선언.


카드의 폭과 높이를 변경하면 모든 카드의 폭과 높이가 변경된다. (하나하나 바꿀 필요가 없다는 뜻)

728x90
반응형
LIST

'Java' 카테고리의 다른 글

27_Scanner  (0) 2016.09.26
25_생성자 예제  (0) 2016.09.23
23_HashMap  (0) 2016.09.07
18_Eclipce 자주쓰는 단축키  (0) 2016.08.30
5_Iterator  (0) 2016.08.22