변수의 종류(선언위치 별로)

coding by 스플릿·2021년 12월 22일
0

Java1

목록 보기
22/44

클래스 변수

  • 인스턴스 변수안에 static을 붙이면 된다
  • 클래스 변수의 저장공간을 모든 인스턴스가 공유하게 되기 때문에 인스턴스들이 공통적인 값을 가진다
  • 인스턴스를 생성하지 않아도 언제든지 사용할 수 있다.

인스턴스 변수

  • 클래스 영역에 선언되고 인스턴스를 생성할 때 만들어진다.
  • 인스턴스마다 별도의 저장공간을 가지기 때문에 서로 다른 값을 가질 수 있다.

지역변수

  • 메서드 내에 선언되며 메서드 안에서만 사용 가능하다
  • 대부분 {}(블럭)을 벗어나면 소멸된다.
class Example{
  public static void main(String [] args){
    System.out.print(Tv.size); // 출력 : 100 (클래스 변수이기 때문에 바로 출력 가능)
    Tv [] tv_arr = { new Tv(), new Tv(); };
    tv_arr[0].channel = 5;
    tv_arr[1].channel = 10;
    System.out.print(tv_arr[0].channel); //출력 : 5 (인스턴스 변수)
    System.out.print(tv_arr[1].channel); //출력 : 10 (인스턴스 변수)
    Tv.size = 200; //클래스 변수 size 변경
    System.out.print(tv_arr[0].size); //출력 : 200 ( 클래스 변수이기 때문에 모두 같은 값)
    System.out.print(tv_arr[1].size); //출력 : 200 ( 클래스 변수이기 때문에 모두 같은 값)    
  }
}
class Tv{
  static int size = 100;
  int channel = 0;
  int volume = 0;
}

0개의 댓글