쌤리

지역변수 인스턴스변수, local variable, instance variable 본문

자바 JAVA/자바 기초

지역변수 인스턴스변수, local variable, instance variable

saml2l 2020. 5. 13. 11:26

자바에서 변수는 어느 위치에서 선언되었느냐에 따라서 그 종류가 달라진다.

 

변수의 종류 선언된 위치 생성시기
클래스 변수
(class variable)
클래스 영역 클래스가 메모리에 올라갔을 때
인스턴스 변수
(instance variable)
클래스 영역 인스턴스가 생성되었을 때
지역변수
(local variable)
클래스 영역이외
(생성자, 메서드, 초기화 블럭 내부)
변수 선언문이 수행되었을 때
  • 지역변수 : 생성된 지역 내에서만 사용 가능하다. 
    • 메서드 내에서 선언되었으면 메서드 종료시 사라진다
    • 반목문 내에 선언된 변수는 { } 중괄호 안에서만 사용 가능하며 블럭을 벗어나게 되면 사라진다.
for (int i = 0; i < 10; i++){
	System.out.println(i); // i 는 { } 안에 있어서 유효하다. 실행가능
	}
} 
	System.out.println(i); // { } 를 벗어낫기 때문에 변수 i 는 없다. 실행불가
    }
  • 인스턴스변수 : 클래스 영역에 선언되며, 인스턴스(객체)를 생성할 때 만들어진다.
    • 인스턴스는 독립적인 저장공간을 가지므로 서로 다른 값을 가질 수 있다. 
      • 학생이 10명이 있는데 클래스 변수로 저장을 한다면 모두 같은 변수 , name 과 age 를 공유하기 때문에 가장 최근에 선언된 값으로 바뀔 것이다. 그러나 인스턴스 변수로 저장을 하게 되면 10개의 학생 인스턴스 모두 독립적인 name 과 age 를 갖게 된다. 
class Main {
	public static void main(String[] args) {
    	Student Student1 = new Student(); 
        // 인스턴스가 생성되었으니 Student 클래스 내부에 있는 인스턴스 변수를 사용할 수 있다
    }
  }
  
  class Student {
  	String name; // 인스턴스 변수
   	int age;     // 인스턴스 변수
  }
  
    

 

Comments